Skip to content

Commit 3812325

Browse files
Seonpyo Kimmergify[bot]
authored andcommitted
Implement chain_getMinTransactionFee rpc
1 parent 3deacac commit 3812325

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

rpc/src/v1/impls/chain.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,30 @@ where
239239
Ok(self.client.block(&BlockId::Hash(block_hash)).map(|block| block.transactions_count()))
240240
}
241241

242+
fn get_min_transaction_fee(&self, action_type: String, _block_number: u64) -> Result<Option<u64>> {
243+
let common_parameters = self.client.common_params();
244+
Ok(match action_type.as_str() {
245+
"mintAsset" => Some(common_parameters.min_asset_mint_cost),
246+
"transferAsset" => Some(common_parameters.min_asset_transfer_cost),
247+
"changeAssetScheme" => Some(common_parameters.min_asset_scheme_change_cost),
248+
"increaseAssetSupply" => Some(common_parameters.min_asset_supply_increase_cost),
249+
"unwrapCCC" => Some(common_parameters.min_asset_unwrap_ccc_cost),
250+
"pay" => Some(common_parameters.min_pay_transaction_cost),
251+
"setRegularKey" => Some(common_parameters.min_set_regular_key_tranasction_cost),
252+
"createShard" => Some(common_parameters.min_create_shard_transaction_cost),
253+
"setShardOwners" => Some(common_parameters.min_set_shard_owners_transaction_cost),
254+
"setShardUsers" => Some(common_parameters.min_set_shard_users_transaction_cost),
255+
"wrapCCC" => Some(common_parameters.min_wrap_ccc_transaction_cost),
256+
"store" => Some(common_parameters.min_store_transaction_cost),
257+
"remove" => Some(common_parameters.min_remove_transaction_cost),
258+
"custom" => Some(common_parameters.min_custom_transaction_cost),
259+
"composeAsset" => Some(common_parameters.min_asset_compose_cost),
260+
"decomposeAsset" => Some(common_parameters.min_asset_decompose_cost),
261+
262+
_ => None,
263+
})
264+
}
265+
242266
fn get_mining_reward(&self, block_number: u64) -> Result<Option<u64>> {
243267
Ok(self.client.mining_reward(block_number))
244268
}

rpc/src/v1/traits/chain.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ build_rpc_trait! {
124124
# [rpc(name = "chain_getBlockTransactionCountByHash")]
125125
fn get_block_transaction_count_by_hash(&self, H256) -> Result<Option<usize>>;
126126

127+
///Gets the minimum transaction fee of the given name.
128+
# [rpc(name = "chain_getMinTransactionFee")]
129+
fn get_min_transaction_fee(&self, String, u64) -> Result<Option<u64>>;
130+
127131
/// Gets the mining given block number
128132
# [rpc(name = "chain_getMiningReward")]
129133
fn get_mining_reward(&self, u64) -> Result<Option<u64>>;

0 commit comments

Comments
 (0)