CoolWallet Stellar (XLM) SDK
Typescript library with support for the integration of Stella for third party application, include the functionalities of generation of addresses and signed transactions.
Install
npm i @coolwallet/xlm
Usage
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.
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.
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. You can easily use the .signatureBase()
method to get the buffer that CoolWallet needs for signing.
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 |