繁体   English   中英

使用ABI查询以太坊合约或与之互动

[英]Querying or interacting with Ethereum contracts using ABI

我有合同ABI,我想查询合同。 我知道存在用于此目的的web3.js,但是我还没有使用它。 我想了解如何使用其ABI与已部署合同进行交互的基本情况。

  1. 还有其他使用ABI和查询合同的方法吗?
  2. 我正在用C ++ / Qt进行编程,我想使用ABI查询合同。 任何想法 ?

我还使用metamask和myetherwallet来查询合同,但这不是我想要的。

如果您有ABI和合同的地址,则可以在上面执行方法。

我不确定使用现有的C ++库在C ++中如何实现。 但是,在Web3.py(以及类似的Web3.js)中,在最基本的级别上,这很简单:

  1. 使用ABI和合同地址创建合同实例
  2. 获取要运行的合同功能的实例
  3. 使用任何参数以合同方式运行交易
  4. 等待交易哈希(tx_id)
  5. 使用tx_id获取收据。 收据包含所有物品,例如使用的气体,结果数据等。

使用Web3.py的Python中 ,这看起来像:

contract_instance = web3.eth.contract(address, abi)
contract_function = contract_instance.functions["contractMethodToRun"]
tx_hash = contract_function(*params).transact(tx_dict)
receipt = web3.eth.waitForTransactionReceipt(tx_hash)

对于Web3.js 1.0 ,步骤几乎相同。

对于C ++, 这是一个受欢迎的客户端 如您所知,以太坊的大部分工作都是通过Go,Node或Python完成的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM