Что такое Ethers.js? Глубокое погружение в библиотеку JavaScript Ethereum

Новичок3/18/2024, 8:47:39 AM
Ethereum - это блокчейн-протокол, известный своим набором инструментов, смарт-контрактами и кодоориентированной экосистемой, тесно связанный с ethers.js (библиотекой на Javascript), обеспечивающий необходимую мощность для разработчикоориентированного подхода.

Если вы обращаете внимание на Эфир (ETH) среди других криптовалют, вам следует уделить момент, чтобы понять Ethereum с технической точки зрения. Протокол блокчейн, известный своим инструментарием, смарт-контрактами и код-ориентированной экосистемой, Ethereum сильно полагается на ethers.js — библиотеку Javascript — чтобы придать своему разработчико-центричному подходу необходимую мощность.

Хотя ethers.js не единственная библиотека на языке JavaScript для Ethereum, она является лучшим вариантом для небольших DApps. В этом руководстве мы более подробно рассмотрим аспекты ethers.js, помогая вам осмыслить этот технический концепт.

В этом руководстве:

  1. Распаковка ethers.js
  2. Почему важен ethers.js?
  3. Объяснены все версии Ethers.js
  4. Начало работы с ethers.js
  5. Основные функции
  6. Как криптовалютные издания могут использовать Ethers.js
  7. Прикладные программы Ethers.js в реальном мире
  8. Вопросы безопасности
  9. Ethers.js: универсальный инструмент
  10. Часто задаваемые вопросы

Разбор пакета ethers.js

ethers.js — это JavaScript-библиотека — набор заранее написанного кода, который автоматизирует несколько функций. Использование библиотек JavaScript для разработки может свести к минимуму трудозатраты на написание кода. Процесс становится более удобным для пользователя, и для разработчиков DApp эти библиотеки помогают предлагать базовые функции, специфичные для блокчейна, в виде пакетов.

Ethers.js и цикл разработки: BeInCrypto

Здесь GitHubрепозиторийдля библиотеки.

Что такое библиотеки JavaScript?

Прежде чем мы углубимся в ethers.js, давайте ближе посмотрим на библиотеки JavaScript. Эти библиотеки представляют собой предварительно написанные наборы кода JavaScript, которые могут автоматизировать конкретные общие задачи. Использование библиотек, таких как ethers.js, может ускорить процесс создания DApp и даже ускорить другие взаимодействия, специфичные для блокчейна.

Зачем нам нужны библиотеки JavaScript в Ethereum?

Ethereum превратился в децентрализованную платформу для разработки программного обеспечения. От умные контрактывDeОт Fi-приложений к DApps, кодирование является неотъемлемой частью экосистемы Ethereum. Вот почему существуют специализированные библиотеки JavaScript, такие как ethers.js. С их помощью разработчики могут подключаться к сети, развертывать и взаимодействовать со смарт-контрактами, а также легко управлять блокчейнданные.

Знаете ли вы? Ethers.js - не единственная известная библиотека Ethereum на JavaScript. Еще одна известная - Web3.js, основанная Фондом Ethereum. Web3.js известен своей обширной коллекцией документации и предназначен для более сложных DApps.

Почему ethers.js важен?

Как уже упоминалось ранее, ethers.js предназначен для разработчиков, работающих с блокчейном Ethereum. Что касается важности, эта библиотека, разработанная Ричардом Муром и продвигаемая под именем “Ethers,” полезна для следующих задач:

  1. Упрощение нескольких транзакций Ethereum
  2. Предоставляет доступ к комплексной документации и ресурсам
  3. Облегчение разработки DApp


Экосистема Ethers.js и роли, которые она может принимать: BeInCrypto

Вот быстрый пример фрагмента кода, используемого для получения текущего баланса счета Ethereum. Давайте сначала прочитаем код и поймем, как ethers.js упрощает жизнь:

const { ethers } = require(‘ethers’);

// Подключитесь к сети Ethereum

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Укажите адрес аккаунта

const accountAddress = ‘0xABC123…’;

// Получить и отобразить баланс

provider.getBalance(accountAddress).then((balance) => {

// Преобразование баланса из Wei в Эфирconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Баланс: ${balanceInEther} ETH`);

});

В этом примере вы можете ясно видеть, как команда — ethers.providers.JsonRpcProvider — вызывает конечную точку Infura, и getBalance извлекает баланс. Вам не нужно иметь дело напрямую с JSON RPC Ethereum или удаленным вызовом процедуры. В этом случае вы можете рассматривать ethers.js как переводчика, который делает Ethereum более простым и знакомым для вас.

Все еще не уверены в значимости ethers.js? Вот быстрая аналогия.

Представьте ethers.js как старую библиотечную карточку. Помните, что у этих карточек были каталоги, позволяющие вам найти правильную книгу, определив проход и затем номер полки? Именно это и ставит перед собой задачу ethers.js. Он упрощает и организует огромные возможности Ethereum, позволяя разработчикам найти именно то, что им нужно.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Объяснены все версии Ethers.js

За годы существования появилось несколько версий Ethers.js, каждая из которых вносит новую функцию или исправление ошибки. Кроме того, версионирование следует стандартной семантике, такой как v1.2.3, где первое число обозначает основной номер, а второе и третье числа обозначают минорный и патч. Мы рассмотрим только обновления основной версии на данный момент — изменения, которые могут не быть обратно совместимыми.

  1. Версия 1.x (Legacy): Это был первоначальный выпуск, за которым последовали функции, связанные с подписанием транзакций, управлением кошельком и многим другим.
  2. Версия 2.x (Кошелек Ethers): сосредоточена на утилитах и функциях кошелька, включая безопасное хранение закрытые ключи.
  3. Версия 3.x (провайдер Ethers): Введены абстракции для подключения к узлам Ethereum. Были предусмотрены различные типы игроков, включая Infura, WebSockets и другие.
  4. Версия 4.x (контракты Ethers): Свойства, управляемые смарт-контрактом, были расширены, с более широкими возможностями для кодирования и декодирования данных, фильтрами событий и многим другим.
  5. Версия 5.x: Предлагает модульную архитектуру, улучшенную поддержку дляENS, обширная обработка ошибок и многое другое.
  6. Версия 6.x: Включение функций ES6, введение BigInt, перегрузка доступности и многое другое.


Архитектура и компоненты Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Вы можете найти более подробную информацию о каждой версии, просматривая Ethers.js’оригинальная документация.

Ethers.js блеснет блестящей межблокчейновой совместимостью, поддержкой нативного TypeScript и передовыми инструментами отладки. Это легкая, мощная библиотека, которая без проблем интегрируется в популярные фреймворки, такие как React, Vue, Angular и т. д.

Redbelly Intern, Builder: X

Начало работы с ethers.js

Прежде чем вы планируете использовать потенциал ethers.js, необходимо знать, на каком этапе разработки DApp или смарт-контракта он вызывается. Вот краткое описание для тех, кто должен знать и понимать эти элементы с нуля.

Web3.js дружелюбен к начинающим и более краток, чем ethers.js.

С другой стороны, Ethers.js предоставляет больше возможностей и является новым; он немного сложнее, чем Web3.js.

degenBo, блокчейн-разработчик и основатель Solidity Finance: Как рассказал BeInCrypto

Для начала вам нужно открыть компьютер и настроить среду разработки. Сюда входят Node.js и интегрированная среда разработки. Обратите внимание, что JavaScript обычно работает в браузере, но с помощью Node.js его также можно запускать на компьютере. Это среда выполнения Node.js устанавливает библиотеки JavaScript, такие как ethers.js.

Что касается IDE, которую нужно использовать разработчику программного обеспечения для тестирования, можно рассмотреть VS Code, Sublime Text или что-то еще.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Установка поддержки ethers.js

Следующим шагом будет установка Ethers, библиотеки, в которой хранится ethers.js.

npm установить ethers

Потом вам нужно использовать Эфиры, чтобы подключиться к Кошелек Ethereum, поскольку взаимодействие с блокчейном потребует этот шаг для проверки учетных данных. Для этого вы можете использовать установленную библиотеку Эфира. Вот пример команды:

/Related

ДРУГИЕ СТАТЬИ

Ethereum ETF Объяснено: Что это такое и как это работает

14 минут 15 марта 2024 года 3 дня назад

Как получить оплату в Bitcoin (BTC): все, что вам нужно знать

25 минут 15 марта 2024 года 2 дня назад

const { ethers } = требуются(‘ethers’);

// Подключиться к MetaMaskкошелек

const provider = new ethers.providers.Web3Provider(window.ethereum);

После завершения вы сможете использовать IDE для записи кода на языке Solidity и создания смарт-контрактов для DApps. Для развертывания будет использован Ethers.js. Вы можете даже протестировать DApp или контракт локально, используя среды, такие как Truffleи Hardhat. Затем вы развертываете контракты на сеть Ethereum, для чего нужен ethers.js.

const contract = new ethers.ContractFactory(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Для непосвященного abi, Bytecode, Signer являются необходимыми терминами для беспрепятственной разработки смарт-контрактов. Abi или бинарный интерфейс приложения больше похож на метку, которая помогает сети распознавать ваши смарт-контракты. Bytecode - это скомпилированная или, скорее, готовая к работе в сети версия смарт-контракта, а signer - это сущность, генерирующая подпись.

Ethers.js для фронт-энда

После развертывания смарт-контракта вам нужно создать пользовательский интерфейс DApp. Для этого вы можете использовать Angular или React. Вы даже можете интегрировать Ethers.js в пользовательский интерфейс, чтобы гарантировать его взаимодействие со смарт-контрактами Ethereum. Вот пример кода для этого:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contract = new ethers.Contract(contractAddress, contractABI, provider.getSigner());

После этого вам нужно протестировать DApp на тестовой сети, например, на Rinkeby или Ropsten. Как только вы будете довольны, вы сможете запустить DApp на основной сети. Обратите внимание, сколько раз вам нужно взаимодействовать с Эфиром или ethers.js в процессе.

Основные функции

Библиотека Ethers.js выглядит как всесторонняя библиотека Ethereum. Вот некоторые эксклюзивные предложения, которые могут облегчить жизнь разработчиков:

Поставщики

Провайдеры Ethers.js действуют как мосты между сетью Ethereum и DApp, над которым вы работаете. Это включает упрощение запроса данных блокчейна и также помогает вещать транзакции. Infura - один из провайдеров, которые использует Ethers.js.

Вот образец кода для того же самого:

const { ethers } = требуют(‘ethers’);

// Подключение с использованием Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Проверьте текущий номер блока

provider.getBlockNumber().then((blockNumber) => {

console.log(“Текущий номер блока:”, blockNumber);

});

Кошельки

Ethers.js позволяет управлять кошельками, позволяя вам создавать новые учетные записи, импортировать существующие учетные записи, безопасно управлять частными ключами для подписи транзакций и делать многое другое.

Контракты

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Этот компонент существования Ethers.js поддерживает создание объектов. Это упрощает вызов конкретных функций контракта, больше похоже на методы нативного Javascript.


Взаимодействие Ethers.js и смарт-контрактов: BeInCrypto

Интеграция ENS

Ethers.js может разрешать имена ENS на их адреса Ethereum и наоборот. Эта функция снижает риск ошибок.

Вот фрагмент кода для примера:

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’Ошибка: неверный формат ввода

const ensName = ‘алиса.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} решается как ${address}`);

});

Помимо упомянутых особенностей, Ethers.js также гордится следующими аспектами или функциями, помогая разработчикам получить прямой доступ к Ethereum.

  1. Подписанты
  2. Утилиты
  3. Слушатели событий и фильтры (предназначенные для активации мгновенных ответов на действия в блокчейне)
  4. Транзакции
  5. Поддержка мультиколл
  6. Поддержка TypeScript (предназначенная для улучшения надежности кода и общего опыта разработчика)

Несколько преимуществ использования Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Как криптопубликации могут использовать Ethers.js

Издания, такие как BeInCrypto, могут использовать Ethers.js для создания передовых и эффективных веб-инструментов web3 с нуля. Таким образом, становится возможным использовать блокчейн или, скорее, функции, работающие на Ethereum, для улучшения удобства использования. Вот варианты, которые можно рассмотреть:

Потоки данных

Функции Ethers.js могут быть использованы для интеграции фактических данных криптовалют в реальном времени, таких как статистика сети, комиссии за газ, и многое другое, чтобы сохранить статьи и ресурсы всегда актуальными. Вот пример кода для получения последнего номера блока, скажем, для биткоина, чтобы отслеживать деление наполовину в реальном времени.

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

provider.getBlockNumber().then((blockNumber) => {

console.log(“Текущий номер блока:”, blockNumber);// Интегрируйте эти данные в вашу платформу издания для получения данных в реальном времени

});

Интерактивный контент

Публикации могут создавать фрагменты интерактивного контента, позволяя пользователям взаимодействовать непосредственно со смарт-контрактами, участвовать в опросах или даже играть в небольшие игры при необходимости.

Вот фрагмент кода для извлечения приветствия, специфического для вехи, из смарт-контракта:

const { ethers } = требуются(‘ethers’);

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

«функция getGreeting() вид возвращает (строка)»

]

const contract = new ethers.Contract(contractAddress, contractABI, provider);

async function displayGreeting() {

const greeting = await contract.getGreeting();document.getElementById(‘greeting’).innerText = greeting;

}

Откройте счет на KuCoin и получите гарантированный бонус до 700 USDT.

  1. Начните свой торговый путь криптовалютой с KuCoin и получите преимущество!
  2. Торгуйте с уверенностью на KuCoin! Наша платформа отдает предпочтение вашей безопасности, предлагая защиту верхнего уровня для ваших цифровых активов.
  3. Исследуйте огромный мир криптовалют с KuCoin!

Зарегистрируйтесь сейчас!

Реальный пример того, как развёртывается Ethers.js:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Децентрализованная публикация

СМИ также могут рассмотреть децентрализованное публикование, где остаток статьи публикуется в сети блокчейн. Это может помочь сопротивляться цензуре и обеспечить целостность контента.

Вот пример кода, где хэш статьи хранится онлайн в качестве доказательства публикации:

const { ethers } = require(‘ethers’);

const wallet = new ethers.Wallet(‘ВАШ_ЧАСТНЫЙ_КЛЮЧ’, провайдер);

const contentHash = ethers.utils.id(“Содержание статьи здесь”);

const tx = await wallet.sendTransaction({

to: ‘0xSomeStorageContractAddress’,data: contentHash // Предполагая, что контракт принимает и хранит эти данные

});

console.log(“Хэш транзакции (доказательство публикации):”, tx.hash);

Это всего лишь несколько примеров использования для медиа-изданий. Но есть и другие сектора, которые могут воспользоваться мощью ethers.js. Сюда входят:

  1. Разработчики блокчейна (ожидаемо)
  2. Финансовые аналитики, работающие с DeFiметрика
  3. Разработчики игр
  4. Создатели контента
  5. Менеджеры цепочки поставок

И еще.

Прикладные программы Ethers.js

Помимо того, что полезно в DeFi, NFT-проектов и игровых проектов, существует несколько существующих DApp, которые поддерживают использование Ethers.js. Среди них следующие:

  1. Ether.js взаимодействует с встроенными смарт-контрактами Uniswap для выполнения сделок, добавления ликвидности и даже запроса статистики пула. В этом случае разработчики децентрализованных приложений планируют создавать инструменты, взаимодействующие с Uniswap, такие как торговые боты, инструменты управления портфелем и многое другое.
  2. Aave: Разработчики DApp и другие заинтересованные лица могут использовать функциональные возможности Ether.js для взаимодействия с конкретными смарт-контрактами Aave. Таким образом, они могут подготовить интерфейс для заимствования активов, залогового депозита и выполнения других действий.

Разрушение нескольких мифов о Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Соображения безопасности

Использование Ethers.js идет в комплекте с довольно обширным набором безопасностьрассмотрения. Вот несколько, за которыми следовать:

  1. Рекомендуется не зашивать приватные ключи в кодовую базу вашего приложения.
  2. Каждое взаимодействие с умным контрактом должно предшествовать тестированию и тщательной проверке контрактов.
  3. Взаимодействуя с умными контрактами, используйте безопасные шаблоны, такие как «call», для выполнения только чтения.
  4. Для оптимизации использования ethers.js вы можете рассмотреть пакетную обработку запросов. Здесь вы можете объединить, скажем, только для чтения запросы, чтобы минимизировать количество сетевых вызовов. Само собой разумеется, что эти техники оптимизации могут сделать приложение высоко масштабируемым и экономичным.

Вот пример работы этого

// Псевдокод для пакетной обработки вызовов контрактов с использованием Ethers.js (концептуальный пример)

const contract = new ethers.Contract(address, abi, provider);

const [значение1, значение2, значение3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: универсальный инструмент

Спонсированный

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Как показано в этом руководстве, Ethers.js - это универсальный инструмент. Хотя мы кратко рассмотрели его возможности, лучший способ полностью понять Ethers.js - это погрузиться глубже в мир смарт-контрактов, JavaScript, IDE, DApps и многое другое. Кроме того, присоединение к сообществам Ethereum и Ethers также может пригодиться.

Часто задаваемые вопросы

Как разработчики могут использовать события Ethers.js?

Какие основные утилиты предлагает Ethers.js?

Какая связь между Ethers.js и Web3.js?

Disclaimer:

  1. Эта статья перепечатана из [beincrypto], Все авторские права принадлежат оригинальному автору [Ананда Банерджи]. Если есть возражения к этому перепечатыванию, пожалуйста, свяжитесь с Gate Learnкоманда, и они незамедлительно разберутся с этим.
  2. Ответственность за отказ: Взгляды и мнения, выраженные в этой статье, являются исключительно мнениями автора и не являются инвестиционным советом.
  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.

Compartilhar

Что такое Ethers.js? Глубокое погружение в библиотеку JavaScript Ethereum

Новичок3/18/2024, 8:47:39 AM
Ethereum - это блокчейн-протокол, известный своим набором инструментов, смарт-контрактами и кодоориентированной экосистемой, тесно связанный с ethers.js (библиотекой на Javascript), обеспечивающий необходимую мощность для разработчикоориентированного подхода.

Если вы обращаете внимание на Эфир (ETH) среди других криптовалют, вам следует уделить момент, чтобы понять Ethereum с технической точки зрения. Протокол блокчейн, известный своим инструментарием, смарт-контрактами и код-ориентированной экосистемой, Ethereum сильно полагается на ethers.js — библиотеку Javascript — чтобы придать своему разработчико-центричному подходу необходимую мощность.

Хотя ethers.js не единственная библиотека на языке JavaScript для Ethereum, она является лучшим вариантом для небольших DApps. В этом руководстве мы более подробно рассмотрим аспекты ethers.js, помогая вам осмыслить этот технический концепт.

В этом руководстве:

  1. Распаковка ethers.js
  2. Почему важен ethers.js?
  3. Объяснены все версии Ethers.js
  4. Начало работы с ethers.js
  5. Основные функции
  6. Как криптовалютные издания могут использовать Ethers.js
  7. Прикладные программы Ethers.js в реальном мире
  8. Вопросы безопасности
  9. Ethers.js: универсальный инструмент
  10. Часто задаваемые вопросы

Разбор пакета ethers.js

ethers.js — это JavaScript-библиотека — набор заранее написанного кода, который автоматизирует несколько функций. Использование библиотек JavaScript для разработки может свести к минимуму трудозатраты на написание кода. Процесс становится более удобным для пользователя, и для разработчиков DApp эти библиотеки помогают предлагать базовые функции, специфичные для блокчейна, в виде пакетов.

Ethers.js и цикл разработки: BeInCrypto

Здесь GitHubрепозиторийдля библиотеки.

Что такое библиотеки JavaScript?

Прежде чем мы углубимся в ethers.js, давайте ближе посмотрим на библиотеки JavaScript. Эти библиотеки представляют собой предварительно написанные наборы кода JavaScript, которые могут автоматизировать конкретные общие задачи. Использование библиотек, таких как ethers.js, может ускорить процесс создания DApp и даже ускорить другие взаимодействия, специфичные для блокчейна.

Зачем нам нужны библиотеки JavaScript в Ethereum?

Ethereum превратился в децентрализованную платформу для разработки программного обеспечения. От умные контрактывDeОт Fi-приложений к DApps, кодирование является неотъемлемой частью экосистемы Ethereum. Вот почему существуют специализированные библиотеки JavaScript, такие как ethers.js. С их помощью разработчики могут подключаться к сети, развертывать и взаимодействовать со смарт-контрактами, а также легко управлять блокчейнданные.

Знаете ли вы? Ethers.js - не единственная известная библиотека Ethereum на JavaScript. Еще одна известная - Web3.js, основанная Фондом Ethereum. Web3.js известен своей обширной коллекцией документации и предназначен для более сложных DApps.

Почему ethers.js важен?

Как уже упоминалось ранее, ethers.js предназначен для разработчиков, работающих с блокчейном Ethereum. Что касается важности, эта библиотека, разработанная Ричардом Муром и продвигаемая под именем “Ethers,” полезна для следующих задач:

  1. Упрощение нескольких транзакций Ethereum
  2. Предоставляет доступ к комплексной документации и ресурсам
  3. Облегчение разработки DApp


Экосистема Ethers.js и роли, которые она может принимать: BeInCrypto

Вот быстрый пример фрагмента кода, используемого для получения текущего баланса счета Ethereum. Давайте сначала прочитаем код и поймем, как ethers.js упрощает жизнь:

const { ethers } = require(‘ethers’);

// Подключитесь к сети Ethereum

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Укажите адрес аккаунта

const accountAddress = ‘0xABC123…’;

// Получить и отобразить баланс

provider.getBalance(accountAddress).then((balance) => {

// Преобразование баланса из Wei в Эфирconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Баланс: ${balanceInEther} ETH`);

});

В этом примере вы можете ясно видеть, как команда — ethers.providers.JsonRpcProvider — вызывает конечную точку Infura, и getBalance извлекает баланс. Вам не нужно иметь дело напрямую с JSON RPC Ethereum или удаленным вызовом процедуры. В этом случае вы можете рассматривать ethers.js как переводчика, который делает Ethereum более простым и знакомым для вас.

Все еще не уверены в значимости ethers.js? Вот быстрая аналогия.

Представьте ethers.js как старую библиотечную карточку. Помните, что у этих карточек были каталоги, позволяющие вам найти правильную книгу, определив проход и затем номер полки? Именно это и ставит перед собой задачу ethers.js. Он упрощает и организует огромные возможности Ethereum, позволяя разработчикам найти именно то, что им нужно.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Объяснены все версии Ethers.js

За годы существования появилось несколько версий Ethers.js, каждая из которых вносит новую функцию или исправление ошибки. Кроме того, версионирование следует стандартной семантике, такой как v1.2.3, где первое число обозначает основной номер, а второе и третье числа обозначают минорный и патч. Мы рассмотрим только обновления основной версии на данный момент — изменения, которые могут не быть обратно совместимыми.

  1. Версия 1.x (Legacy): Это был первоначальный выпуск, за которым последовали функции, связанные с подписанием транзакций, управлением кошельком и многим другим.
  2. Версия 2.x (Кошелек Ethers): сосредоточена на утилитах и функциях кошелька, включая безопасное хранение закрытые ключи.
  3. Версия 3.x (провайдер Ethers): Введены абстракции для подключения к узлам Ethereum. Были предусмотрены различные типы игроков, включая Infura, WebSockets и другие.
  4. Версия 4.x (контракты Ethers): Свойства, управляемые смарт-контрактом, были расширены, с более широкими возможностями для кодирования и декодирования данных, фильтрами событий и многим другим.
  5. Версия 5.x: Предлагает модульную архитектуру, улучшенную поддержку дляENS, обширная обработка ошибок и многое другое.
  6. Версия 6.x: Включение функций ES6, введение BigInt, перегрузка доступности и многое другое.


Архитектура и компоненты Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Вы можете найти более подробную информацию о каждой версии, просматривая Ethers.js’оригинальная документация.

Ethers.js блеснет блестящей межблокчейновой совместимостью, поддержкой нативного TypeScript и передовыми инструментами отладки. Это легкая, мощная библиотека, которая без проблем интегрируется в популярные фреймворки, такие как React, Vue, Angular и т. д.

Redbelly Intern, Builder: X

Начало работы с ethers.js

Прежде чем вы планируете использовать потенциал ethers.js, необходимо знать, на каком этапе разработки DApp или смарт-контракта он вызывается. Вот краткое описание для тех, кто должен знать и понимать эти элементы с нуля.

Web3.js дружелюбен к начинающим и более краток, чем ethers.js.

С другой стороны, Ethers.js предоставляет больше возможностей и является новым; он немного сложнее, чем Web3.js.

degenBo, блокчейн-разработчик и основатель Solidity Finance: Как рассказал BeInCrypto

Для начала вам нужно открыть компьютер и настроить среду разработки. Сюда входят Node.js и интегрированная среда разработки. Обратите внимание, что JavaScript обычно работает в браузере, но с помощью Node.js его также можно запускать на компьютере. Это среда выполнения Node.js устанавливает библиотеки JavaScript, такие как ethers.js.

Что касается IDE, которую нужно использовать разработчику программного обеспечения для тестирования, можно рассмотреть VS Code, Sublime Text или что-то еще.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Установка поддержки ethers.js

Следующим шагом будет установка Ethers, библиотеки, в которой хранится ethers.js.

npm установить ethers

Потом вам нужно использовать Эфиры, чтобы подключиться к Кошелек Ethereum, поскольку взаимодействие с блокчейном потребует этот шаг для проверки учетных данных. Для этого вы можете использовать установленную библиотеку Эфира. Вот пример команды:

/Related

ДРУГИЕ СТАТЬИ

Ethereum ETF Объяснено: Что это такое и как это работает

14 минут 15 марта 2024 года 3 дня назад

Как получить оплату в Bitcoin (BTC): все, что вам нужно знать

25 минут 15 марта 2024 года 2 дня назад

const { ethers } = требуются(‘ethers’);

// Подключиться к MetaMaskкошелек

const provider = new ethers.providers.Web3Provider(window.ethereum);

После завершения вы сможете использовать IDE для записи кода на языке Solidity и создания смарт-контрактов для DApps. Для развертывания будет использован Ethers.js. Вы можете даже протестировать DApp или контракт локально, используя среды, такие как Truffleи Hardhat. Затем вы развертываете контракты на сеть Ethereum, для чего нужен ethers.js.

const contract = new ethers.ContractFactory(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Для непосвященного abi, Bytecode, Signer являются необходимыми терминами для беспрепятственной разработки смарт-контрактов. Abi или бинарный интерфейс приложения больше похож на метку, которая помогает сети распознавать ваши смарт-контракты. Bytecode - это скомпилированная или, скорее, готовая к работе в сети версия смарт-контракта, а signer - это сущность, генерирующая подпись.

Ethers.js для фронт-энда

После развертывания смарт-контракта вам нужно создать пользовательский интерфейс DApp. Для этого вы можете использовать Angular или React. Вы даже можете интегрировать Ethers.js в пользовательский интерфейс, чтобы гарантировать его взаимодействие со смарт-контрактами Ethereum. Вот пример кода для этого:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contract = new ethers.Contract(contractAddress, contractABI, provider.getSigner());

После этого вам нужно протестировать DApp на тестовой сети, например, на Rinkeby или Ropsten. Как только вы будете довольны, вы сможете запустить DApp на основной сети. Обратите внимание, сколько раз вам нужно взаимодействовать с Эфиром или ethers.js в процессе.

Основные функции

Библиотека Ethers.js выглядит как всесторонняя библиотека Ethereum. Вот некоторые эксклюзивные предложения, которые могут облегчить жизнь разработчиков:

Поставщики

Провайдеры Ethers.js действуют как мосты между сетью Ethereum и DApp, над которым вы работаете. Это включает упрощение запроса данных блокчейна и также помогает вещать транзакции. Infura - один из провайдеров, которые использует Ethers.js.

Вот образец кода для того же самого:

const { ethers } = требуют(‘ethers’);

// Подключение с использованием Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Проверьте текущий номер блока

provider.getBlockNumber().then((blockNumber) => {

console.log(“Текущий номер блока:”, blockNumber);

});

Кошельки

Ethers.js позволяет управлять кошельками, позволяя вам создавать новые учетные записи, импортировать существующие учетные записи, безопасно управлять частными ключами для подписи транзакций и делать многое другое.

Контракты

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Этот компонент существования Ethers.js поддерживает создание объектов. Это упрощает вызов конкретных функций контракта, больше похоже на методы нативного Javascript.


Взаимодействие Ethers.js и смарт-контрактов: BeInCrypto

Интеграция ENS

Ethers.js может разрешать имена ENS на их адреса Ethereum и наоборот. Эта функция снижает риск ошибок.

Вот фрагмент кода для примера:

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’Ошибка: неверный формат ввода

const ensName = ‘алиса.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} решается как ${address}`);

});

Помимо упомянутых особенностей, Ethers.js также гордится следующими аспектами или функциями, помогая разработчикам получить прямой доступ к Ethereum.

  1. Подписанты
  2. Утилиты
  3. Слушатели событий и фильтры (предназначенные для активации мгновенных ответов на действия в блокчейне)
  4. Транзакции
  5. Поддержка мультиколл
  6. Поддержка TypeScript (предназначенная для улучшения надежности кода и общего опыта разработчика)

Несколько преимуществ использования Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Как криптопубликации могут использовать Ethers.js

Издания, такие как BeInCrypto, могут использовать Ethers.js для создания передовых и эффективных веб-инструментов web3 с нуля. Таким образом, становится возможным использовать блокчейн или, скорее, функции, работающие на Ethereum, для улучшения удобства использования. Вот варианты, которые можно рассмотреть:

Потоки данных

Функции Ethers.js могут быть использованы для интеграции фактических данных криптовалют в реальном времени, таких как статистика сети, комиссии за газ, и многое другое, чтобы сохранить статьи и ресурсы всегда актуальными. Вот пример кода для получения последнего номера блока, скажем, для биткоина, чтобы отслеживать деление наполовину в реальном времени.

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

provider.getBlockNumber().then((blockNumber) => {

console.log(“Текущий номер блока:”, blockNumber);// Интегрируйте эти данные в вашу платформу издания для получения данных в реальном времени

});

Интерактивный контент

Публикации могут создавать фрагменты интерактивного контента, позволяя пользователям взаимодействовать непосредственно со смарт-контрактами, участвовать в опросах или даже играть в небольшие игры при необходимости.

Вот фрагмент кода для извлечения приветствия, специфического для вехи, из смарт-контракта:

const { ethers } = требуются(‘ethers’);

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

«функция getGreeting() вид возвращает (строка)»

]

const contract = new ethers.Contract(contractAddress, contractABI, provider);

async function displayGreeting() {

const greeting = await contract.getGreeting();document.getElementById(‘greeting’).innerText = greeting;

}

Откройте счет на KuCoin и получите гарантированный бонус до 700 USDT.

  1. Начните свой торговый путь криптовалютой с KuCoin и получите преимущество!
  2. Торгуйте с уверенностью на KuCoin! Наша платформа отдает предпочтение вашей безопасности, предлагая защиту верхнего уровня для ваших цифровых активов.
  3. Исследуйте огромный мир криптовалют с KuCoin!

Зарегистрируйтесь сейчас!

Реальный пример того, как развёртывается Ethers.js:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Децентрализованная публикация

СМИ также могут рассмотреть децентрализованное публикование, где остаток статьи публикуется в сети блокчейн. Это может помочь сопротивляться цензуре и обеспечить целостность контента.

Вот пример кода, где хэш статьи хранится онлайн в качестве доказательства публикации:

const { ethers } = require(‘ethers’);

const wallet = new ethers.Wallet(‘ВАШ_ЧАСТНЫЙ_КЛЮЧ’, провайдер);

const contentHash = ethers.utils.id(“Содержание статьи здесь”);

const tx = await wallet.sendTransaction({

to: ‘0xSomeStorageContractAddress’,data: contentHash // Предполагая, что контракт принимает и хранит эти данные

});

console.log(“Хэш транзакции (доказательство публикации):”, tx.hash);

Это всего лишь несколько примеров использования для медиа-изданий. Но есть и другие сектора, которые могут воспользоваться мощью ethers.js. Сюда входят:

  1. Разработчики блокчейна (ожидаемо)
  2. Финансовые аналитики, работающие с DeFiметрика
  3. Разработчики игр
  4. Создатели контента
  5. Менеджеры цепочки поставок

И еще.

Прикладные программы Ethers.js

Помимо того, что полезно в DeFi, NFT-проектов и игровых проектов, существует несколько существующих DApp, которые поддерживают использование Ethers.js. Среди них следующие:

  1. Ether.js взаимодействует с встроенными смарт-контрактами Uniswap для выполнения сделок, добавления ликвидности и даже запроса статистики пула. В этом случае разработчики децентрализованных приложений планируют создавать инструменты, взаимодействующие с Uniswap, такие как торговые боты, инструменты управления портфелем и многое другое.
  2. Aave: Разработчики DApp и другие заинтересованные лица могут использовать функциональные возможности Ether.js для взаимодействия с конкретными смарт-контрактами Aave. Таким образом, они могут подготовить интерфейс для заимствования активов, залогового депозита и выполнения других действий.

Разрушение нескольких мифов о Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Соображения безопасности

Использование Ethers.js идет в комплекте с довольно обширным набором безопасностьрассмотрения. Вот несколько, за которыми следовать:

  1. Рекомендуется не зашивать приватные ключи в кодовую базу вашего приложения.
  2. Каждое взаимодействие с умным контрактом должно предшествовать тестированию и тщательной проверке контрактов.
  3. Взаимодействуя с умными контрактами, используйте безопасные шаблоны, такие как «call», для выполнения только чтения.
  4. Для оптимизации использования ethers.js вы можете рассмотреть пакетную обработку запросов. Здесь вы можете объединить, скажем, только для чтения запросы, чтобы минимизировать количество сетевых вызовов. Само собой разумеется, что эти техники оптимизации могут сделать приложение высоко масштабируемым и экономичным.

Вот пример работы этого

// Псевдокод для пакетной обработки вызовов контрактов с использованием Ethers.js (концептуальный пример)

const contract = new ethers.Contract(address, abi, provider);

const [значение1, значение2, значение3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: универсальный инструмент

Спонсированный

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Как показано в этом руководстве, Ethers.js - это универсальный инструмент. Хотя мы кратко рассмотрели его возможности, лучший способ полностью понять Ethers.js - это погрузиться глубже в мир смарт-контрактов, JavaScript, IDE, DApps и многое другое. Кроме того, присоединение к сообществам Ethereum и Ethers также может пригодиться.

Часто задаваемые вопросы

Как разработчики могут использовать события Ethers.js?

Какие основные утилиты предлагает Ethers.js?

Какая связь между Ethers.js и Web3.js?

Disclaimer:

  1. Эта статья перепечатана из [beincrypto], Все авторские права принадлежат оригинальному автору [Ананда Банерджи]. Если есть возражения к этому перепечатыванию, пожалуйста, свяжитесь с Gate Learnкоманда, и они незамедлительно разберутся с этим.
  2. Ответственность за отказ: Взгляды и мнения, выраженные в этой статье, являются исключительно мнениями автора и не являются инвестиционным советом.
  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!