Метод api.initSocket() теперь принимает экземпляр WebSocketClient в качестве аргумента, что позволяет напрямую инициализировать сокет, не назначая его свойству api.socket.
const socket = new WebSocketClient({ /* ... */ })
api.initSocket(socket)
// instead of
api.socket = socket
Функции encodeMessage() и decodeMessage() улучшены, чтобы принимать публичные ключи в виде Uint8Array или Buffer, устраняя необходимость преобразования публичных ключей в строки.
import {encodeMessage, createKeypairFromPassphrase} from 'adamant-api'
const {publicKey} = createKeypairFromPassphrase('...')
const message = encodeMessage(,, publicKey) // No need to convert public key to string
Кроме того, decodeMessage() позволяет передавать пару ключей вместо пароля, что предотвращает многократное создание пары ключей из пароля.
import {decodeMessage, createKeypairFromPassphrase} from 'adamant-api'
const keyPair = createKeypairFromPassphrase('...')
const message = decodeMessage(,, keyPair,) // <- It won't create a key pair from passphrase again
Для пользователей TypeScript библиотека теперь экспортирует вспомогательные утилиты для обработки транзакций, включая SingleTransactionHandler, AnyTransactionHandler и TransactionHandler<T extends AnyTransaction>.
Также исправлены несколько проблем, связанных с TypeScript. Исправлена типизация AdamantApiOptions путём добавления LogLevelName в качестве допустимого значения для свойства logLevel, что позволяет использовать строковые литералы, такие как 'log', вместо LogLevel.Log.
const api = new AdamantApi({ /* ... */ logLevel: 'log' })
Добавлены недостающие объявления модулей для npm, устранена ошибка, связанная с отсутствием файла объявления для модуля coininfo.
Could not find a declaration file for module 'coininfo'.
/// <reference path="../../types/coininfo.d.ts" />
Наконец, свойство amount в ChatTransactionData, используемое createChatTransaction(), теперь действительно является необязательным.
- amount: number | undefined;
+ amount?: number;