@wavesenterprise/west-ledger
v0.3.5
Published
Ledger hardware wallet support for Waves Enterprise blockchain
Downloads
5
Keywords
Readme
West-ledger v0.3.1
Ledger hardware wallet support for Waves Enterprise blockchain
Install
$ npm install --save @wavesenterprise/west-ledger
Usage
Initiate connection
const { WestHID } = require('@wavesenterprise/west-ledger');
const { default: TransportNodeHid } = require('@ledgerhq/hw-transport-node-hid');
const ledger = new WestHID(TransportNodeHid, chainId, options);
Where:
debug
enable or not logs of the binary exchange.
openTimeout
is a delay number in ms for waiting connection.listenTimeout
is a delay number in ms for waiting listen request to U2F device.exchangeTimeout
is a timeout (in milliseconds) for the exchange call. Only some transport might implement it. (e.g. U2F).chainId
is Waves Enterprise network code (86 - for mainet)transport
is HID Transport implementation. (hw-transport-webhid by default)
- @ledgerhq/hw-transport-webhid
- @ledgerhq/hw-transport-webusb
- @ledgerhq/hw-transport-node-hid
- @ledgerhq/hw-transport-node-speculos
Connect to ledger
await ledger.connect()
Call some methods
const appName = await ledger.api.getAppName()
West Ledger API
getVersion
Get app version
getAppName
Get app name
getAddressDataById
getAddressDataById(id): Promise<IAddressData & IPathInfo>. Get address info from ledger, where info is:
id - is number from 0
path - is string in internal ledger format
address - is string in base58 format
publicKey - is string in base58 format
ledger.getAddressDataById(id) .then( (user) => {...}, (err) => {...} );
signTransaction
Sign transfer transaction bytes (ledger shows detailed transaction info)
const signature = await ledger.api.signTransferTx(userId, { type: 4, version: 2, data: Buffer.from(bytes) }, bs58encode);
userId -
number
type -number
version -number
data -Buffer
with bytes to sign bs58encode -bool
, encode result to base58 or keep as bytesReturns Promise with signature string in base58 format or bytes
sign bytes with configurable display
Sign transaction bytes (ledger shows configured fields on display)
const signature = await ledger.api.sign( userId, data, display, bs58encode );
userId -
number
data -Buffer
with bytes to sign display -Object { [key: string]: string }
with key-value pairs to display bs58encode -bool
, encode result to base58 or keep as bytesReturns Promise with signature string in base58 format or bytes