UNPKG

simonzgconnexframework

Version:

A library implements VeChain Connex interface

63 lines 5.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const revert_reason_1 = require("./revert-reason"); const R = require("./rules"); function newMethod(ctx, addr, coder) { let value = 0; const opts = {}; let cacheTies; return { value(val) { value = R.test(val, R.bigInt, 'arg0'); return this; }, caller(caller) { opts.caller = R.test(caller, 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; }, cache(ties) { cacheTies = R.test(ties, [R.address], 'arg0').map(t => t.toLowerCase()); return this; }, asClause: (...args) => { const inputsLen = (coder.definition.inputs || []).length; R.ensure(inputsLen === args.length, `args count expected ${inputsLen}`); try { const data = coder.encode(...args); return { to: addr, value: value.toString().toLowerCase(), data }; } catch (err) { throw new R.BadParameter(`args can not be encoded (${err.message})`); } }, call(...args) { const clause = this.asClause(...args); return ctx.driver.explain(Object.assign({ clauses: [clause] }, opts), ctx.trackedHead.id, cacheTies) .then(outputs => outputs[0]) .then(output => { if (output.reverted) { const revertReason = revert_reason_1.decodeRevertReason(output.data); return Object.assign({}, output, { decoded: { revertReason } }); } else { const decoded = coder.decode(output.data); return Object.assign({}, output, { decoded }); } }); } }; } exports.newMethod = newMethod; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZyYW1ld29yay9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxtREFBb0Q7QUFDcEQsNkJBQTRCO0FBRTVCLFNBQWdCLFNBQVMsQ0FDckIsR0FBWSxFQUNaLElBQVksRUFDWixLQUFtQjtJQUduQixJQUFJLEtBQUssR0FBb0IsQ0FBQyxDQUFBO0lBQzlCLE1BQU0sSUFBSSxHQUlOLEVBQUUsQ0FBQTtJQUVOLElBQUksU0FBK0IsQ0FBQTtJQUVuQyxPQUFPO1FBQ0gsS0FBSyxDQUFDLEdBQUc7WUFDTCxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNyQyxPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxNQUFNLENBQUMsTUFBTTtZQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUM3RCxPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxHQUFHLENBQUMsR0FBRztZQUNILElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN4QyxPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxRQUFRLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUNyRSxPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxLQUFLLENBQUMsSUFBYztZQUNoQixTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7WUFDdkUsT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUNsQixNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtZQUN4RCxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLHVCQUF1QixTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ3ZFLElBQUk7Z0JBQ0EsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO2dCQUNsQyxPQUFPO29CQUNILEVBQUUsRUFBRSxJQUFJO29CQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFO29CQUNyQyxJQUFJO2lCQUNQLENBQUE7YUFDSjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE1BQU0sSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLDRCQUE0QixHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQTthQUN2RTtRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxJQUFJO1lBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1lBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLGlCQUVqQixPQUFPLEVBQUUsQ0FBQyxNQUFhLENBQUMsSUFDckIsSUFBSSxHQUVYLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUNsQixTQUFTLENBQ1o7aUJBQ0ksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUNqQixNQUFNLFlBQVksR0FBRyxrQ0FBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQ3BELHlCQUFZLE1BQU0sSUFBRSxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBRTtpQkFDbEQ7cUJBQU07b0JBQ0gsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7b0JBQ3pDLHlCQUFZLE1BQU0sSUFBRSxPQUFPLElBQUU7aUJBQ2hDO1lBQ0wsQ0FBQyxDQUFDLENBQUE7UUFDVixDQUFDO0tBQ0osQ0FBQTtBQUNMLENBQUM7QUF4RUQsOEJBd0VDIn0=