UNPKG

@mutopad/connex-framework

Version:
111 lines 10.3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.newThor = void 0; 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"); const V = require("validator-ts"); function newThor(driver) { const headTracker = (0, head_tracker_1.newHeadTracker)(driver); const readyDriver = (() => __awaiter(this, void 0, void 0, function* () { if (headTracker.head.number > 0) { return driver; } yield headTracker.ticker().next(); return driver; }))(); const genesis = JSON.parse(JSON.stringify(driver.genesis)); return { get genesis() { return genesis; }, get status() { return { head: headTracker.head, progress: headTracker.progress, finalized: headTracker.finalized }; }, ticker: () => headTracker.ticker(), account: addr => { addr = R.test(addr, R.address, 'arg0').toLowerCase(); return (0, account_visitor_1.newAccountVisitor)(readyDriver, addr); }, block: revision => { if (typeof revision === 'undefined') { revision = driver.head.id; } else { R.ensure(typeof revision === 'string' ? R.isHexBytes(revision, 32) : R.isUInt(revision, 32), 'arg0: expected bytes32 or unsigned 32-bit integer'); } return (0, block_visitor_1.newBlockVisitor)(driver, typeof revision === 'string' ? revision.toLowerCase() : revision); }, transaction: id => { id = R.test(id, R.bytes32, 'arg0').toLowerCase(); return (0, tx_visitor_1.newTxVisitor)(readyDriver, id); }, filter: (kind, criteria) => { R.ensure(kind === 'event' || kind === 'transfer', `arg0: expected 'event' or 'transfer'`); if (kind === 'event') { R.test(criteria, [eventCriteriaScheme], 'arg1'); return (0, filter_1.newFilter)(readyDriver, 'event', criteria .map(c => { return { address: c.address ? c.address.toLowerCase() : undefined, topic0: c.topic0 ? c.topic0.toLowerCase() : undefined, topic1: c.topic1 ? c.topic1.toLowerCase() : undefined, topic2: c.topic2 ? c.topic2.toLowerCase() : undefined, topic3: c.topic3 ? c.topic3.toLowerCase() : undefined, topic4: c.topic4 ? c.topic4.toLowerCase() : undefined }; })); } else { R.test(criteria, [transferCriteriaScheme], 'arg1'); return (0, filter_1.newFilter)(readyDriver, 'transfer', criteria .map(c => { return { txOrigin: c.txOrigin ? c.txOrigin.toLowerCase() : undefined, sender: c.sender ? c.sender.toLowerCase() : undefined, recipient: c.recipient ? c.recipient.toLowerCase() : undefined }; })); } }, explain: (clauses) => { R.test(clauses, [clauseScheme], 'arg0'); return (0, explainer_1.newExplainer)(readyDriver, clauses); } }; } exports.newThor = newThor; const clauseScheme = { to: V.nullable(R.address), value: R.bigInt, data: V.optional(R.bytes) }; const eventCriteriaScheme = { address: V.optional(R.address), topic0: V.optional(R.bytes32), topic1: V.optional(R.bytes32), topic2: V.optional(R.bytes32), topic3: V.optional(R.bytes32), topic4: V.optional(R.bytes32) }; const transferCriteriaScheme = { sender: V.optional(R.address), recipient: V.optional(R.address), txOrigin: V.optional(R.address) }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90aG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFxRDtBQUNyRCxtREFBaUQ7QUFDakQsNkNBQTJDO0FBQzNDLHFDQUFvQztBQUNwQyxpREFBK0M7QUFDL0MsMkNBQTBDO0FBQzFDLDZCQUE0QjtBQUM1QixrQ0FBaUM7QUFFakMsU0FBZ0IsT0FBTyxDQUFDLE1BQXFCO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLElBQUEsNkJBQWMsRUFBQyxNQUFNLENBQUMsQ0FBQTtJQUUxQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVMsRUFBRTtRQUM1QixJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLE1BQU0sQ0FBQTtTQUNoQjtRQUNELE1BQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2pDLE9BQU8sTUFBTSxDQUFBO0lBQ2pCLENBQUMsQ0FBQSxDQUFDLEVBQUUsQ0FBQTtJQUVKLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQXNCLENBQUE7SUFDL0UsT0FBTztRQUNILElBQUksT0FBTyxLQUFLLE9BQU8sT0FBTyxDQUFBLENBQUMsQ0FBQztRQUNoQyxJQUFJLE1BQU07WUFDTixPQUFPO2dCQUNILElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDdEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO2dCQUM5QixTQUFTLEVBQUUsV0FBVyxDQUFDLFNBQVM7YUFDbkMsQ0FBQTtRQUNMLENBQUM7UUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNsQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWixJQUFJLEdBQUcsQ0FBQyxD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SUFDOUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3QixNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzdCLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDN0IsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3QixNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0NBQ2hDLENBQUE7QUFDRCxNQUFNLHNCQUFzQixHQUFzRDtJQUM5RSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQzdCLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDaEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztDQUNsQyxDQUFBIn0=