UNPKG

simonflex-framework

Version:

A library implements Meter Flex interface

92 lines 8.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZyYW1ld29yay9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNEI7QUFDNUIsa0NBQWlDO0FBRWpDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQTtBQUVyQixTQUFnQixTQUFTLENBQ3JCLEdBQVksRUFDWixJQUFPO0lBR1AsTUFBTSxVQUFVLEdBQUc7UUFDZixLQUFLLEVBQUU7WUFDSCxJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxDQUFDO1lBQ1AsRUFBRSxFQUFFLFNBQUEsQ0FBQyxFQUFJLEVBQUUsQ0FBQSxHQUFHLENBQUM7U0FDbEI7UUFDRCxPQUFPLEVBQUU7WUFDTCxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxFQUFFO1NBQ1o7UUFDRCxXQUFXLEVBQUUsRUFBcUU7UUFDbEYsS0FBSyxFQUFFLEtBQUs7S0FDZixDQUFBO0lBRUQsT0FBTztRQUNILFFBQVEsQ0FBQyxHQUFHO1lBQ1IsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQWtDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFBO2dCQUN6RSxVQUFVLENBQUMsV0FBVyxHQUFJLEdBQW1DO3FCQUN4RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ0wsT0FBTzt3QkFDSCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUzt3QkFDeEQsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7d0JBQ3JELE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMs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