UNPKG

@ellcrys/spell

Version:

The official JavaScript library for Ellcrys

87 lines (82 loc) 1.57 kB
/** * @module RPC */ import { RpcMethod } from "../../.."; import RPCClient from "../rpcclient"; import Namespace from "./namespace"; /** * RPC is responsible for calling * JSON-RPC 2.0 methods supported by * a remote node. * * @export * @class RPC * @extends {Namespace} */ export default class RPC extends Namespace { /** * Creates an instance of RPC. * @param {RPCClient} client * @memberof RPC */ constructor(client: RPCClient) { super(); this.client = client; } /** * Stop the JSON-RPC 2.0 service * * @export * @class RPC */ public stop(): Promise<boolean> { return new Promise((resolve, reject) => { this.client .call("rpc_stop", null) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } /** * Test JSON-RPC 2.0 service by sending * messages that are echoed back. * * @export * @class RPC */ public echo(params?: any | null): Promise<any> { return new Promise((resolve, reject) => { this.client .call("rpc_echo", params) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } /** * Get all JSON-RPC 2.0 methods * supported by the service * * @returns {Promise<RpcMethod[]>} * @memberof RPC */ public methods(): Promise<RpcMethod[]> { return new Promise((resolve, reject) => { this.client .call("rpc_methods", null) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } }