Учебники

Ethereum — Взаимодействие с развернутым контрактом

Теперь вы готовы взаимодействовать с развернутым контрактом. Вернитесь на рабочий стол MyEtherWallet и нажмите вкладку «Взаимодействовать с контрактом», как показано на снимке экрана ниже.

Взаимодействовать с контрактом

Вставьте адрес договора, который вы ранее скопировали в поле «Адрес договора» . Вам также нужно вставить «Интерфейс ABI / JSON» контракта на экране выше.

Чтобы получить ABI , перейдите в окно Remix и нажмите кнопку ABI , как показано на скриншоте ниже.

Кнопка 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 теперь активирована, как показано ниже —

Мой эфирный кошелек

Нажмите кнопку Доступ , чтобы получить доступ к договору.

После нажатия кнопки « Доступ» на экране появится адрес контракта и раскрывающийся список функций, как в редакторе Remix. Это показано на скриншоте ниже —

Кнопка доступа

Вы можете проверить различные функции контракта, как в случае развертывания Remix. Обратите внимание, что контакт теперь развернут на внешней блокчейне Ganache. Проверьте функцию getAmount ; Вы получите нулевое значение Amount, а getBalance покажет баланс 1000.

Теперь попробуйте отправить деньги. Он предоставит вам контроль textedit для ввода суммы. Когда вы пишете контракт, будет использоваться некоторый «газ», и вам будет предложено подтвердить транзакцию, прежде чем записывать ее в блокчейн. Транзакция будет выполнена в течение короткого времени, в зависимости от времени майнинга, установленного вами на сервере Ganache. После этого вы можете пересмотреть поля стоимости и суммы контракта, чтобы убедиться, что они действительно изменены.

Теперь вы можете просмотреть рабочий стол Ganache, чтобы просмотреть транзакции, которые вы уже выполнили. Пример вывода показан ниже —

образец вывода

До сих пор вы были и создателем контракта, и исполнителем контракта. Это не имеет особого смысла, так как вы ожидаете, что другие будут использовать ваш контракт. Для этого мы создадим еще одного клиента для нашей цепочки блоков Ganache и отправим немного денег с недавно созданного счета № 2 создателю контракта на счете № 1.