UNPKG

@meterio/flex-framework

Version:

A library implements Meter Flex interface

93 lines 8.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.newFilter = void 0; const R = require("./rules"); const V = require("validator-ts"); const MAX_LIMIT = 256; function newFilter(ctx, kind) { const filterBody = { range: { unit: 'block', from: 0, to: Math.pow(2, 32) - 1 }, options: { offset: 0, limit: 10 }, criteriaSet: [], order: 'asc' }; return { criteria(set) { if (kind === 'event') { R.test(set, [eventCriteriaScheme], 'arg0'); filterBody.criteriaSet = set .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(set, [transferCriteriaScheme], 'arg0'); filterBody.criteriaSet = set .map(c => { return { txOrigin: c.txOrigin ? c.txOrigin.toLowerCase() : undefined, sender: c.sender ? c.sender.toLowerCase() : undefined, recipient: c.recipient ? c.recipient.toLowerCase() : undefined }; }); } return this; }, range(range) { R.test(range, { unit: v => (v === 'block' || v === 'time') ? '' : `expected 'block' or 'time'`, from: R.uint64, to: R.uint64 }, 'arg0'); R.ensure(range.from <= range.to, 'arg0.from: expected <= arg0.to'); filterBody.range = Object.assign({}, range); return this; }, order(order) { R.ensure(order === 'asc' || order === 'desc', `arg0: expected 'asc' or 'desc'`); filterBody.order = order; return this; }, apply(offset, limit) { R.test(offset, R.uint64, 'arg0'); R.ensure(limit >= 0 && limit <= MAX_LIMIT && Number.isInteger(limit), `arg1: expected unsigned integer <= ${MAX_LIMIT}`); filterBody.options.offset = offset; filterBody.options.limit = limit; if (kind === 'transfer') { return ctx.driver.filterTransferLogs(filterBody); } else { return ctx.driver.filterEventLogs(filterBody); } } }; } exports.newFilter = newFilter; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZyYW1ld29yay9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTRCO0FBQzVCLGtDQUFpQztBQUVqQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUE7QUFFckIsU0FBZ0IsU0FBUyxDQUNyQixHQUFZLEVBQ1osSUFBTztJQUdQLE1BQU0sVUFBVSxHQUFHO1FBQ2YsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsQ0FBQztZQUNQLEVBQUUsRUFBRSxTQUFBLENBQUMsRUFBSSxFQUFFLENBQUEsR0FBRyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsRUFBRTtTQUNaO1FBQ0QsV0FBVyxFQUFFLEVBQXFFO1FBQ2xGLEtBQUssRUFBRSxLQUFLO0tBQ2YsQ0FBQTtJQUVELE9BQU87UUFDSCxRQUFRLENBQUMsR0FBRztZQUNSLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFrQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDekUsVUFBVSxDQUFDLFdBQVcsR0FBSSxHQUFtQztxQkFDeEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNMLE9BQU87d0JBQ0gsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7d0JBQ3hELE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUNyRCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFD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