1.1.4 • Published 5 months ago

@coolwallet/bnb v1.1.4

Weekly downloads
20
License
ISC
Repository
github
Last release
5 months ago

CoolWallet Binance Coin (BNB) SDK

Typescript library with support for the integration of BNB for third party application, include the functionalities of generation of addresses and signed transactions.

Install

npm install @coolwallet/bnb

Usage

import BNB from '@coolwallet/bnb';
import { crypto } from '@coolwallet/core';
import { createTransport } from '@coolwallet/transport-web-ble';

const bnb = new BNB();

const transport = await createTransport();

const { privateKey: appPrivateKey } = crypto.key.generateKeyPair();

const appId = 'appId that had been registered by wallet';

const addressIndex = 0;

const address = await bnb.getAddress(transport, appPrivateKey, appId, addressIndex);

const chainId = 'Binance-Chain-Tigris';

// Use your way to get account data in this format.
const accountData = {
  account_number: '39',
  public_key: 'account_public_key',
  sequence: '',
}

const transaction = {
  account_number: accountData.account_number,
  chain_id: chainId,
  data: null,
  memo: '',
  msgs: [
    {
      inputs: [
        {
          address: 'bnb16xjz4q2lc63nnmxchlxsj0w34q6lgrsnhff60l',
          coins: [{ amount: 1000, denom: 'BNB' }],
        },
      ],
      outputs: [
        {
          address: 'bnb1uzsh50kfmh73m8ytfcta7p3zceull2ycnttw5s',
          coins: [{ amount: 1000, denom: 'BNB' }],
        },
      ],
    },
  ],
  sequence: '503',
  source: '711',
}

const signObj = {
    account_number: accountData.account_number,
    chain_id: chainId,
    data: null,
    memo: "",
    msgs: ['some messages'],
    sequence: accountData.sequence,
    source: "711"
};

const signTxData = {
    transport,
    appPrivateKey,
    appId,
    transaction,
    addressIndex,
    signObj,
    signPublicKey: Buffer.from(accountData.public_key),
    addressIndex,
}

const normalTx = await bnb.signTransaction(signTxData);

Methods

getAddress

Description

The address generated is compatible to BIP44 with account and change set to 0, which means calling getAddress with addressIndex = i will get the address of folllowing BIP44 path:

m/44'/714'/0'/0/{i}

In the design of current hardware, we only support path m/44'/714'/0'/0/{i} for speed optimization. This might change in the future and we will then open a more general interface to deal with custom path.

async getAddress(
    transport: Types.Transport, 
    appPrivateKey: string, 
    appId: string, 
    addressIndex: number
): Promise<string> 

Arguments

ArgDescriptionTypeRequired
transportObject to communicate with CoolWallet deviceTransportTrue
appPrivateKeyPrivate key for the connected applicationstringTrue
appIdID for the connected applicationstringTrue
addressIndexThe from address index in BIP44 derivationnumberTrue

Sign Transactions

CoolWallet currently support 3 types of Binance DEX transaction: Transfer, PlaceOrder and CancelOrder.

signTransfer

Description

Sign BNB Transaction

async signTransaction(signData: signType): Promise<string>

signType Arguments

ArgDescriptionTypeRequired
transportObject to communicate with CoolWallet deviceTransportTrue
appPrivateKeyPrivate key for the connected applicationstringTrue
appIdID for the connected applicationstringTrue
signObjSigning object for BNB Transfer transactionTransferTrue
signPublicKeyPublic key for signing transactionBufferTrue
addressIndexThe from address index in BIP44 derivationnumberTrue
confirmCBCallback of confirmation data to the connected applicationFunctionFalse
authorizedCBCallback of authorized transaction data to the connected applicationFunctionFalse

placeOrder

Description

Sign BNB Place Order Transaction

async signPlaceOrder(signData: signPlaceOrderType): Promise<string>

signPlaceOrderType Arguments

ArgDescriptionTypeRequired
transportObject to communicate with CoolWallet deviceTransportTrue
appPrivateKeyPrivate key for the connected applicationstringTrue
appIdID for the connected applicationstringTrue
signObjSigning object for BNB PlaceOrder transactionPlaceOrderTrue
signPublicKeyPublic key for signing transactionBufferTrue
addressIndexThe from address index in BIP44 derivationnumberTrue
confirmCBCallback of confirmation data to the connected applicationFunctionFalse
authorizedCBCallback of authorized transaction data to the connected applicationFunctionFalse

cancelOrder

Description

Sign BNB Cancel Order Transaction

async signCancelOrder(signData: signCancelOrderType): Promise<string> 

signCancelOrderType Arguments

ArgDescriptionTypeRequired
transportObject to communicate with CoolWallet deviceTransportTrue
appPrivateKeyPrivate key for the connected applicationstringTrue
appIdID for the connected applicationstringTrue
signObjSigning object for BNB CancelOrder transactionCancelOrderTrue
signPublicKeyPublic key for signing transactionBufferTrue
addressIndexThe from address index in BIP44 derivationnumberTrue
confirmCBCallback of confirmation data to the connected applicationFunctionFalse
authorizedCBCallback of authorized transaction data to the connected applicationFunctionFalse
1.1.4

5 months ago

1.1.3

2 years ago

1.1.1

2 years ago

1.0.2

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

3 years ago

1.0.1-beta.1

3 years ago

1.0.0

3 years ago

1.0.1-beta.0

3 years ago

0.1.0

3 years ago

0.1.0-beta.18

3 years ago

0.1.0-beta.17

3 years ago

0.1.0-beta.16

3 years ago

0.1.0-beta.15

3 years ago

0.1.0-beta.14

3 years ago

0.1.0-beta.13

3 years ago

0.1.0-beta.12

3 years ago

0.1.0-beta.11

3 years ago

0.1.0-beta.10

3 years ago

0.1.0-beta.9

4 years ago

0.1.0-beta.8

4 years ago

0.1.0-beta.7

4 years ago

0.1.0-beta.6

4 years ago

0.1.0-beta.5

4 years ago

0.1.0-beta.4

4 years ago

0.1.0-beta.3

4 years ago

0.1.0-beta.2

4 years ago

0.1.0-beta.1

4 years ago

0.1.0-beta.0

4 years ago