@meterio/flex-framework
Version:
A library implements Meter Flex interface
93 lines • 8.06 kB
JavaScript
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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
;