API client
Table of Contents
The Lisk Elements API Client provides a convenient wrapper for interacting with the public API of nodes on the Lisk network.
Please use the apiClient of the lisk-client package for all code that runs in the browser
|
Installation
This adds Lisk Client as a dependency of your project:
$ npm install @liskhq/lisk-api-client
Upgrade
npm update @liskhq/lisk-api-client
APIClient interface
interface APIClient {
public disconnect() => Promise<void>;
public async invoke<T>(actionName: string, params?: Record<string, unknown>): Promise<T>
public subscribe(eventName: string, cb: EventCallback): void
public transaction: {
get: (id: Buffer) => Promise<Record<string, unknown>>,
getFromPool: () => Promise<Record<string, unknown>[]>,
create: (
input: {
moduleID?: number; // id takes priority
moduleName?: number;
assetID?: number; // id takes priority
assetName?: number;
fee: bigint;
nonce: bigint;
senderPublicKey: Buffer;
asset: Record<string, unknown>;
signatures?: Buffer[];
},
passphrase: string,
options?: {
nonce?: bigint;
includeSenderSignature?: boolean;
multisignatureKeys?: {
mandatoryKeys: Buffer[];
optionalKeys: Buffer[];
};
},
) => Promise<Record<string, unknown>>;
sign: (transaction: Record<string, unknown>, passphrases: string[], options?: {
includeSenderSignature?: boolean;
multisignatureKeys?: {
mandatoryKeys: Buffer[];
optionalKeys: Buffer[];
};
}) => Promise<Record<string, unknown>>;
send: (input: Record<string, unknown>) => Promise<void>;
getMinFee: (tx: Record<string, unknown>) => bigint;
encode: (input: Record<string, unknown>) => Buffer;
decode: (input: Buffer) => Record<string, unknown>;
toJSON(transaction: Record<string, unknown>) => Record<string, unknown>;
fromJSON(transaction: Record<string, unknown>) => Record<string, unknown>;
}
public node: {
getNodeInfo: () => Promise<Record<string, unknown>>;
getNetworkStats: () => Promise<Record<string, unknown>>;
getConnectedPeers: () => Promise<Peer[]>;
getDisconnectedPeers: () => Promise<Peer[]>;
}
public block: {
get: (id: Buffer) => Promise<Record<string, unknown>>;
getByHeight: (height: number) => Promise<Record<string, unknown>>;
encode: (input: Record<string, unknown>) => Buffer;
decode: (input: Buffer) => Record<string, unknown>;
toJSON(
block: BlockType,
) => {
header: Record<string, unknown>;
payload: Record<string, unknown>[];
};
fromJSON(
block: BlockType<string>,
) => {
header: Record<string, unknown>;
payload: Record<string, unknown>[];
};
}
public account: {
get: (address: Buffer) => Promise<Record<string, unknown>>;
encode: (input: Record<string, unknown>) => Buffer;
decode: (input: Buffer) => Record<string, unknown>;
toJSON(account: Record<string, unknown>) => Record<string, unknown>;
fromJSON(account: Record<string, unknown>) => Record<string, unknown>;
}
}