/** * @module Miner */ import RPCClient from "../rpcclient"; import Namespace from "./namespace"; /** * Miner handles mining operations * on a node. * * @export * @class Miner * @extends {Namespace} */ export default class Miner extends Namespace { /** * Creates an instance of Miner. * @param {RPCClient} client * @memberof Miner */ constructor(client: RPCClient) { super(); this.client = client; } /** * Start the miner on the node * * @returns {Promise} * @memberof Miner */ public start(): Promise { return new Promise((resolve, reject) => { this.client .call("miner_start", null) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } /** * Stop the miner on the node * * @returns {Promise} * @memberof Miner */ public stop(): Promise { return new Promise((resolve, reject) => { this.client .call("miner_stop", null) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } /** * Check whether the miner has is running * * @returns {Promise} * @memberof Miner */ public isMining(): Promise { return new Promise((resolve, reject) => { this.client .call("miner_isMining", null) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } /** * Get the hashrate of the miner * * @returns {Promise} * @memberof Miner */ public getHashrate(): Promise { return new Promise((resolve, reject) => { this.client .call("miner_getHashrate", null) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } /** * Get the number of miner threads * * @returns {Promise} * @memberof Miner */ public numThreads(): Promise { return new Promise((resolve, reject) => { this.client .call("miner_numThreads", null) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } /** * Set the number of miner threads * to run. * * @param {number} num * @returns {Promise} * @memberof Miner */ public setThreads(num: number): Promise { return new Promise((resolve, reject) => { this.client .call("miner_setThreads", num) .then((res) => { return resolve(res); }) .catch((err) => { return reject(err); }); }); } }