2015-11-25 46 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/ –