交易策略定义如下:
pub struct TxPolicies {
tip: Option<u64>,
witness_limit: Option<u64>,
maturity: Option<u64>,
max_fee: Option<u64>,
script_gas_limit: Option<u64>,
}
其中:
当未设置脚本 Gas 限制时,Rust SDK 将在后台估算消耗的 Gas 并将其设置为限制。
如果未设置见证数据限制,SDK 将其设置为交易生成器中定义的所有见证和签名的大小。
您可以通过创建TxPolicies
实例并将其传递给名为with_tx_policies
的链式方法来配置这些参数:
let contract_methods = MyContract::new(contract_id.clone(), wallet.clone()).methods();
let tx_policies = TxPolicies::default()
.with_tip(1)
.with_script_gas_limit(1_000_000)
.with_maturity(0);
let response = contract_methods
.initialize_counter(42) // Our contract method
.with_tx_policies(tx_policies) // Chain the tx policies
.call() // Perform the contract call
.await?; // This is an async call, `.await` it.
您还可以使用TxPolicies::default()
来使用默认值。
如下所示:
let response = contract_methods
.initialize_counter(42)
.with_tx_policies(TxPolicies::default())
.call()
.await?;
正如您可能已经注意到的,TxPolicies
也可以在部署合约或转移资产时通过将其传递给相应的方法来指定。