Рубрики
Без рубрики

API JavaScript Ethereum- web3.js

Введение В этом посте мы обсудим, как начать использовать Web3.js библиотека. Эфириум… Помеченный блокчейном, javascript, java.

Введение В этом посте мы обсудим, как начать использовать Web3.js библиотека. API JavaScript Эфириума web3.js это собрание библиотек. Это позволяет нам взаимодействовать с локальным или удаленным узлом Ethereum с помощью HTTP, IPC или WebSocket. Web3.js позволяет нам выполнять обязанности по разработке клиентов, которые взаимодействуют с блокчейном Ethereum. Это набор библиотек, которые позволяют нам выполнять такие действия, как; Прямой эфир с одной учетной записи на другую Доставлять и записывать данные из смарт-контрактов Заключать смарт-контракты и Многое другое Описание В web3.js библиотека представляет собой библиотеку JavaScript с открытым исходным кодом. Это сделано фондом Ethereum. Он включает в себя функции для подключения к узлу Ethereum через протокол JavaScript Object Notation — Удаленный вызов процедуры (JSON-RPC). Это библиотека JavaScript, которая позволяет разработчику взаимодействовать с блокчейном Ethereum. Web3.js в настоящее время находится на версии 1.2.9. Он состоит из четырех модулей. Что такое модуль? Модуль в JavaScript – это код, который обладает точной функциональностью в рамках более крупной программы. Модули будут автономными. Таким образом, общая библиотека, программа или приложение не перестанут работать, если мы удалим модуль из библиотеки, программы или приложения. Модули составляют web3.js Web3.js имеет ключевой класс под названием web 3. Большая часть функциональности библиотеки основана на этом классе. Ниже приведены пять дополнительных модулей, составляющих web3 js: web3-eth Модуль web3-eth содержит функции, которые позволяют пользователю web3.js для взаимодействия с блокчейном Ethereum. Эти функции являются интеллектуальными для взаимодействия; Смарт-контракты Внешние учетные записи Узлы Добытые блоки Ниже приведены три пояснительных примера: eth.getBalance позволяет нам определить баланс адреса в данном блоке. eth.signTransaction позволяет нам подписывать транзакцию. eth.отправить подписанную транзакцию позволяет нам направлять подписанную транзакцию в блокчейн Ethereum. web3-тихо Модуль web 3-shh позволяет нам взаимодействовать с протоколом Whisper. Whisper – это протокол обмена сообщениями. Он предназначен для простой трансляции сообщений и для низкоуровневой асинхронной связи. Ниже показаны две описательные иллюстрации: тсс.сообщение отправляет сообщение шепотом в сеть. shh.subscribe делает подписку на входящие сообщения шепотом. web3-bzz Модуль web 3bzz позволяет нам взаимодействовать с Swarm. Swarm – это децентрализованная платформа хранения данных. Это также сервис распространения контента. Он может служить домом для хранения файлов, например изображений или видео, для нашего децентрализованного приложения. Ниже приведены два описательных примера: bzz. загрузка позволяет нам загружать файлы и папки в Swarm buzz. загрузка позволяет нам загружать файлы и папки из Swarm web3-net Модуль web3-net позволяет нам взаимодействовать с сетевыми свойствами узла Ethereum. Использование web3-net позволило бы нам узнать информацию об узле. Ниже приведены два иллюстративных примера: .net.getId – идентификатор сети .net.getPeerCount определяет количество одноранговых узлов, с которыми связан узел. web3-утилиты Модуль web 3-utils предоставляет нам полезные функции. Которые мы можем использовать в приложении Ethereum Dapp наряду с другими web3.js модули. Служебная функция – это возвращаемая функция для упрощения написания кода в стиле, распространенном в JavaScript и других языках программирования. Web3-утилиты содержат служебные функции. Это изменяет числа, подтверждает, соответствует ли значение определенному условию, и выполняет поиск в наборах данных. Ниже приведены три описательные иллюстрации: утилиты.полотенце меняется Либо на Вэй. utils.шестнадцатеричная строка преобразует шестнадцатеричное значение в строку. утилиты. адрес формируется, если предоставленная строка является действительным адресом Ethereum. Установка Мы можем установить Web3.js библиотека с NPM в вашем терминале как: $ npm install web 3 URL-АДРЕС Infra RPC Нам нужен доступ к узлу Ethereum, чтобы подключиться к узлу Ethereum с помощью JSON RPC в основной сети. Есть несколько способов, которыми мы могли бы это сделать. Во-первых, мы могли бы запустить наш собственный узел Ethereum с помощью Geth или Parity. Тем не менее, для этого нам нужно загрузить много данных из блокчейна и синхронизировать их. Это огромная досада, если мы когда-либо пытались сделать это раньше. Мы можем использовать Infra для доступа к узлу Ethereum без необходимости запускать его вручную, в основном для проверки пригодности. В fura есть средство, которое бесплатно предлагает удаленный узел Ethereum. Нам нужно зарегистрироваться, получить ключ API и URL-адрес RPC для сети, к которой мы хотим подключиться. Наш URL-адрес Infra RPC должен выглядеть так, как только мы зарегистрируемся: https://mainnet.infura.io/YOUR_INFURA_API_KEY Считывание данных из смарт-контрактов с Web3.js Мы можем создать представление смарт-контракта Ethereum на JavaScript с помощью web3.eth. Функция Contract(). Эта функция ожидает два аргумента: Один для смарт-контракта ABI Один для адреса смарт-контракта. Смарт-контракт ABI представляет собой массив JSON. Он определяет, как работает точный смарт-контракт. Ниже приведен пример ABI: констебль = [{“константа”:истина,”входные данные”:[],”имя”:”mintingFini Как развернуть смарт-контракт с Web3.js Существует множество способов развертывания смарт-контрактов в блокчейне Ethereum. Существует множество непостоянных проводников для их развертывания внутри Web3.js сам по себе. Мы будем использовать app.js файл и настройте его следующим образом: var(‘ethereumjs-tx’) const(‘web3’) const Web3(‘ https://ropsten.infura.io/YOUR_INFURA_API_KEY ‘ ) константа//Адрес вашей учетной записи 1 константа от(‘YOUR_PRIVATE_KEY_1’, ‘шестнадцатеричный’) Этот пример состоял из трех основных шагов: Создайте объект транзакции Подписать транзакцию Отправить транзакцию До сих пор мы строим транзакцию и отправляем ее в сеть. Единственное различие – это параметры транзакции. Далее мы создадим объект транзакции следующим образом: const wxobject = { одноразовый номер: web3.utils.toHex(txCount), Газовый лимит: веб-3.утилиты.toHex(1000000),//Увеличьте лимит газа до гораздо большей величины Цена на газ: веб-страница 3.utils.toHex(веб3.утилиты.полотенце(’10’, ‘gwei’)), данные: данные } Параметр данных представляет собой скомпилированное представление байт-кода смарт-контракта в шестнадцатеричном формате. Сначала нам нужен смарт-контракт, чтобы получить это значение. Затем нам нужно его скомпилировать. Мы можем использовать любой смарт-контракт, который нам нравится. Тем не менее, мы будем использовать смарт-контракт токена IRC-20 вместе с сопровождающим Web3.js . Мы можем присвоить значение данных переменной после составления нашего контракта. Теперь мы также можем присвоить одноразовое значение, получив количество транзакций: web3.eth.getTransactionCount(учетная запись 1, (ошибка, txcount) => { const//Значение ваших данных указано здесь… const wxobject = { одноразовый номер: web3.утилиты.toHex(txCount), Газовый лимит: веб-3.утилиты.toHex(1000000), Цена на газ: веб-страница 3.утилиты.toHex(веб-сайт 3.утилиты.Товей(’10’, ‘гвэй’)),

Оригинал: “https://dev.to/ahmedmansoor012/ethereum-javascript-api-web3-js-4cn2”