Ethereum 在以太坊中,我如何与区块链上的合同对接?

Ethereum 在以太坊中,我如何与区块链上的合同对接?,ethereum,Ethereum,当我使用编译器的输出发布一个新的契约时,我会得到一个javascript对象“somecontract”,我可以调用类似这样的方法:“somecontract.doSomething();” 但是我如何与过去某个时候发布到区块链的合同进行交互?如果您已经拥有合同地址,请跳到下面的代码片段。如果没有,你需要找到它 在etherchain.org上查找发布合同的帐户 查找用于创建合同的交易记录。这将是“新合同”行之一 最后,在geth中,获取事务收据,并且合同地址将是收据的“contractAddr

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


但是我如何与过去某个时候发布到区块链的合同进行交互?

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

  • 在etherchain.org上查找发布合同的帐户
  • 查找用于创建合同的交易记录。这将是“新合同”行之一
  • 最后,在geth中,获取事务收据,并且合同地址将是收据的“contractAddress”属性 要获得abi,请重新编译您的合同(通常在此处)。现在您有了abi和合同地址,就可以重新访问合同了

    var abi = <cut and paste the contract abi here>;
    var contract = web3.eth.contract(abi).at(<contract address>);
    contract.functionname();
    contract.functionname.sendTransaction(...);
    
    [{"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"}]