simonzgconnexframework
Version:
A library implements VeChain Connex interface
51 lines • 4.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const account_visitor_1 = require("./account-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 newThor(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)
};
}
exports.newThor = newThor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcmFtZXdvcmsvdGhvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUFxRDtBQUNyRCxtREFBaUQ7QUFDakQsNkNBQTJDO0FBQzNDLHFDQUFvQztBQUNwQyxpREFBK0M7QUFDL0MsMkNBQTBDO0FBQzFDLDZCQUE0QjtBQUU1QixTQUFnQixPQUFPLENBQUMsTUFBcUI7SUFDekMsTUFBTSxXQUFXLEdBQUcsNkJBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUUxQyxNQUFNLEdBQUcsR0FBWTtRQUNqQixNQUFNO1FBQ04sSUFBSSxXQUFXLEtBQUssT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQztLQUNoRCxDQUFBO0lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQzFELE9BQU87UUFDSCxJQUFJLE9BQU8sS0FBSyxPQUFPLE9BQU8sQ0FBQSxDQUFDLENBQUM7UUFDaEMsSUFBSSxNQUFNO1lBQ04sT0FBTztnQkFDSCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTthQUNqQyxDQUFBO1FBQ0wsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1FBQ2xDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNaLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3BELE9BQU8sbUNBQWlCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFDRCxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDZCxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRTtnQkFDakMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFBO2FBQ2hDO2lCQUFNO2dCQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQ3ZGLG1EQUFtRCxDQUFDLENBQUE7YUFDM0Q7WUFDRCxPQUFPLCtCQUFlLENBQUMsR0FBRyxFQUFFLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNqRyxDQUFDO1FBQ0QsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ2QsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDaEQsT0FBTyx5QkFBWSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNoQyxDQUFDO1FBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLElBQUksS0FBSyxVQUFVLEVBQzVDLHNDQUFzQyxDQUFDLENBQUE7WUFDM0MsT0FBTyxrQkFBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUFZLENBQUMsR0FBRyxDQUFDO0tBQ25DLENBQUE7QUFDTCxDQUFDO0FBMUNELDBCQTBDQyJ9