From ce1f8f00a6c90a951dd5c20b365551a6d3a46b29 Mon Sep 17 00:00:00 2001 From: Hardhat Chad Date: Wed, 25 Jun 2025 16:28:11 -0500 Subject: [PATCH] openner --- cli/src/main.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 87ff696..fdb79c9 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -81,7 +81,15 @@ async fn close( ) -> Result<(), anyhow::Error> { let id_str = std::env::var("ID").expect("Missing ID env var"); let id = id_str.parse::()?; - let ix = ore_api::sdk::close(payer.pubkey(), payer.pubkey(), payer.pubkey(), id); + let block = get_block(rpc, id).await?; + let config = get_config(rpc).await?; + let ix = ore_api::sdk::close( + payer.pubkey(), + config.fee_collector, + block.opener, + payer.pubkey(), + id, + ); submit_transaction(rpc, payer, &[ix]).await?; Ok(()) } @@ -190,6 +198,13 @@ async fn get_block(rpc: &RpcClient, id: u64) -> Result { Ok(*block) } +async fn get_config(rpc: &RpcClient) -> Result { + let config_pda = ore_api::state::config_pda(); + let account = rpc.get_account(&config_pda.0).await?; + let config = Config::try_from_bytes(&account.data)?; + Ok(*config) +} + async fn get_clock(rpc: &RpcClient) -> Result { let data = rpc.get_account_data(&solana_sdk::sysvar::clock::ID).await?; let clock = bincode::deserialize::(&data)?;