Что такое НибиJS?

NibiJS — это библиотека JavaScript/TypeScript, которая предоставляет клиент для взаимодействия с блокчейном Nibiru и позволяет программно торговать. Команда разработала его как базовую библиотеку для веб-приложения Nibiru. Это также служит дополнительной цели, позволяя членам сообщества получить ранний доступ к тестовой сети.

NibiJS позволяет пользователям…

  1. Создавайте кошельки с нуля, мнемоники или приватные ключи.
  2. Балансы запросов и состояние цепочки.
  3. Анализируйте события, возникающие при переходах между состояниями.
  4. Создавайте, подписывайте и транслируйте пользовательские транзакции: вся кодировка protobuf и amino выполняется с помощью CosmJS.
  5. Создавайте веб-приложения в популярных средах JS, таких как Vue и React.

Монтаж

В этом руководстве предполагается, что вы начинаете с Unix-подобной системы, такой как Ubuntu, macOS или подсистема Windows для Linux (WSL).

Начните с установки узла с помощью Node Version Manager (nvm). Вы можете установить nvm с помощью следующей команды cURL.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Пользователи Windows могут либо (1) получить последнюю стабильную версию Node.js по адресу https://nodejs.org/en/, либо (2) установить Git BASH, чтобы иметь среду, подобную *NIX.

nvm use 18
npm install -g npm yarn

Наконец, установите @nibiruchain/nibijs из npm.

yarn add @nibiruchain/nibijs
yarn

Я рекомендую использовать NibiJS с TypeScript или JavaScript в редакторе, который поддерживает подсказки типов.

Запуск примеров с ts-node

Вы можете запустить пример кода, использованный в этом посте, используя ts-node. Эти примеры можно найти в каталоге примеров репозитория NibiruChain/ts-sdk».

Схема кодовой базы NibiJS

Создание кошелька и использование крана

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

Транзакции в самом абстрактном смысле можно рассматривать как массив сообщений с цифровыми подписями, которые транслируются в сеть через REST, Tendermint RPC или gRPC.

Хотя в этом руководстве мы используем жестко запрограммированную мнемонику, вам следует избегать этого с реальными активами. Лучше хранить мнемонику или ключ как переменные в среде вашей ОС и обращаться к ним с помощью process.env для дополнительной безопасности.

Здесь мы используем удобную функцию для запроса средств из крана. Сборщик позволяет любому переводить средства (NIBI и NUSD) на адрес Nibiru. NIBI нужен для оплаты газа и трансляционных транзакций, а NUSD нужен для торговли бессрочными фьючерсами.

Наименьшая единица NIBI называется unibi, сокращение от micro-NIBI или µ-NIBI. Соответствующий токен для NUSD — unusd.

Примечание:

  • Также для запроса токенов можно использовать Бот Discord в канале «💦︲faucet.
  • Существует ограничение на то, сколько денег может быть предоставлено сборщиком. Это делается для предотвращения злонамеренных действий людей в тестовой сети.

Запрос данных из цепочки

Экземпляр Chain указывает информацию, необходимую для подключения к конечным точкам узла gRPC, Tendermint RPC и REST/LCD. Подробнее об этих конечных точках можно прочитать здесь.

Текущая тестовая сеть имеет предварительно настроенный экземпляр Chain, который вы можете импортировать.

Для запроса цепочки не требуется подписывающая сторона. Клиент запроса может быть создан с использованием функций Chain и initQueryCmd.

Чтобы запросить параметры и информацию о ценах для всех пулов на Nibi-Perps, используйте query.vpool.allPools(). Его вывод выглядит примерно так.

Как правило, запросы организованы на основе их названия модуля, например perp, vpool или bank. Подробную спецификацию транзакций и запросов каждого модуля можно найти в Справочнике по модулям документации Nibiru.

Для тех, кто знаком с CosmJS, Tendermint34Client также доступен через атрибут tmClient. Документацию по Tendermint34Client можно найти здесь.

Бессрочные свопы — открытие и закрытие позиций

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

Ссылки сообщества

Если у вас есть какие-либо вопросы или пожелания, вы можете связаться с командой инженеров напрямую в Discord или GitHub.

Чтобы быть в курсе дальнейших событий или оставить отзыв, присоединяйтесь к одному из каналов нашего сообщества!
🌴 Дерево ссылок | ️Твиттер | Раздор | Документация | Цепной проводник