UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

33 lines (31 loc) 5.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const safe_stable_stringify_1 = tslib_1.__importDefault(require("safe-stable-stringify")); const Helper_1 = require("../Helper"); class InvokeCallHelper extends Helper_1.Helper { static getKey(options = { bindThis: false, noArgs: false }) { const bindThis = options.bindThis || false; const overwriteThis = options.overwriteThis || false; const noArgs = options.noArgs || false; return safe_stable_stringify_1.default({ bindThis, overwriteThis, noArgs }); } constructor(options = { bindThis: false, noArgs: false }) { super(); this.bindThis = options.bindThis || false; this.overwriteThis = options.overwriteThis || false; this.noArgs = options.noArgs || false; } emit(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.emitHelper(node, options, sb.helpers.getCallable({ bindThis: this.bindThis, overwriteThis: this.overwriteThis })); if (this.noArgs) { sb.emitPushInt(node, 0); sb.emitOp(node, 'NEWARRAY'); sb.emitOp(node, 'SWAP'); } sb.emitHelper(node, optionsIn, sb.helpers.call); } } exports.InvokeCallHelper = InvokeCallHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkludm9rZUNhbGxIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMEZBQThDO0FBSTlDLHNDQUFtQztBQVVuQyxNQUFhLGdCQUFpQixTQUFRLGVBQU07SUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFtQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtRQUN4RixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUV2QyxPQUFPLCtCQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQU1ELFlBQW1CLFVBQW1DLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1FBQ3RGLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxTQUF1QjtRQUNuRSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFL0MsRUFBRSxDQUFDLFVBQVUsQ0FDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUN2RixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBRWYsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFNUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekI7UUFFRCxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUF2Q0QsNENBdUNDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL2Z1bmN0aW9uL0ludm9rZUNhbGxIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3RyaW5naWZ5IGZyb20gJ3NhZmUtc3RhYmxlLXN0cmluZ2lmeSc7XG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vSGVscGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnZva2VDYWxsSGVscGVyT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGJpbmRUaGlzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgb3ZlcndyaXRlVGhpcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5vQXJncz86IGJvb2xlYW47XG59XG5cbi8vIElucHV0OiBbb2JqZWN0VmFsLCA/dGhpc1ZhbCwgP2FyZ3NhcnJheV1cbi8vIE91dHB1dDogW3ZhbF1cbmV4cG9ydCBjbGFzcyBJbnZva2VDYWxsSGVscGVyIGV4dGVuZHMgSGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyBnZXRLZXkob3B0aW9uczogSW52b2tlQ2FsbEhlbHBlck9wdGlvbnMgPSB7IGJpbmRUaGlzOiBmYWxzZSwgbm9BcmdzOiBmYWxzZSB9KTogc3RyaW5nIHtcbiAgICBjb25zdCBiaW5kVGhpcyA9IG9wdGlvbnMuYmluZFRoaXMgfHwgZmFsc2U7XG4gICAgY29uc3Qgb3ZlcndyaXRlVGhpcyA9IG9wdGlvbnMub3ZlcndyaXRlVGhpcyB8fCBmYWxzZTtcbiAgICBjb25zdCBub0FyZ3MgPSBvcHRpb25zLm5vQXJncyB8fCBmYWxzZTtcblxuICAgIHJldHVybiBzdHJpbmdpZnkoeyBiaW5kVGhpcywgb3ZlcndyaXRlVGhpcywgbm9BcmdzIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBiaW5kVGhpczogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBvdmVyd3JpdGVUaGlzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IG5vQXJnczogYm9vbGVhbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogSW52b2tlQ2FsbEhlbHBlck9wdGlvbnMgPSB7IGJpbmRUaGlzOiBmYWxzZSwgbm9BcmdzOiBmYWxzZSB9KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmJpbmRUaGlzID0gb3B0aW9ucy5iaW5kVGhpcyB8fCBmYWxzZTtcbiAgICB0aGlzLm92ZXJ3cml0ZVRoaXMgPSBvcHRpb25zLm92ZXJ3cml0ZVRoaXMgfHwgZmFsc2U7XG4gICAgdGhpcy5ub0FyZ3MgPSBvcHRpb25zLm5vQXJncyB8fCBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5Ob2RlLCBvcHRpb25zSW46IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBzYi5wdXNoVmFsdWVPcHRpb25zKG9wdGlvbnNJbik7XG4gICAgLy8gW2Z1bmMsID9hcmdzYXJyYXldXG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5nZXRDYWxsYWJsZSh7IGJpbmRUaGlzOiB0aGlzLmJpbmRUaGlzLCBvdmVyd3JpdGVUaGlzOiB0aGlzLm92ZXJ3cml0ZVRoaXMgfSksXG4gICAgKTtcbiAgICBpZiAodGhpcy5ub0FyZ3MpIHtcbiAgICAgIC8vIFswLCBmdW5jXVxuICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMCk7XG4gICAgICAvLyBbYXJnc2FycmF5LCBmdW5jXVxuICAgICAgc2IuZW1pdE9wKG5vZGUsICdORVdBUlJBWScpO1xuICAgICAgLy8gW2Z1bmMsIGFyZ3NhcnJheV1cbiAgICAgIHNiLmVtaXRPcChub2RlLCAnU1dBUCcpO1xuICAgIH1cbiAgICAvLyBbdmFsXVxuICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9uc0luLCBzYi5oZWxwZXJzLmNhbGwpO1xuICB9XG59XG4iXX0=