UNPKG

@mutopad/connex-framework

Version:
53 lines 4.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.newExplainer = void 0; const revert_reason_1 = require("./revert-reason"); const R = require("./rules"); const bignumber_js_1 = require("bignumber.js"); function newExplainer(readyDriver, clauses) { const opts = {}; let cacheHints; return { caller(addr) { opts.caller = R.test(addr, R.address, 'arg0').toLowerCase(); return this; }, gas(gas) { opts.gas = R.test(gas, R.uint64, 'arg0'); return this; }, gasPrice(gp) { opts.gasPrice = R.test(gp, R.bigInt, 'arg0').toString().toLowerCase(); return this; }, gasPayer(addr) { opts.gasPayer = R.test(addr, R.address, 'arg0').toLowerCase(); return this; }, cache(hints) { cacheHints = R.test(hints, [R.address], 'arg0').map(t => t.toLowerCase()); return this; }, execute() { const transformedClauses = clauses.map(c => { return { to: c.to ? c.to.toLowerCase() : null, value: new bignumber_js_1.default(c.value).toString(10), data: (c.data || '0x').toLowerCase() }; }); return readyDriver.then(d => d.explain(Object.assign({ clauses: transformedClauses }, opts), d.head.id, cacheHints)) .then(outputs => { return outputs.map(o => { if (o.reverted) { const revertReason = (0, revert_reason_1.decodeRevertReason)(o.data); return Object.assign(Object.assign({}, o), { revertReason }); } return o; }); }); } }; } exports.newExplainer = newExplainer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2V4cGxhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBb0Q7QUFDcEQsNkJBQTRCO0FBQzVCLCtDQUFvQztBQUVwQyxTQUFnQixZQUFZLENBQUMsV0FBbUMsRUFBRSxPQUEyQjtJQUN6RixNQUFNLElBQUksR0FLTixFQUFFLENBQUE7SUFDTixJQUFJLFVBQWdDLENBQUE7SUFFcEMsT0FBTztRQUNILE1BQU0sQ0FBQyxJQUFJO1lBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQzNELE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUNELEdBQUcsQ0FBQyxHQUFHO1lBQ0gsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ3hDLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUNELFFBQVEsQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3JFLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUNELFFBQVEsQ0FBQyxJQUFJO1lBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQzdELE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUNELEtBQUssQ0FBQyxLQUFLO1lBQ1AsVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1lBQ3pFLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUNELE9BQU87WUFDSCxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZDLE9BQU87b0JBQ0gsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7b0JBQ3BDLEtBQUssRUFBRSxJQUFJLHNCQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQzFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO2lCQUN2QyxDQUFBO1lBQ0wsQ0FBQyxDQUFDLENBQUE7WUFFRixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxpQkFFOUIsT0FBTyxFQUFFLGtCQUFrQixJQUN4QixJQUFJLEdBRVgsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDWixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTt3QkFDWixNQUFNLFlBQVksR0FBRyxJQUFBLGtDQUFrQixFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDL0MsdUNBQVksQ0FBQyxLQUFFLFlBQVksSUFBRTtxQkFDaEM7b0JBQ0QsT0FBTyxDQUFDLENBQUE7Z0JBQ1osQ0FBQyxDQUFDLENBQUE7WUFDTixDQUFDLENBQUMsQ0FBQTtRQUNWLENBQUM7S0FDSixDQUFBO0FBQ0wsQ0FBQztBQXhERCxvQ0F3REMifQ==