UNPKG

koinos-rpc

Version:

Typescript library to communicate with Koinos API via RPC

62 lines 4.73 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Client = void 0; const axios_1 = __importDefault(require("axios")); const verror_1 = __importDefault(require("verror")); const Chain_1 = require("./service/Chain"); const BlockStore_1 = require("./service/BlockStore"); const TransactionStore_1 = require("./service/TransactionStore"); const ContractMetaStore_1 = require("./service/ContractMetaStore"); const AccountHistory_1 = require("./service/AccountHistory"); class Client { constructor(address, options = {}) { this.addresses = Array.isArray(address) ? address : [address]; this.currentAddress = this.addresses[0]; this.options = options; this.chain = new Chain_1.Chain(this); this.blockStore = new BlockStore_1.BlockStore(this); this.transactionStore = new TransactionStore_1.TransactionStore(this); this.contractMetaStore = new ContractMetaStore_1.ContractMetaStore(this); this.accountHistory = new AccountHistory_1.AccountHistory(this); } call(service, method, params = {}) { return __awaiter(this, void 0, void 0, function* () { const { data } = yield axios_1.default.post(this.currentAddress, { id: 1, jsonrpc: '2.0', method: `${service}.${method}`, params }); if (data.result) { return data.result; } if (data.error) { throw this.formatError(data.error); } throw new Error('Unexpected error'); }); } formatError(error) { if (error instanceof verror_1.default) { return error; } return new verror_1.default({ name: 'RPCError', info: error }, error === null || error === void 0 ? void 0 : error.message); } } exports.Client = Client; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50LmpzIiwic291cmNlUm9vdCI6Ii4vc3JjLyIsInNvdXJjZXMiOlsiQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQixvREFBNEI7QUFDNUIsMkNBQXdDO0FBQ3hDLHFEQUFrRDtBQUNsRCxpRUFBOEQ7QUFDOUQsbUVBQWdFO0FBRWhFLDZEQUEwRDtBQU8xRCxNQUFhLE1BQU07SUFZaEIsWUFBWSxPQUEwQixFQUFFLFVBQXlCLEVBQUU7UUFDaEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxhQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHVCQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksbUNBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLCtCQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVLLElBQUksQ0FBaUYsT0FBZ0IsRUFBRSxNQUFjLEVBQUUsU0FBYyxFQUFFOztZQUMxSSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxlQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3BELEVBQUUsRUFBRSxDQUFDO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxHQUFHLE9BQU8sSUFBSSxNQUFNLEVBQUU7Z0JBQzlCLE1BQU07YUFDUixDQUFDLENBQUM7WUFFSCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNiLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckM7WUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkMsQ0FBQztLQUFBO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxLQUFLLFlBQVksZ0JBQU0sRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFJLGdCQUFNLENBQ2Q7WUFDRyxJQUFJLEVBQUUsVUFBVTtZQUNoQixJQUFJLEVBQUUsS0FBSztTQUNiLEVBQ0QsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQWlCLENBQzFCLENBQUM7SUFDTCxDQUFDO0NBQ0g7QUF2REQsd0JBdURDIn0=