simonflex-framework
Version:
A library implements Meter Flex interface
74 lines • 5.8 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const account_visitor_1 = require("./account-visitor");
const staking_visitor_1 = require("./staking-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 staking_visitor_1.newStakingVisitor(ctx).getCandidates();
},
buckets: () => {
return staking_visitor_1.newStakingVisitor(ctx).getBuckets();
},
stakeholders: () => {
return staking_visitor_1.newStakingVisitor(ctx).getStakeholders();
},
auction: () => {
return auction_visitor_1.newAuctionVisitor(ctx).get();
},
auctionSummaries: () => {
return auction_visitor_1.newAuctionVisitor(ctx).getSummaries();
},
};
}
exports.newMeter = newMeter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnJhbWV3b3JrL21ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQXNEO0FBQ3RELHVEQUFzRDtBQUN0RCx1REFBc0Q7QUFDdEQsbURBQWtEO0FBQ2xELDZDQUE0QztBQUM1QyxxQ0FBcUM7QUFDckMsaURBQWdEO0FBQ2hELDJDQUEyQztBQUMzQyw2QkFBNkI7QUFFN0IsU0FBZ0IsUUFBUSxDQUFDLE1BQW1CO0lBQzFDLE1BQU0sV0FBVyxHQUFHLDZCQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0MsTUFBTSxHQUFHLEdBQVk7UUFDbkIsTUFBTTtRQUNOLElBQUksV0FBVztZQUNiLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQztRQUMxQixDQUFDO0tBQ0YsQ0FBQztJQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRCxPQUFPO1FBQ0wsSUFBSSxPQUFPO1lBQ1QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksTUFBTTtZQUNSLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUN0QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7YUFDL0IsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNsQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQixJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRCxPQUFPLG1DQUFpQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7Z0JBQ25DLFFBQVEsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxDQUFDLENBQUMsTUFBTSxDQUNOLE9BQU8sUUFBUSxLQUFLLFFBQVE7b0JBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7b0JBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFDMUIsbURBQW1ELENBQ3BELENBQUM7YUFDSDtZQUNELE9BQU8sK0JBQWUsQ0FDcEIsR0FBRyxFQUNILE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQ2pFLENBQUM7UUFDSixDQUFDO1FBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDbEIsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakQsT0FBTyx5QkFBWSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZixDQUFDLENBQUMsTUFBTSxDQUNOLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxLQUFLLFVBQVUsRUFDdkMsc0NBQXNDLENBQ3ZDLENBQUM7WUFDRixPQUFPLGtCQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsd0JBQVksQ0FBQyxHQUFHLENBQUM7UUFDaEMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNmLE9BQU8sbUNBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDWixPQUFPLG1DQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdDLENBQUM7UUFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO1lBQ2pCLE9BQU8sbUNBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDWixPQUFPLG1DQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7WUFDckIsT0FBTyxtQ0FBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUF0RUQsNEJBc0VDIn0=
;