Files
bch-js/src/control.js
T

109 lines
2.7 KiB
JavaScript

/*
API endpoints for basic control and information of the full node.
*/
const axios = require("axios")
let _this // Global reference to the instance of this class.
class Control {
constructor(config) {
this.restURL = config.restURL
this.apiToken = config.apiToken
// Add JWT token to the authorization header.
this.axiosOptions = {
headers: {
authorization: `Token ${this.apiToken}`
}
}
_this = this
}
/**
* @api Control.getNetworkInfo() getNetworkInfo() - Get Network info
* @apiName getNetworkInfo
* @apiGroup Control
* @apiDescription Returns an object containing various network info.
*
* @apiExample Example usage:
* (async () => {
* try {
* let getInfo = await bchjs.Control.getNetworkInfo();
* console.log(getInfo);
* } catch(error) {
* console.error(error)
* }
* })()
*
* // returns
* { version: 190500,
* subversion: '/Bitcoin ABC:0.19.5(EB32.0)/',
* protocolversion: 70015,
* localservices: '0000000000000425',
* localrelay: true,
* timeoffset: 0,
* networkactive: true,
* connections: 17,
* networks:
* [ { name: 'ipv4',
* limited: false,
* reachable: true,
* proxy: '',
* proxy_randomize_credentials: false },
* { name: 'ipv6',
* limited: false,
* reachable: true,
* proxy: '',
* proxy_randomize_credentials: false },
* { name: 'onion',
* limited: true,
* reachable: false,
* proxy: '',
* proxy_randomize_credentials: false } ],
* relayfee: 0.00001,
* excessutxocharge: 0,
* warnings:
* 'Warning: Unknown block versions being mined! It\'s possible unknown rules are in effect' }}
*/
async getNetworkInfo() {
try {
const response = await axios.get(
`${this.restURL}control/getNetworkInfo`,
_this.axiosOptions
)
return response.data
} catch (error) {
if (error.response && error.response.data) throw error.response.data
else throw error
}
}
async getMemoryInfo() {
try {
const response = await axios.get(
`${this.restURL}control/getMemoryInfo`,
_this.axiosOptions
)
return response.data
} catch (error) {
if (error.response && error.response.data) throw error.response.data
else throw error
}
}
//
// stop() {
// // Stop Bitcoin Cash server.
// return axios.post(`${this.restURL}control/stop`)
// .then((response) => {
// return response.data;
// })
// .catch((error) => {
// return JSON.stringify(error.response.data.error.message);
// });
// }
}
module.exports = Control