UNPKG

@meterio/flex-framework

Version:

A library implements Meter Flex interface

85 lines 6.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.newMeter = void 0; const account_visitor_1 = require("./account-visitor"); const bucket_visitor_1 = require("./bucket-visitor"); const candidate_visitor_1 = require("./candidate-visitor"); const auction_visitor_1 = require("./auction-visitor"); const block_visitor_1 = require("./block-visitor"); const tx_visitor_1 = require("./tx-visitor"); const filter_1 = require("./filter"); const head_tracker_1 = require("./head-tracker"); const explainer_1 = require("./explainer"); const R = require("./rules"); function newMeter(driver) { const headTracker = head_tracker_1.newHeadTracker(driver); const ctx = { driver, get trackedHead() { return headTracker.head; }, }; const genesis = JSON.parse(JSON.stringify(driver.genesis)); return { get genesis() { return genesis; }, get status() { return { head: headTracker.head, progress: headTracker.progress, }; }, ticker: () => headTracker.ticker(), account: (addr) => { addr = R.test(addr, R.address, 'arg0').toLowerCase(); return account_visitor_1.newAccountVisitor(ctx, addr); }, block: (revision) => { if (typeof revision === 'undefined') { revision = ctx.trackedHead.id; } else { R.ensure(typeof revision === 'string' ? R.isHexBytes(revision, 32) : R.isUInt(revision, 32), 'arg0: expected bytes32 or unsigned 32-bit integer'); } return block_visitor_1.newBlockVisitor(ctx, typeof revision === 'string' ? revision.toLowerCase() : revision); }, transaction: (id) => { id = R.test(id, R.bytes32, 'arg0').toLowerCase(); return tx_visitor_1.newTxVisitor(ctx, id); }, filter: (kind) => { R.ensure(kind === 'event' || kind === 'transfer', `arg0: expected 'event' or 'transfer'`); return filter_1.newFilter(ctx, kind); }, explain: () => explainer_1.newExplainer(ctx), candidates: () => { return ctx.driver.getCandidates(); }, buckets: () => { return ctx.driver.getBuckets(); }, stakeholders: () => { return ctx.driver.getStakeholders(); }, jaileds: () => { return ctx.driver.getJaileds(); }, bucket: (id) => { return bucket_visitor_1.newBucketVisitor(ctx, id); }, candidate: (addr) => { return candidate_visitor_1.newCandidateVisitor(ctx, addr); }, auction: () => { return auction_visitor_1.newAuctionVisitor(ctx).get(); }, auctionSummaries: () => { return auction_visitor_1.newAuctionVisitor(ctx).getSummaries(); }, }; } exports.newMeter = newMeter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnJhbWV3b3JrL21ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUFzRDtBQUN0RCxxREFBb0Q7QUFDcEQsMkRBQTBEO0FBQzFELHVEQUFzRDtBQUN0RCxtREFBa0Q7QUFDbEQsNkNBQTRDO0FBQzVDLHFDQUFxQztBQUNyQyxpREFBZ0Q7QUFDaEQsMkNBQTJDO0FBQzNDLDZCQUE2QjtBQUU3QixTQUFnQixRQUFRLENBQUMsTUFBbUI7SUFDMUMsTUFBTSxXQUFXLEdBQUcsNkJBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUzQyxNQUFNLEdBQUcsR0FBWTtRQUNuQixNQUFNO1FBQ04sSUFBSSxXQUFXO1lBQ2IsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUM7S0FDRixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNELE9BQU87UUFDTCxJQUFJLE9BQU87WUFDVCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsSUFBSSxNQUFNO1lBQ1IsT0FBTztnQkFDTCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTthQUMvQixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1FBQ2xDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELE9BQU8sbUNBQWlCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxD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