UNPKG

@ellcrys/spell

Version:

The official JavaScript library for Ellcrys

114 lines 7.91 kB
"use strict"; /** * @module Spell */ var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var errors_1 = __importStar(require("./errors")); var auth_1 = __importDefault(require("./namespaces/auth")); var ell_1 = __importDefault(require("./namespaces/ell")); var logger_1 = __importDefault(require("./namespaces/logger")); var miner_1 = __importDefault(require("./namespaces/miner")); var net_1 = __importDefault(require("./namespaces/net")); var node_1 = __importDefault(require("./namespaces/node")); var pool_1 = __importDefault(require("./namespaces/pool")); var rpc_1 = __importDefault(require("./namespaces/rpc")); var state_1 = __importDefault(require("./namespaces/state")); var rpcclient_1 = __importStar(require("./rpcclient")); /** * Spell provides access to a client * RPC functionalities. * * @export * @class Spell */ var Spell = /** @class */ (function () { /** * Creates an instance of Spell. * @memberof Spell */ function Spell() { this.rpcClient = new rpcclient_1.default(); this.state = new state_1.default(this.rpcClient); this.node = new node_1.default(this.rpcClient); this.auth = new auth_1.default(this.rpcClient); this.pool = new pool_1.default(this.rpcClient); this.miner = new miner_1.default(this.rpcClient); this.net = new net_1.default(this.rpcClient); this.logger = new logger_1.default(this.rpcClient); this.ell = new ell_1.default(this.rpcClient); this.rpc = new rpc_1.default(this.rpcClient); } /** * provideClient attempts to connect to an * Ellcrys JSON-RPC server. If it succeeds, * it will use the connection in future RPC * method calls. * * @param {ConnectOptions} options The connection options * @returns {Promise<RPCClient>} An initialized client * @memberof Spell */ // prettier-ignore Spell.prototype.provideClient = function (options) { var _this = this; return new Promise(function (resolve, reject) { var client = rpcclient_1.Client.fromOptions(options); client.call("rpc_echo", { msg: "hi" }, function (err, res) { if (err) { var customErr = errors_1.wrapErr(errors_1.default.ClientConnect, err.message); customErr.data = err.data; customErr.statusCode = err.statusCode; return reject(customErr); } _this.rpcClient.client = client; _this.rpcClient.clientOpts = options; // Attempt to request for a session token from the node // if username and password are provided if (options.username && options.password) { return _this.authenticate(options.username, options.password).then(function () { return resolve(_this.rpcClient); }).catch(reject); } return resolve(_this.rpcClient); }); }); }; /** * Request for a session token from the node. * * @param {string} username The node's RPC username * @param {string} password The node's RPC password * @returns {Promise<string>} A session token * @memberof Spell */ Spell.prototype.authenticate = function (username, password) { var _this = this; return new Promise(function (resolve, reject) { _this.auth .authenticate(username, password) .then(function (token) { _this.rpcClient.setToken(token); return resolve(token); }) .catch(function (err) { var customErr = errors_1.wrapErr(errors_1.default.AuthError, err.message); customErr.data = err.data; customErr.statusCode = err.statusCode; return reject(customErr); }); }); }; return Spell; }()); exports.default = Spell; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGliL3NwZWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7O0FBR0gsaURBQTJDO0FBQzNDLDJEQUFxQztBQUNyQyx5REFBbUM7QUFDbkMsK0RBQXlDO0FBQ3pDLDZEQUF1QztBQUN2Qyx5REFBbUM7QUFDbkMsMkRBQXFDO0FBQ3JDLDJEQUFxQztBQUNyQyx5REFBbUM7QUFDbkMsNkRBQXVDO0FBQ3ZDLHVEQUFnRDtBQUNoRDs7Ozs7O0dBTUc7QUFDSDtJQWdGQzs7O09BR0c7SUFDSDtRQUNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxtQkFBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLGFBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGdCQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxhQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxH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