Взаимодействие со смарт-контрактом Ethereum с помощью Web3js

Опубликовано: 5 Января, 2022

Ethereum - это криптовалютная платформа на рынке, такая же, как и Биткойн. Это децентрализованный блокчейн с открытым исходным кодом, работающий над смарт-контрактами. У него есть собственная криптовалюта, известная как эфир. Смарт-контракты в Ethereum написаны основательно.

TestRPC Ethereum TestRPC похож на ручной эмулятор для блокчейна. Он обеспечивает взаимодействие с блокчейном без запуска на реальном узле Ethereum. Он также предоставляет все функции, необходимые для тестирования вашей цепочки блоков. Он основан на Node.js.

Web3.js Web3.js - это основанный на Ethereum JavaScript API, который позволяет нам взаимодействовать с локальным или удаленным узлом Ethereum, используя различные серверы, такие как HTTP. Он взаимодействует с блокчейном Ethereum и может извлекать данные из блокчейна по требованию разработчика.

В этой статье описывается, как взаимодействовать с вашим смарт-контрактом Ethereum с помощью Web3.js и TestRPC. Перед тем, как продолжить, рекомендуется ознакомиться с разделом «Как работать с Remix-IDE».

Прежде чем мы приступим к шагам, установите TestRPC и Web3JS следующим образом:

1. TestRPC

Шаг 1. Откройте консоль или командную строку и выполните следующие команды, чтобы проверить, установлены ли node и npm.

 $ node -v
$ npm -v

Если указанная выше команда не распознается, загрузите их с Nodejs.org для Windows или с помощью следующих команд (для macOS). Пакет npm устанавливается вместе с узлом.

 узел установки $ brew

Чтобы обновить эти пакеты, используйте следующие команды:

 узел обновления $ brew

Шаг 2: Теперь установите ethereumjs-testrpc, используя следующую команду:

 $ npm установить -g etherumjs-testrpc

Шаг 3: Теперь вы можете запустить сервер, используя следующую команду

 $ testrpc

2. Web3.js

Шаг 1. Откройте консоль или командную строку и перейдите в папку, содержащую JavaScript для вашей страницы, следующим образом:

 $ cd рабочий стол / myproject

Шаг 2: Теперь запустите команду npm init, чтобы создать файл package.json, в котором будут храниться зависимости проекта:

$ npm init

Шаг 3: После завершения вышеуказанной установки выполните следующую команду для установки web3.js-

 $ npm install ethereum / web3.js0.20.0 –save

После установки TestRPC и Web3.js создайте смарт-контракт, который вы хотите соединить с Web3.js.

Шаг 1: Откройте Remix-IDE.

Шаг 2: Создайте образец смарт-контракта, как показано ниже, или любой другой смарт-контракт.

Твердость

pragma solidity ^0.4.26;
// Creating a contract
contract GFG{
// Defining a function to
// print a message
function get_output() public pure returns (string)
{
return ( "Hi, your contract ran successfully" );
}
}


Шаг 3. Скомпилируйте код и перейдите в раздел «Развертывание».

Шаг 4: Выберите среду в качестве поставщика Web3 и введите сервер TestRPC http: // localhost: 8545. Убедитесь, что TestRPC работает в вашей системе.

Шаг 5: Теперь, используя следующий код, подключите код своей веб-страницы к смарт-контракту.

Javascript

<script>
if ( typeof web3 !== 'undefined' ){
web3 = new Web3(web3.currentProvider);
}
else {
// Set the provider you want from Web3.providers
web3 = new Web3( new Web3.providers.HttpProvider( " http://localhost:8545 " ));
}
// Set the 1st account for transactions
web3.eth.defaultAccount = web3.eth.accounts[0];
// Set the ABI
var yourContract = web3.eth.contract( 'PASTE ABI HERE!' );
// Set the contrcat address
var contract_name = yourContract.at( 'PASTE CONTRACT ADDRESS HERE' );
</script>

Этот код взят прямо со страницы Github Web3.js.

 ЗАМЕТКА:

  1. Имена переменных могут быть изменены в соответствии с требованиями.
  2. Вам необходимо вставить адрес контракта и ABI, как указано выше в коде. 
  3. Вы получите адрес контракта при развертывании смарт-контракта.
  4. Вы получите ABI, когда скомпилируете свой смарт-контракт в деталях компиляции.
  5. С этого момента вы можете использовать все свои контрактные функции.
  6. Команда TestRPC, которую мы запустили, предоставляет нам 10 учетных записей, здесь мы используем первую.

Вывод: вывод можно настроить так, как вы хотите отобразить на своей веб-странице, но в Remix-IDE вывод будет выглядеть так после развертывания смарт-контракта.

Вот как ваш смарт-контракт взаимодействует с использованием web3.js. Продолжайте узнавать больше о блокчейне Ethereum