UNPKG

@coolwallet/xlm

Version:
113 lines (84 loc) 3.91 kB
# CoolWallet Stellar (XLM) SDK [![Version](https://img.shields.io/npm/v/@coolwallet/xlm)](https://www.npmjs.com/package/@coolwallet/xlm) Typescript library with support for the integration of Stella for third party application, include the functionalities of generation of addresses and signed transactions. ## Install ```shell npm i @coolwallet/xlm ``` ## Usage ```javascript import XLM from '@coolwallet/xlm' import { TransactionBuilder } from 'stellar-sdk'; const xlm = new XLM(COIN_SPECIES); //COIN_SPECIES.XLM, COIN_SPECIES.KAU COIN_SPECIES.KAG const address = await xlm.getAddress(transport, appPrivateKey, appId) // GBKC7MNVXPYN75B6XB5BRBPXYXBDLKVEGJERPNQJPFOAGS2OFQICZBGG const addressBip44 = await xlm.getAddress(transport, appPrivateKey, appId, 'BIP44'); // GBE6DJHSIR6RLPCTJLIYBCA7VUOFNJ5YW6MSAOJL3QQ4E2BI3OA5EFP4 const param = new TransactionBuilder(fundingAccount, { fee: parseInt(moveDecimal(fee, 7), 10), networkPassphrase: data.networkPassphrase, }) .addOperation(operation) .setTimeout(TimeoutInfinite) .addMemo(memo); const tx = param.build(); const txData = { from: publicKey, to: publicKey, amount: value * 10000000, fee: tx.fee, sequence: tx.sequence, minTime: tx.timeBounds.minTime, maxTime: tx.timeBounds.maxTime, memoType: memoType, memo: "", isCreate: true } const signTxData = { transport, appPrivateKey, appId, transaction, protocol } const signatureTx = await xlm.signTransaction(signTxData) ``` In construct, you can choose the chain you want to implement. ## Methods ### getAddress #### Description CoolWallet currently support 2 derivation path, the default one is **SLIP0010**. ```none m/44'/94'/0' ``` We call the fourth parameter **protocol**, which can only be either `'BIP44'` or `'SLIP0010'`. You will need to specify the protocol parameter when you're signing a transaction. ```javascript async getAddress( transport: Transport, appPrivateKey: string, appId: string ): 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 | | protocol | Define the protocol you're signing | PROTOCOL | FALSE | ### signTransaction #### Description We expect you to build transactions with the [official stellar sdk](https://github.com/stellar/js-stellar-sdk). You can easily use the `.signatureBase()` method to get the buffer that CoolWallet needs for signing. ```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 | | transaction | Essential information/property for XLM Transaction | Object | TRUE | | protocol | Define the protocol you're signing | PROTOCOL | FALSE | | confirmCB | Callback of confirmation data to the connected application | Function | FALSE | | authorizedCB | Callback of authorized transaction data to the connected application | Function | FALSE |