2015-11-25 48 views
4

试图跟随维基例如,对于去复仇,以创建一个基本的合同: https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions创建复仇合同(去复仇军)

一切似乎工作,直到我得到了,直到最后一行:

source = "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }" 
contract = eth.compile.solidity(source).test 
primaryAddress = eth.accounts[0] 

# **Problems start here ** 
MyContract = eth.contract(abi); 
contact = MyContract.new(arg1, arg2, ...,{from: primaryAddress, data: evmCode}) 

eth.contract方法的“abi”参数是什么?另外,我会在“evmCode”参数中输入什么内容?在这个特定的例子中,似乎我会为“arg1”放入一个整数,但不确定整个示例应该是什么样子。

回答

8

ABI是您的合同暴露的接口。 “evmCode”是您合约的以太坊字节码。

要解决您的问题,请转至https://chriseth.github.io/browser-solidity/并插入您的Solidity。右侧的Bytecode字段将为您提供“evmCode”的值,Interface将为您提供ABI。

您也可以复制“Web3 deploy”中的代码片段并将其粘贴到您的代码中以部署您的合同。

+0

谢谢。你建议的工作。然而,正如我今天所了解的EVM,我注意到,当您编译时,命令行固体编译器实际上为您提供了“evmCode”;只是本教程没有解释在编译时ABI是否输出到命令行。当我阅读EVM文档时,我立即想到了你对空灵的字节码的评论并建立了连接。 – nordicray

+0

啊,我明白了。我没有意识到与solc合作的部分教程。很高兴你正在运行。 – Vishakh

+2

“Browser Solidity”的更新URL是https://remix.ethereum.org/ –