@coolwallet/ltc
Version:
Coolwallet LiteCoin sdk
112 lines (84 loc) • 3.85 kB
Markdown
# CoolWallet Litecoin (LTC) SDK
[](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 |