gpt4 book ai didi

ethereum - 在以太坊中,我如何与区 block 链上的合约交互?

转载 作者:行者123 更新时间:2023-12-01 09:53:13 24 4
gpt4 key购买 nike

当我使用编译器的输出发布契约(Contract)时,我得到一个 javascript 对象“somecontract”,我可以像这样调用它的方法:“somecontract.doSomething();”

但我如何与过去某个时间点发布到区 block 链的合约进行交互?

最佳答案

如果您已经有了合约地址,请跳至下面的代码片段。如果没有,您需要找到它。

  1. 在 etherchain.org 上查找发布合约的账户
  2. 找到您用来创建契约(Contract)的交易。这将是“新契约(Contract)”行之一。
  3. 最后,在geth中,获取交易收据,合约地址将是收据的“contractAddress”属性。

要获得 abi,​​请重新编译您的合约(通常在此处 https://chriseth.github.io/browser-solidity/ )。现在您有了 abi 和合约地址,您就可以重新获得对合约的访问权限了。

var abi = <cut and paste the contract abi here>;
var contract = web3.eth.contract(abi).at(<contract address>);
contract.functionname();
contract.functionname.sendTransaction(...);

这是来自 https://github.com/fivedogit/solidity-baby-steps/blob/master/contracts/05_greeter.sol 的示例 abi

[{"constant":false,"inputs":[],"name":"kill","outputs":[],"type":"function"},
{"constant":true,"inputs":[],"name":"getBlockNumber","outputs":[{"name":"","type":"uint256"}],"type":"function"},
{"constant":false,"inputs":[{"name":"_newgreeting","type":"string"}],"name":"setGreeting","outputs":[],"type":"function"},
{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"type":"function"},{"inputs":[{"name":"_greeting","type":"string"}],"type":"constructor"}]

关于ethereum - 在以太坊中,我如何与区 block 链上的合约交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33839074/

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