SDK JavaScript для Ethereum и сложного протокола

Мы рады объявить о выпуске нового комплекта для разработки программного обеспечения, над которым мы работаем. Введите Compound.js; SDK JavaScript для Ethereum и составного протокола. Этот инструмент упрощает процесс разработки программного обеспечения для создания DApps, ускоряющих DeFi.

На момент этого объявления SDK официально находится в стадии бета-тестирования. Он доступен для всех с открытым исходным кодом на GitHub и NPM. Compound.js работает в веб-браузере, а Node.js. У него только одна зависимость: последняя версия Ethers.js.

Созданные с учетом простоты, разработчики могут писать интуитивно понятные однострочные методы для инициализации запросов JSON RPC, которые взаимодействуют с составным протоколом.

Помимо составных методов, разработчики могут выполнять общие вызовы чтения и записи Ethereum для любого смарт-контракта. Наконец, вызовы REST API могут выполняться в Compound API, который размещен в Compound Labs.

Ethereum JSON RPC с Compound.js

Чтение и запись из блокчейна можно быстро выполнить с помощью Compound.js; нет необходимости инициализировать объект.

В следующих примерах поставщик JSON RPC или поставщик Web3 можно передать как атрибут provider в объекте параметров. При записи в блокчейн частный ключ или мнемоника также могут быть переданы в объекте параметров.

Запись в блокчейн (eth_sendTransaction)

Операции записи инициализируются с помощью Compound.eth.trx. Возвращаемое значение - объект транзакции Ethers.js. Вот пример отправки ETH в веб-браузере.

Чтение из блокчейна (eth_call)

Чтение любого смарт-контракта в блокчейне можно выполнить с помощью Compound.eth.read. Вот пример для чтения баланса USDC в паре Uniswap USDC-ETH.

ABI контракта также может быть передан объекту опций. В этом случае вы должны предоставить строку имени метода в качестве второго параметра вместо всего определения метода.

Составные методы протокола

Простые однострочные запросы доступны для основных методов протокола, таких как supply, redeem, заимствование, repayBorrow и другие.

В примерах, подобных следующему, сначала должен быть создан экземпляр составного объекта. Конструктору может быть передано window.ethereum в браузере или закрытый ключ / мнемоника вместе с поставщиком JSON RPC, если вы используете Node.js.

Сопровождение протокола

Вот пример передачи эфира в составной протокол с использованием Compound.js.

Дополнительные примеры инициализации объекта и более подробное описание параметра параметры транзакции доступны в Readme репозитория Compound.js на GitHub.

Управление и методы COMP

В SDK есть элегантные методы для функциональности сложного управления с помощью смарт-контрактов COMP и Governor.

Вот пример получения количества токенов COMP, накопленных для адреса (подробнее о Распределении COMP здесь).

Проголосовать за предложение комплексного управления так же просто, используя метод SDK castVote.

Дополнительные методы управления описаны в Документации Compound.js.

Получение цен

Получить цены из открытого фида цен можно с помощью метода getPrice.

Первый параметр - это актив, цену на который вы хотите получить, а второй параметр (необязательный) - это актив, в который вы хотите конвертировать эту цену. По умолчанию выводятся доллары США с 6 знаками после запятой.

Этот метод поддерживает все активы, размещенные в Open Price Feed, а также cTokens.

Составные методы API

Составной REST API можно запросить с помощью Compound.js. У каждой из доступных служб есть свой метод.

  • рынок
  • учетная запись
  • cToken
  • управление

Каждый из параметров запроса, определенных в документации (ссылка выше), может быть передана в параметре объекта JavaScript. Вот пример запроса к службе истории рынка.

Дорожная карта и вклад

Compound.js находится в открытой бета-версии и доступен бесплатно на NPM. План следующих шагов - добавить больше методов, связанных с составным протоколом, для упрощения разработки. Кроме того, более интеллектуальное ведение журнала ошибок и результатов значительно улучшило бы опыт разработчика.

Помните, что сложный протокол децентрализован и обновляется сообществом. В результате этот SDK изменится так, как сочтет нужным сообщество!

Руководство сообщества будет доступно в будущем для всех, кто поможет улучшить SDK.

Если у вас есть вопросы или комментарии, присоединяйтесь к Compound Discord и отправьте нам сообщение в канале # 💻development.