@coolwallet/xlm
TypeScript icon, indicating that this package has built-in type declarations

1.1.3 • Public • Published

CoolWallet Stellar (XLM) SDK

Version

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

Package Sidebar

Install

npm i @coolwallet/xlm

Weekly Downloads

1

Version

1.1.3

License

ISC

Unpacked Size

75.2 kB

Total Files

25

Last publish

Collaborators

  • coolwallet-team