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.