Skip to content

Releases: Adamant-im/adamant-api-jsclient

v2.4.0

21 Jun 07:32
593fb63
Compare
Choose a tag to compare

Fixed

  • Validation of public keys and delegate names for api.voteForDelegate() method

Added

  • Check if an address is actually a delegate in api.voteForDelegate()
  • More validation error messages for api.voteForDelegate()

v2.2.0

17 Dec 19:51
838527b
Compare
Choose a tag to compare

Added

  • Export validator utils:

    function isPassphrase(passphrase: unknown): passphrase is string;
    function isAdmAddress(address: unknown): address is AdamantAddress;
    function isAdmPublicKey(publicKey: unknown): publicKey is string;
    function isAdmVoteForPublicKey(publicKey: unknown): publicKey is string;
    function isAdmVoteForAddress(address: unknown): boolean;
    function isAdmVoteForDelegateName(delegateName: unknown): delegateName is string;
    function validateMessage(
      message: string,
      messageType: MessageType = MessageType.Chat
    ): { success: false, error: string } | { success: true };
    function isDelegateName(name: unknown): name is string;
    function admToSats(amount: number): number;

v2.1.0

23 Nov 18:06
0626686
Compare
Choose a tag to compare

Added

  • api.initSocket() now accepts an instance of WebSocketClient as an argument:

    const socket = new WebSocketClient({ /* ... */ })
    
    api.initSocket(socket)
    // instead of
    api.socket = socket
  • Improved the encodeMessage() and decodeMessage() functions to accept public keys as Uint8Array or Buffer

    import {encodeMessage, createKeypairFromPassphrase} from 'adamant-api'
    
    const {publicKey} = createKeypairFromPassphrase('...')
    const message = encodeMessage(,, publicKey) // No need to convert public key to string
  • decodeMessage() allows passing a key pair instead of a passphrase:

    import {decodeMessage, createKeypairFromPassphrase} from 'adamant-api'
    
    const keyPair = createKeypairFromPassphrase('...')
    const message = decodeMessage(,, keyPair,) // <- It won't create a key pair from passphrase again
  • TypeScript: Export transaction handlers TypeScript utils: SingleTransactionHandler, AnyTransactionHandler, TransactionHandler<T extends AnyTransaction>

Fixed

  • TypeScript: Fixed typing for AdamantApiOptions by adding LogLevelName as possible value for logLevel property.

    For example, you can now use 'log' instead of LogLevel.Log in TypeScript:

    const api = new AdamantApi({ /* ... */ logLevel: 'log' })
  • TypeScript: Added missing declaration modules to npm that led to the error:

    Could not find a declaration file for module 'coininfo'.
    /// <reference path="../../types/coininfo.d.ts" />
    
  • TypeScript: amount property in ChatTransactionData (createChatTransaction() argument) is now truly optional:

    -  amount: number | undefined;
    +  amount?: number;

v2.0.0

02 Nov 21:58
139778b
Compare
Choose a tag to compare

Added

  • TypeScript support

    The project was fully rewritten in TypeScript, which means it supports typings now.

    See examples directory.

  • More API methods

    Added more API methods:

    // before
    const block = await api.get('blocks/get', { id });
    
    // after
    const block = await api.getBlock(id);

    and post() method:

    await api.post('transactions/process', { transaction });
  • getTransactionId() method

    Pass signed transaction with signature to get a transaction id as a string:

    import {getTransactionId} from 'adamant-api'
    const id = getTransactionId(signedTransaction)

    See an example for more information.

Fixed

  • Creating multiple instances

    Previously, it was not possible to create multiple instances due to the storage of Logger and "Node Manager" data in the modules.

  • Importing module several times

    Fixed a bug where importing adamant-api-jsclient caused issues when it was also imported as a dependency.

Changed

  • API Initialization

    Now you will create new instances of adamant-api using keyword new:

    import { AdamantApi } from 'adamant-api';
    
    const api = new AdamantApi({ nodes: [/* ... */] });
  • Socket Initialization

    Replace api.socket.initSocket() with api.initSocket().

    Use api.socket.on() instead of .initSocket({ onNewMessage() {} }).

    // before
    api.socket.initSocket({
      admAddress: 'U1234..',
      onNewMessage(transaction) {
        // ...
      },
    });
    
    // after
    api.initSocket({ admAddress: 'U1234..' });
    
    api.socket.on((transaction: AnyTransaction) => {
      // ...
    });

    or specify socket option when initializing API:

    // socket.ts
    import { WebSocketClient, TransactionType } from 'adamant-api';
    
    const socket = new WebSocketClient({ admAddress: 'U1234..' });
    
    socket.on([TransactionType.CHAT_MESSAGE, TransactionType.SEND], (transaction) => {
      // handle chat messages and transfer tokens transactions
    });
    
    socket.on(TransactionType.VOTE, (transaction) => {
      // handle vote for delegate transaction
    });
    
    export { socket };
    // api.ts
    import { AdamantApi } from 'adamant-api';
    import { socket } from './socket';
    
    export const api = new AdamantApi({
      socket,
      nodes: [/* ... */],
    });

Removeed

  • createTransaction()

    Use createSendTransaction, createStateTransaction, createChatTransaction, createDelegateTransaction, createVoteTransaction methods instead.

v1.8.0

13 Jan 17:14
1c19cd6
Compare
Choose a tag to compare
  • Add checkNodeTimeout parameter (see #30)

v1.7.0

06 Jan 19:12
cac266d
Compare
Choose a tag to compare
  • Add api.setStartupCallback() method, see #28
  • Add callback as 3rd parameter for the api constructor

v1.6.0

16 Nov 02:55
00174ff
Compare
Choose a tag to compare
  • Update socket.io
  • Update other dependencies
  • Re-export key for backward compatibility

v1.5.0

01 Apr 09:16
364f31f
Compare
Choose a tag to compare
  • Refactoring
  • Add Lisk support
  • Axios client
  • Style/contributing

v1.4.0

12 Feb 16:48
936e7cd
Compare
Choose a tag to compare

v1.3.0

24 Oct 08:48
8a1cbcc
Compare
Choose a tag to compare
  • Add DOGE keys generation