Я создал контракт кошелька, отправил на него эфир и теперь не могу отправить на другой счет

Пока экспериментирую. Я создаю контракт кошелька. Вот адрес: https://etherscan.io/address/0xC23501aB1E8E5C5EDB0fFA83C5A4DcFb9c31a355 Я отправил на него немного эфира. Теперь я хочу отправить эфир из контракта кошелька на другой счет. Захожу отправить, ввожу сумму, проверяю газ, когда нажимаю отправить. Сумма показывает 0. Я думаю, что я сделал что-то не так с созданием контракта кошелька в Mist.

Вы должны вызвать контракт. Сумма 0в порядке, продолжайте и создайте эту транзакцию.
На вашем месте я бы предпочел проводить эксперименты в тестовой сети, это было бы дешевле. Но если у вас есть деньги, чтобы потратить, продолжайте, мы заработаем больше комиссионных за майнинг ;)
@ Джанни Д'Алерта - ты решил эту проблему? Если это так, напишите, что решило проблему, и выберите ее в качестве ответа для других, у которых может возникнуть такая же проблема позже.

Ответы (1)

Я предпочитаю использовать geth, а не туман для взаимодействия с контрактами. Командная строка позволяет вам делать именно то, что вы намереваетесь, по сравнению с работой через графический интерфейс.

Первое, что вам нужно, это договор ABI. Это фрагмент javascript (или JSON), который определяет, как вы можете взаимодействовать с контрактом. У каждого контракта в блокчейне есть один — простой контракт приветствия , Etheria , DAO … все сразу.

Чтобы получить abi, вставьте код контракта в компилятор, например, https://ethereum.github.io/browser-solidity/ .

Этот контракт на получение пожертвований может быть похож на то, что вы пытаетесь сделать. При компиляции выясняется, что его аби:

[{"constant":false,"inputs":[],"name":"kill","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"getContractCreationValue","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"sendOneEtherHome","outputs":[],"type":"function"},{"inputs":[],"type":"constructor"}]

Скомпилируйте свой контракт, и вы получите что-то похожее. (Приведенный выше код не будет работать для вашего контракта.)

Теперь, когда у вас есть ABI и адрес контракта, вы готовы получить интерактивный доступ к контракту с помощью geth.

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

Надеюсь, контракт, из которого вы пытаетесь получить средства, содержит метод получения эфира, и у вас есть на это разрешение. В моем примере «извлекатель пожертвований» вы должны сделать:

var tx = endowmentretriever.sendOneEtherHome.sendTransaction({from:eth.coinbase});

Если вы опубликуете весь контракт (возможно, используя суть), я смогу помочь в дальнейшем и / или определить, возможен ли вообще поиск.

Удачи!