JavaScript SDK¶
Пакет JavaScript SDK предназначен для разработчиков приложений, интегрируемых с платформой Waves Enterprise. С помощью JavaScript SDK пользователи разработанных приложений подписывают и отправляют все типы транзакций в блокчейн-сеть.
JavaScript SDK использует методы REST API для работы с блокчейном. В отличие от прямого взаимодействия с блокчейном через традиционный инструмент REST API приложение подписывает транзакцию локально в браузере или в среде Node.js, не обращаясь к ноде. Подписанная транзакция отправляется сразу в сеть. Такой способ работы с блокчейном более удобен и эффективен для разработки сторонних сервисов и приложений, взаимодействующих с блокчейн-сетью. Данные передаются и принимаются в формате json по HTTPS-протоколу.
JavaScript SDK работает одновременно и в браузере, и в среде Node.js. Веб-приложения используют вариант работы в браузере, бэкенд-приложения - работу в среде Node.js. Если вы хотите работать без браузера, то для использования JavaScript SDK потребуется установка LTS версии Node.js. Сам пакет JavaScript SDK и инструкцию по установке и инициализации вы найдёте на странице в GitHub. Общая схема работы JavaScript SDK представлена ниже.
Состав JavaScript SDK¶
JavaScript SDK включает в себя исходные материалы для работы, а также два вспомогательных компонента:
transactions-factory - компонент предназначен для корректной сериализации в байты всех типов транзакций для последующей подписи приватным ключом.
signature-generator - компонент, подписывающий транзакции и поддерживающий ГОСТ и Waves криптографию.
Криптографические методы ноды в JavaScript SDK¶
Для реализации криптографических алгоритмов SDK поддерживает криптографические методы REST API ноды:
crypto/encryptCommon
crypto/encryptSeparate
crypto/decrypt
Авторизация в блокчейне через JavaScript SDK¶
Пользователь приложения использует стандартные средства авторизации в блокчейне Waves Enterprise. Подробнее о методах авторизации вы можете почитать в разделе Методы авторизации.
JavaScript SDK поддерживает авторизацию в браузере и в среде Node.js. Для авторизации в браузере используется интерфейс Fetch API. Для Node.js применяется HTTP-клиент Axios.
Подписание и отправка транзакций в блокчейн¶
Приложение может создавать, подписывать и отправлять в блокчейн любой транзакции. Список всех транзакций вы можете посмотреть в разделе Транзакции.
Создание транзакции инициируется приложением.
Все поля транзакции сериализуются в байты и подписываются приватным ключом пользователя прямо в браузере или в среде Node.js.
JavaScript SDK отправляет транзакцию в блокчейн, используя соответствующий HTTP POST запрос.
Приложение получает ответ в виде хэша транзакции на выполненный HTTP POST запрос.
Для получения ID транзакции до её отправки воспользуйтесь отдельным методом:
const txHash = await Waves.API.Node.transactions.getTxId('transfer', txBody, { publicKey })
Создание seed-фразы¶
Приложение работает с seed-фразой в следующих вариантах:
Создаёт фразу в совершенно случайном порядке.
Создаёт зашифрованную фразу с указанным паролем.
Расшифровывает фразу при помощи указанного пароля.