gpt4 book ai didi

rust - web3::contract::Contract::query 的 "params"参数应该是什么样的?

转载 作者:行者123 更新时间:2023-11-29 08:01:19 25 4
gpt4 key购买 nike

我正在尝试与多重签名智能合约(Gnosis 多重签名)进行交互,并询问交易详情和确认数量。

这是我想要执行的操作的简单 Python 代码:

import json
from web3 import Web3, HTTPProvider, IPCProvider

contractAddress = '0x...'

web3 = Web3(HTTPProvider('https://mainnet.infura.io'))

with open('contract.abi', 'r') as abi_definition:
abi = json.load(abi_definition)

contract = web3.eth.contract(contractAddress, abi=abi)
tx = contract.call().transactions(123)
confirmations = contract.call().getConfirmations(123)

print(tx)
print(confirmations)

这是我到目前为止想出的 Rust 代码:

extern crate web3;

use web3::contract::{Contract, Options};
use web3::types::Address;

fn main() {
let (_eloop, http) = web3::transports::Http::new("https://mainnet.infura.io").unwrap();
let web3 = web3::Web3::new(http);

// The contract address.
let address: Address = "0x...".parse().unwrap();

// Access the contract
let contract = Contract::from_json(web3.eth(), address, include_bytes!("./abi.json")).unwrap();

// Query the contract instance
// And this is where I'm stuck!
let result = contract.query("transactions...");
}

documentation that I found没有解释“参数”是什么以及它们应该如何传递到函数中。

最佳答案

答案就在 Tokenize 中trait,为 Tokenizable 的 vecs、数组或元组实现s,另一个特性又被实现,例如String , u64 , bool

所以如果你有一个 &str , 只需调用 .to_string()在上面得到 String .或者,如果您有电话号码,.try_into::<u64>()它。或者可能是它的组合,例如("transactions".to_string(), 123u64) .

我怎么知道? params类型为 P ,这是通用的,受 Tokenize 约束(请参阅 where P: Tokenize?)。

关于rust - web3::contract::Contract::query 的 "params"参数应该是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49588381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com