UNPKG

@coolwallet/ltc

Version:
112 lines (84 loc) 3.85 kB
# CoolWallet Litecoin (LTC) SDK [![Version](https://img.shields.io/npm/v/@coolwallet/ltc)](https://www.npmjs.com/package/@coolwallet/ltc) Typescript library with support for the integration of Litecoin for third party application, include the functionalities of generation of addresses and signed transactions. ## Install ```shell npm i @coolwallet/ltc ``` ## Usage ```javascript import LTC from '@coolwallet/ltc' const ltc = new LTC() const address = await ltc.getAddress(transport, appPrivateKey, appId, scriptType, 0); const inputs = { preTxHash: "735153f57da91462a01c17937a397aa67f7b5faf9ab74ebcdd4c8f485aba26f5", preIndex: 1, preValue: "87302", sequence: 0xFFFFFFFF, addressIndex: 0, pubkeyBuf: Uint8Array(33) } const output = { value: "10000", address: "MSea9ZqgrZqsB5bvg8iTrcUQ2xpF1ckAsv", } const change = { value: "77301.99983500001", addressIndex: 0, pubkeyBuf: Uint8Array(33) } const signTxData = { transport, appPrivateKey, appId, scriptType, inputs, output, change } const normalTx = await ltc.signTransaction(signTxData) ``` ## Methods ### getAddress #### Description Get address by address index. The LTC 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'/2'/0'/0/{i} ``` In the design of current hardware, we only support path `m/44'/2'/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 Litecoin 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 |