From 03398e7600246365d3b4a2525feba12540dda833 Mon Sep 17 00:00:00 2001 From: jjy Date: Thu, 21 Oct 2021 00:01:03 +0800 Subject: [PATCH] fix: search stake cell with minimum capacity --- crates/block-producer/src/stake.rs | 11 ++++++++++- crates/rpc-client/src/rpc_client.rs | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/crates/block-producer/src/stake.rs b/crates/block-producer/src/stake.rs index 26fc520fd..5cee89f5a 100644 --- a/crates/block-producer/src/stake.rs +++ b/crates/block-producer/src/stake.rs @@ -47,8 +47,17 @@ pub async fn generate( .args(lock_args.pack()) .build(); + let required_staking_capacity = rollup_context + .rollup_config + .required_staking_capacity() + .unpack(); if let Some(unlocked_stake) = rpc_client - .query_stake(rollup_context, owner_lock_hash, None) + .query_stake( + rollup_context, + owner_lock_hash, + required_staking_capacity, + None, + ) .await? { let stake_lock_dep = block_producer_config.stake_cell_lock_dep.clone(); diff --git a/crates/rpc-client/src/rpc_client.rs b/crates/rpc-client/src/rpc_client.rs index 890ca56a2..51585498f 100644 --- a/crates/rpc-client/src/rpc_client.rs +++ b/crates/rpc-client/src/rpc_client.rs @@ -491,6 +491,7 @@ impl RPCClient { &self, rollup_context: &RollupContext, owner_lock_hash: [u8; 32], + required_staking_capacity: u64, last_finalized_block_number: Option, ) -> Result> { let lock = Script::new_builder() @@ -508,7 +509,7 @@ impl RPCClient { filter: Some(SearchKeyFilter { script: None, output_data_len_range: None, - output_capacity_range: None, + output_capacity_range: Some([required_staking_capacity.into(), u64::MAX.into()]), block_range: None, }), };