【问题标题】:How to call a function of a smart contract with Ethers.rs?如何使用 Ethers.rs 调用智能合约的函数?
【发布时间】:2023-01-30 17:28:02
【问题描述】:

我正在使用 ethers.rs 并想调用已部署智能合约的函数。我不为此使用智能合约的 ABI。

根据我到目前为止的研究,我找到了一种使用功能选择器.这必须与交易的 data 字段中的函数参数一起编码。

如果我只知道合约地址和我想调用的函数,我该如何使用 ethers.rs 来做到这一点?

【问题讨论】:

    标签: rust ethereum


    【解决方案1】:

    首先你需要用abigen解析你的合约abi:

    abigen!(ERC20Token, "./erc20.json",);
    

    更多信息here

    接下来你创建你的合同对象:

    let contract = ERC20Token::new(address, client);
    

    最后你称之为:

    contract.total_supply().call().await
    
    contract.transfer(to, amount).call().await
    

    你可以查看完整的例子here

    【讨论】:

      猜你喜欢
      • 2017-08-07
      • 2019-01-24
      • 2019-12-26
      • 2020-04-08
      • 2022-09-29
      • 1970-01-01
      • 2022-11-22
      • 2022-07-06
      • 2023-02-07
      相关资源
      最近更新 更多