UNPKG

@helium/http

Version:

HTTP library for interacting with the Helium blockchain API

57 lines 2.52 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const Validator_1 = __importDefault(require("../models/Validator")); const ResourceList_1 = __importDefault(require("../ResourceList")); const Account_1 = __importDefault(require("../models/Account")); const Stats_1 = __importDefault(require("./Stats")); class Validators { constructor(client, context) { this.client = client; this.context = context; } fromAddress(address) { return new Validator_1.default(this.client, { address }); } async search(term) { const url = 'validators/name'; const response = await this.client.get(url, { search: term }); const { data: { data: validators }, } = response; const data = validators.map((d) => new Validator_1.default(this.client, d)); return new ResourceList_1.default(data, this.list.bind(this)); } async list(params = {}) { const { validators, cursor } = await this.fetchList(params); const data = validators.map((d) => new Validator_1.default(this.client, d)); return new ResourceList_1.default(data, this.list.bind(this), cursor); } async fetchList(params = {}) { let url = '/validators'; if (this.context instanceof Account_1.default) { const account = this.context; url = `/accounts/${account.address}/validators`; } const response = await this.client.get(url, { cursor: params.cursor }); const { data: { data: validators, cursor }, } = response; return { validators, cursor }; } async get(address) { const url = `/validators/${address}`; const { data: { data: validator }, } = await this.client.get(url); return new Validator_1.default(this.client, validator); } async elected(block) { const url = block === undefined ? '/validators/elected' : `/validators/elected/${block}`; const response = await this.client.get(url); const { data: { data: validators }, } = response; const data = validators.map((h) => new Validator_1.default(this.client, h)); return new ResourceList_1.default(data, this.list.bind(this)); } get stats() { return new Stats_1.default(this.client, 'validators'); } } exports.default = Validators; //# sourceMappingURL=Validators.js.map