Ethereum - взаимодействие с развернутым контрактом
Теперь вы готовы взаимодействовать с развернутым контрактом. Вернитесь на рабочий стол MyEtherWallet и щелкните вкладку «Взаимодействие с контрактом», как показано на скриншоте ниже -
Вставьте адрес контракта, который вы ранее скопировали в “Contract Address”поле. Вам также необходимо вставить“ABI / JSON Interface” контракта на приведенном выше экране.
Чтобы получить ABI, перейдите в Remix окно и нажмите на ABI кнопку, как показано на скриншоте ниже.
Интерфейс ABI / JSON будет скопирован в буфер обмена. Вставьте это в свой любимый редактор, чтобы изучить сгенерированный интерфейс, который показан ниже -
ABI / JSON Interface
[
{
"constant": false,
"inputs": [
{
"name": "newDeposit",
"type": "uint256"
}
],
"name": "send",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "initialAmount",
"type": "uint256"
},
{
"name": "initialValue",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "getAmount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBalance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
После того, как вы вставите этот JSON в MyEtherWallet интерфейса, вы заметите, что кнопка ACCESS под интерфейсом JSON теперь активирована, как показано ниже -
Нажмите Access кнопка для доступа к контракту.
При нажатии на AccessПри нажатии кнопки адрес контракта и раскрывающееся меню выбора функции появится на экране, как в редакторе ремиксов. Это показано на скриншоте ниже -
Вы можете проверить различные функции контракта, как в случае развертывания Remix. Обратите внимание, что контакт теперь развернут во внешней цепочке блоков Ganache. ПроверитьgetAmountфункция; вы получите нулевое значение суммы иgetBalance покажет баланс 1000.
Теперь попробуйте отправить деньги. Он представит вамtexteditконтроль ввода суммы. Когда вы пишете контракт, будет использовано некоторое количество «газа», и вам будет предложено подтвердить транзакцию, прежде чем записывать ее в блокчейн. Транзакция будет выполнена за короткое время в зависимости от времени майнинга, установленного вами на сервере Ganache. После этого вы можете пересмотретьvalue и amount поля контракта, чтобы убедиться, что они действительно изменены.
Теперь вы можете изучить рабочий стол Ganache, чтобы просмотреть транзакции, которые вы выполнили до сих пор. Пример вывода показан ниже -
До сих пор вы были и создателем контракта, и исполнителем контракта. В этом нет особого смысла, поскольку вы ожидаете, что другие будут использовать ваш контракт. Для этого мы создадим другого клиента для нашей цепочки блоков Ganache и отправим немного денег из вновь созданной учетной записи №2 создателю контракта в учетной записи №1.