@kompose-app/hw-app-klaytn

Ledger Hardware Wallet Klaytn Application API

Usage no npm install needed!

<script type="module">
  import komposeAppHwAppKlaytn from 'https://cdn.skypack.dev/@kompose-app/hw-app-klaytn';
</script>

README

@kompose-app/hw-app-klaytn

Ledger Hardware Wallet Klaytn JavaScript bindings.

API

Table of Contents

Klaytn

Klaytn API

Parameters

  • transport Transport<any>
  • scrambleKey string (optional, default "klaytn")

Examples

import Klaytn from "@kompose-app/hw-app-klaytn";
const klay = new Klaytn(transport)

getAddress

get Klaytn legacy account address for a given BIP 32 path.

Parameters
Examples
klay.getAddress("44'/8217'/0'/0/0").then(o => o.address)

Returns Promise<{publicKey: string, address: string, chainCode: string?}> an object with a publicKey, address and (optionally) chainCode

provideKctTokenInformation

This commands provides a trusted description of an KCT token to associate a contract address with a ticker and number of decimals.

It shall be run immediately before performing a transaction involving a contract calling this contract address to display the proper token information to the user if necessary.

Parameters
  • info any : a blob from "kct.js" utilities that contains all token information.
    • info.data
Examples
import { byContractAddress } from "@kompose-app/hw-app-klaytn/kct"
const kusdInfo = byContractAddress("0x5faad3204b3ca681a6a312e15ff52a4cc76ade06")
if (kusdInfo) await klay.provideKctTokenInformation(kusdInfo)
const signed = await klay.signTransaction(path, rawTxHex)

Returns Promise<boolean>

signTransaction

You can sign a transaction and retrieve v, r, s given the raw transaction and the BIP 32 path of the account to sign

Parameters
Examples
klay.signTransaction("44'/8217'/0'/0/0", "e8018504e3b292008252089428ee52a8f3d6e5d15f8b131996950d7f296c7952872bd72a2487400080").then(result => ...)

Returns Promise<{v: number, r: string, s: string}>

getAppConfiguration

Returns Promise<{arbitraryDataEnabled: number, kctProvisioningNecessary: number, version: string}>

signPersonalMessage

You can sign a message according to klay_sign RPC call and retrieve v, r, s given the message and the BIP 32 path of the account to sign.

Parameters
Examples
klay.signPersonalMessage("44'/8217'/0'/0/0", Buffer.from("test").toString("hex")).then(result => {
var v = result['v'] - 27;
v = v.toString(16);
if (v.length < 2) {
v = "0" + v;
}
console.log("Signature 0x" + result['r'] + result['s'] + v);
})

Returns Promise<{v: number, s: string, r: string}>

KCT

Klaytn KCT Tokens

Examples

import KCT from "@kompose-app/hw-app-klaytn/kct";
const kctList = new KCT().list();

byContractAddress

Retrieve the token information by a given contract address if any

Parameters

Returns TokenInfo?

list

List all the KCT tokens informations

Returns Array<TokenInfo>