1.1.3 • Published 2 years ago

@coolwallet/icx v1.1.3

Weekly downloads
18
License
ISC
Repository
github
Last release
2 years ago

CoolWallet Icon (ICX) SDK

Version

Typescript library with support for the integration of ICON for third party application, include the functionalities of generation of addresses and signed transactions.

Install

npm install @coolwallet/icx

Usage

import ICX from '@coolwallet/icx'
import IconService from "icon-sdk-js";
const ICON = new ICX()

const address = await ICON.getAddress(transport, appPrivateKey, appId, 0);

const timestamp = "0x" + (new Date().getTime() * 1000).toString(16);

const { IconBuilder, IconAmount, IconConverter } = IconService;

const param = new IconBuilder.IcxTransactionBuilder()
    .from('hx76f46307b53686f2dd4a2c8ca2f22492e842c4bf')
    .to('hxe86b015c06145965931aff551d4958256a86226e')
    .value(IconAmount.of('0.023', IconAmount.Unit.ICX).toLoop())
    .stepLimit(IconConverter.toBigNumber(100000))
    .nid(IconConverter.toBigNumber(1))
    .version(IconConverter.toBigNumber(3))
    .timestamp(timestamp)
    .build();


const rawTx = IconConverter.toRawTransaction(param);
const transaction = JSON.stringify(rawTx);
const signTxData = {
    transport,
    appPrivateKey,
    appId,
    transaction,
    addressIndex
}

const signTx = await ICON.signTransaction(signTxData)

Methods

getAddress

Description

Get address by address index.

The ICX address generated is compatible to BIP44 with account and change set to 0, which means calling getAddress(i) will get the address of folllowing BIP44 path:

m/44'/74'/0'/0/{i}

In the design of current hardware, we only support path m/44'/74'/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.

async getAddress(
    transport: Transport, 
    appPrivateKey: string, 
    appId: string, 
    addressIndex: number
    ): Promise<string> 

Arguments

ArgDescriptionTypeRequired
transportObject to communicate with CoolWallet deviceTransportTRUE
appPrivateKeyPrivate key for the connected applicationstringTRUE
appIdID for the connected applicationstringTRUE
addressIndexThe from address index in BIP44 derivationnumberTRUE

signTransaction

Description

Sign ICON Transaction. We suggest you to use Icon Official SDK to build an unsigned transaction.

async signTransaction(signTxData: signTxType):Promise<string>

signTxType Arguments

ArgDescriptionTypeRequired
transportObject to communicate with CoolWallet deviceTransportTRUE
appPrivateKeyPrivate key for the connected applicationstringTRUE
appIdID for the connected applicationstringTRUE
transactionEssential information/property for ICON TransactionObjectTRUE
addressIndexThe from address index in BIP44 derivationnumberTRUE
confirmCBCallback of confirmation data to the connected applicationFunctionFALSE
authorizedCBCallback of authorized transaction data to the connected applicationFunctionFALSE

The signed transaction will be in form of Object, which you can use the official sdk to broadcast.

1.1.3

2 years ago

1.1.1

2 years ago

1.0.1

3 years ago

1.0.1-beta.0

3 years ago

1.0.0

3 years ago

0.1.0

3 years ago

0.1.0-beta.12

3 years ago

0.1.0-beta.11

3 years ago

0.1.0-beta.10

3 years ago

0.1.0-beta.9

3 years ago

0.1.0-beta.8

3 years ago

0.1.0-beta.7

4 years ago

0.1.0-beta.6

4 years ago

0.1.0-beta.5

4 years ago

0.1.0-beta.4

4 years ago

0.1.0-beta.3

4 years ago

0.1.0-beta.2

4 years ago

0.1.0-beta.1

4 years ago

0.1.0-beta.0

4 years ago