@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
Markdown
# ledger-polkadot (JS Integration)

[](https://opensource.org/licenses/Apache-2.0)
[](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)