【发布时间】:2018-06-19 12:41:27
【问题描述】:
我有合同 ABI,我想查询合同。我知道存在用于此目的的 web3.js,但是我没有使用它。我想大致了解如何使用其 ABI 与已部署的合约进行交互。
- 还有其他方法可以使用ABI查询合约吗?
- 我正在使用 C++/Qt 进行编程,我想使用 ABI 查询合同。有什么想法吗?
我也使用 metamask 和 myetherwallet 来查询合约,但这不是我想要的。
【问题讨论】:
我有合同 ABI,我想查询合同。我知道存在用于此目的的 web3.js,但是我没有使用它。我想大致了解如何使用其 ABI 与已部署的合约进行交互。
我也使用 metamask 和 myetherwallet 来查询合约,但这不是我想要的。
【问题讨论】:
如果你有一个 ABI 和一个合约的地址,你可以在上面执行方法。
我不确定您如何使用现有的 C++ 库在 C++ 中做到这一点。然而,在 Web3.py 中(在 Web3.js 中也是如此),在最基本的层面上,它是相当简单的:
在Python using Web3.py 中,这看起来像:
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++,here's a popular client。如你所知,以太坊上的大部分工作都是使用 Go、Node 或 Python 完成的。
【讨论】: