@mutopad/connex-framework
Version:
A library implements VeChain Connex interface
111 lines • 10.3 kB
JavaScript
;
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=