2015-11-25 1 views
4

Попытку следовать примеру вики для Go Эфириума создать базовый контракт: 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}) 

Что такое аргумент «abi» для метода eth.contract? Кроме того, что бы я ввел в аргумент evmCode? В этом конкретном примере кажется, что я бы поставил целое число для «arg1», но не уверен, как должен выглядеть полный пример.

ответ

8

ABI - это интерфейс, который предоставляет ваш договор. «evmCode» - это байтовый код Ethereum для вашего контракта.

Чтобы обойти вашу проблему, перейдите на страницу https://chriseth.github.io/browser-solidity/ и подключите свою Solidity. Поле Bytecode справа даст вам значение для «evmCode», а интерфейс предоставит вам ABI.

Вы также можете скопировать фрагмент из «развертывания Web3» и вставить его в свой код для развертывания вашего контракта.

+0

Спасибо. То, что вы предложили, работало. Однако, когда я узнал о EVM сегодня, я заметил, что компилятор сильной командной строки фактически дает вам «evmCode» при компиляции; это просто, что в учебнике не объясняется, что ABI выводится в командную строку при компиляции. Когда я читал документацию EVM, я сразу подумал о вашем комментарии к эфирному байтовому коду и установил соединение. – nordicray

+0

А, я вижу. Я не понимал, что часть учебника связана с работой с solc. Рад, что вы работаете. – Vishakh

+2

Обновленный URL-адрес для «Сила браузера» - https://remix.ethereum.org/ –

 Смежные вопросы

  • Нет связанных вопросов^_^