@helium/http
Version:
HTTP library for interacting with the Helium blockchain API
66 lines • 2.83 kB
JavaScript
;
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