cryptofoundry

Связаться с cryptofoundry

Расскажите, что вы хотите создать или автоматизировать.

Электронная почта
[email protected]
ADAMANT Messenger
Открыть в ADAMANT
adamant-api-jsclient

ADAMANT API JS Client v3.0.0

ADAMANT API JS Client v3.0.0

Это крупное обновление SDK, синхронизированное с ADAMANT Node v0.10.0. Обновлены HTTP и WebSocket-клиенты для текущего API узла, введены стабильные модульные границы пакетов, улучшены поведение повторных попыток и отказоустойчивость, добавлена детерминированная генерация метаданных, а устаревшая документация на основе Wiki заменена на контролируемый исходный код сайта на VitePress и TypeDoc.

Поддержка ADAMANT Node v0.10.0

Выпуск включает повторную генерацию DTO API из зафиксированной ревизии adamant-schema, включая метки времени в миллисекундах, данные загрузчика и состояния, числовые счётчики и опциональные поля для неподтверждённых транзакций. Добавлены текущие параметры запросов транзакций и чатов, такие как returnUnconfirmed, includeDirectTransfers, поиск делегатов по адресу и запросы транзакций нескольких типов. Фильтры запросов транзакций теперь по умолчанию объединяются логическим оператором and, а фильтры суммы применяются только к транзакциям передачи. SDK добавляет опциональную конструкцию транзакций с timestampMs и функцию getEpochTimeMs; поскольку timestampMs не входит в подписываемые байты, хэши, ID и подписи сохраняются. Проверки работоспособности обновлены для объединённого ответа о состоянии узла и поддерживают фильтрацию по минимальной версии узла.

Надёжность и поведение WebSocket

Клиент больше не повторяет явно отклонённые POST-ответы, вместо этого возвращая структурированные, неповторяемые HTTP-ошибки, предотвращая бесконечные циклы. Повторные попытки и переход на резервный активный узел сохраняются для безопасных запросов и сетевых сбоев, при которых HTTP-ответ отсутствует. Подписки WebSocket теперь поддерживают несколько адресов, типов транзакций и типов активов чата, с удобными обработчиками транзакций и сообщений, обратными вызовами подключения и переподключения, явными командами connect и disconnect, типизированными ошибками подключения, очисткой слушателей и ограниченной обработкой повторного подключения.

Модульный SDK и пакет npm

Корень пакета остаётся ориентированным на ADM и предотвращает загрузку реализаций, специфичных для конкретных монет. Добавлены экспортные подпути для ADM, DTO API, транзакций, метаданных и вспомогательных модулей BTC, ETH, DASH и DOGE, при этом поддерживается как CommonJS, так и ESM. Детерминированная метаданных кошелька синхронизируется из зафиксированной ревизии adamant-wallets. Код и зависимости Lisk и Klayr удалены, поддерживаемые методы получения внешних монет и проверки адресов стандартизированы. Для работы требуется Node.js 22 или новее, используется метаданные рабочей области pnpm, обновлены TypeScript и зависимости, добавлены тесты tarball на уровне потребителя.

Исправления API, сохранённые с версии v2.4.0

Данный выпуск исправляет поведение голосования делегатов и проверки работоспособности. Разрешены строковые полезные нагрузки для сигнальных сообщений, а суммы проверяются только для типов сообщений, которые их содержат. Идентификаторы транзакций представлены как строки, а вспомогательные функции валидации экспортируются.

Документация, автоматизация и сопровождение

Документация предоставляется через сайт VitePress с API-справочником, сгенерированным с помощью TypeDoc, и руководствами. В выпуск включён workflow GitHub Pages для документации с CNAME, обновлённые файлы README и CONTRIBUTING, проверки детерминированной синхронизации схемы и метаданных, пользовательский запускатель Jest, тесты для потребителей пакета, расширенное покрытие и тесты границ модулей. Линтинг и конфигурация TypeScript перенесены на текущий инструментарий, устаревшие файлы удалены.

Критические изменения

Подписки WebSocket теперь по умолчанию используют allDirections. Ранее клиент передавал только входящие транзакции с жёстко заданным фильтром recipientId === admAddress; теперь по умолчанию передаются как входящие, так и исходящие транзакции. Чтобы восстановить старое поведение, передайте direction: 'incoming' в параметрах клиента WebSocket. Требуется Node.js 22 или новее. Вспомогательные модули монет должны импортироваться из явных путей, например adamant-api/coins/btc, и больше не экспортируются из корня пакета. Поддержка Lisk и Klayr удалена. Фильтры запросов транзакций теперь по умолчанию используют логическое and, а фильтры сумм применяются только к транзакциям передачи. Потребителям следует проверить использование устаревшего параметра withoutDirectTransfers и перейти на includeDirectTransfers.

Разметка байтов транзакций, подпись, идентификаторы и семантика подписей остались без изменений. Потребители как CommonJS, так и ESM охвачены тестом упакованного tarball.