UNPKG

@coolwallet/doge

Version:
140 lines (105 loc) 5.7 kB
# CoolWallet Bitcoin SDK Typescript library with support for the integration of Bitcoin for third party application, include the functionalities of generation of addresses and signed transactions. ## Install ```shell npm i @coolwallet/doge ``` ## Usage ```javascript import DOGE from '@coolwallet/doge'; import { crypto } from '@coolwallet/core'; import { createTransport } from '@coolwallet/transport-web-ble'; const doge = new DOGE(); 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 doge.getAddress(transport, appPrivateKey, appId, scriptType, 0); const signTxData = { transport, appPrivateKey, appId, scriptType: 1, inputs: [{ preTxHash: "735153f57da91462a01c17937a397aa67f7b5faf9ab74ebcdd4c8f485aba26f5", preIndex: 1, preValue: "87302", sequence: 0xFFFFFFFF, addressIndex: 0, pubkeyBuf: Uint8Array(33) }], output: { value: "10000", address: "3442qW39131y5Q8qR963ehjmxXPAXUWn7Q", }, change: { value: "77301.99983500001", addressIndex: 0, pubkeyBuf: Uint8Array(33) } } const normalTx = await doge.signTransaction(signTxData) ``` ## Methods ### getAddress #### Description Get address by address index. The DOGE address generated is compatible to BIP141 (SegWit Proposal) and BIP44 with **account** and **change** set to 0, which means calling `getAddress` with `addressIndex = i` will get the address of folllowing path: ```none m/44'/3'/0'/0/{i} ``` In the design of current hardware, we only support path `m/44'/3'/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. ```javascript async getAddress( transport: Transport, appPrivateKey: string, appId: string, scriptType: ScriptType, addressIndex: number ): Promise<string> ``` #### Arguments | Arg | Description | Type | Required | |:-------------:|:--------------------------------------------:|:----------:|:---------:| | transport | Object to communicate with CoolWallet device | Transport | True | | appPrivateKey | Private key for the connected application | string | True | | appId | ID for the connected application | string | True | | scriptType | Define the type of script of the address | ScriptType | True | | addressIndex | The from address index in BIP44 derivation | number | True | ### signTransaction #### Description Sign Bitcoin Transaction. ```javascript async signTransaction(signTxData: signTxType):Promise<string> ``` #### signTxType Arguments | Arg | Description | Type | Required | |:-------------:|:--------------------------------------------------------------------:|:----------:|:---------:| | transport | Object to communicate with CoolWallet device | Transport | True | | appPrivateKey | Private key for the connected application | string | True | | appId | ID for the connected application | string | True | | scriptType | Define the type of script of the address | ScriptType | True | | inputs | Array of inputs of previous transactions (UTXO) | [Inputs] | True | | output | Output of the transaction | Output | True | | change | Address to receive changes | Change | True | | confirmCB | Callback of confirmation data to the connected application | Function | False | | authorizedCB | Callback of authorized transaction data to the connected application | Function | False | ### signUSDTTransaction #### Description Sign USDT Transaction ```javascript async signUSDTTransaction(signUSDTTxData: signUSDTTxType): Promise<string> ``` #### signUSDTTxType Arguments | Arg | Description | Type | Required | |:-------------:|:--------------------------------------------------------------------:|:----------:|:---------:| | transport | Object to communicate with CoolWallet device | Transport | True | | appPrivateKey | Private key for the connected application | string | True | | appId | ID for the connected application | string | True | | scriptType | Define the type of script of the address | ScriptType | True | | inputs | Array of inputs of previous transactions (UTXO) | [Inputs] | True | | output | Output of the transaction | Output | True | | value | Amount of USDT to transfer | string | True | | change | Address to receive changes | Change | True | | confirmCB | Callback of confirmation data to the connected application | Function | False | | authorizedCB | Callback of authorized transaction data to the connected application | Function | False |