UNPKG

@zondax/ledger-polkadot

Version:

TS / Node API for Polkadot apps running on Ledger Nano S/S+/X and Stax

60 lines (45 loc) 2.65 kB
# ledger-polkadot (JS Integration) ![zondax_light](docs/zondax_light.png) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![npm version](https://badge.fury.io/js/%40zondax%2Fledger-polkadot.svg)](https://badge.fury.io/js/%40zondax%2Fledger-polkadot) This package provides a basic client library to communicate with Polkadot App running in a Ledger Nano S/S+/X or Stax device. # Available commands This package exports a `PolkadotApp` class that receives any [Ledger Transport](https://github.com/LedgerHQ/ledger-live/tree/develop/libs/ledgerjs/packages/hw-transport) and has the following functions, that execute commands in the device. All of them are typed. They return the following basic structure + any other stuff relevant in that specific command. ```typescript interface ResponseBase { errorMessage: string; returnCode: number; } ``` Errors can be checked using the `returnCode` field. You should check if it's equal to `ERROR_CODE.NoError`. ```typescript import { ERROR_CODE } from "@zondax/ledger-polkadot"; // we got the result from any method of the class if (result.returnCode !== ERROR_CODE.NoError) { // handle with care } ``` The following commands are available: - `appInfo`: Get information from the device and application. This method is standard in all Ledger Apps. - `getVersion`: Get app version and targetId. - `getAddress`: Get address and pubkey. It takes the following arguments: - `path: string`: BIP44 path with length 5. Example: `"m/44'/354'/0'/1/0`. - Note: it needs to start with `"m/44'/354'`, otherwise it'll be rejected. - `ss58prefix: number`: [ss58 prefix](https://github.com/paritytech/ss58-registry) to encode the address with - `sign`: Sign a transaction. It takes the following arguments: - `path: string`: BIP44 path with length 5. Example: `"m/44'/354'/0'/1/0`. - Note: it needs to start with `"m/44'/354'`, otherwise it'll be rejected. - `blob: Buffer`: SCALE-encoded transaction. - `metadata: Buffer`: SCALE-encoded `ShortMetadata` according to [spec](https://github.com/Alzymologist/metadata-shortener). - `signRaw`: Sign arbitrary bytes (not a transaction). It gets the following arguments: - `path: string`: BIP44 path with length 5. Example: `"m/44'/354'/0'/1/0`. - Note: it needs to start with `"m/44'/354'`, otherwise it'll be rejected. - `blob: Buffer`: Bytes to sign, prefixed by `<Bytes>` and suffixed by `</Bytes>`. # Who we are? We are Zondax, a company pioneering blockchain services. If you want to know more about us, please visit us at [zondax.ch](https://zondax.ch)