UNPKG

@helium/http

Version:

HTTP library for interacting with the Helium blockchain API

66 lines 2.83 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SumsType = void 0; const Sum_1 = __importDefault(require("../models/Sum")); const ResourceList_1 = __importDefault(require("../ResourceList")); const Hotspot_1 = __importDefault(require("../models/Hotspot")); const Account_1 = __importDefault(require("../models/Account")); const Validator_1 = __importDefault(require("../models/Validator")); var SumsType; (function (SumsType) { SumsType["rewards"] = "rewards"; SumsType["challenges"] = "challenges"; SumsType["witnesses"] = "witnesses"; })(SumsType || (exports.SumsType = SumsType = {})); class Sums { constructor(client, type, context) { this.client = client; this.context = context; this.type = type; } async list(params) { var _a, _b; if (!params.bucket) { throw new Error('missing bucket param'); } const { data: { data: rewards, cursor }, } = await this.client.get(this.baseUrl, { cursor: params.cursor, min_time: params.minTime instanceof Date ? (_a = params.minTime) === null || _a === void 0 ? void 0 : _a.toISOString() : params.minTime, max_time: params.maxTime instanceof Date ? (_b = params.maxTime) === null || _b === void 0 ? void 0 : _b.toISOString() : params.maxTime, bucket: params.bucket, }); const data = rewards.map((d) => new Sum_1.default(this.client, d)); return new ResourceList_1.default(data, this.list.bind(this), cursor); } async get(minTime, maxTime) { const { data: { data } } = await this.client.get(this.baseUrl, { min_time: minTime instanceof Date ? minTime === null || minTime === void 0 ? void 0 : minTime.toISOString() : minTime, max_time: maxTime === null || maxTime === void 0 ? void 0 : maxTime.toISOString(), }); return new Sum_1.default(this.client, data); } get baseUrl() { let url = ''; if (this.context === undefined) { url = `/${this.type}/sum`; } else if (this.context instanceof Hotspot_1.default) { url = `/hotspots/${this.context.address}/${this.type}/sum`; } else if (this.context instanceof Account_1.default) { url = `/accounts/${this.context.address}/${this.type}/sum`; } else if (this.context instanceof Validator_1.default) { url = `/validators/${this.context.address}/${this.type}/sum`; } else { throw new Error('invalid context'); } return url; } } exports.default = Sums; //# sourceMappingURL=Sums.js.map