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.