UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

31 lines (29 loc) 4.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("../../constants"); const Helper_1 = require("../Helper"); class CreateGlobalObjectHelper extends Helper_1.Helper { emit(sb, node, optionsIn) { sb.emitOp(node, 'DEPTH'); sb.emitOp(node, 'PACK'); sb.emitOp(node, 'NEWMAP'); sb.emitOp(node, 'TUCK'); sb.emitPushInt(node, constants_1.GlobalProperty.Arguments); sb.emitOp(node, 'ROT'); sb.emitOp(node, 'SETITEM'); sb.emitOp(node, 'DUP'); sb.emitPushInt(node, constants_1.GlobalProperty.Modules); sb.emitPushInt(node, 0); sb.emitOp(node, 'NEWARRAY'); sb.emitOp(node, 'SETITEM'); sb.emitOp(node, 'DUP'); sb.emitPushInt(node, constants_1.GlobalProperty.CallingScriptHash); sb.emitSysCall(node, 'System.ExecutionEngine.GetCallingScriptHash'); sb.emitOp(node, 'SETITEM'); if (!optionsIn.pushValue) { sb.emitOp(node, 'DROP'); } } } exports.CreateGlobalObjectHelper = CreateGlobalObjectHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNyZWF0ZUdsb2JhbE9iamVjdEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtDQUFpRDtBQUdqRCxzQ0FBbUM7QUFJbkMsTUFBYSx3QkFBeUIsU0FBUSxlQUFNO0lBQzNDLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxTQUF1QjtRQUVuRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUxQixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSwwQkFBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRS9DLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXZCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLDBCQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFNUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsMEJBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXZELEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7UUFFcEUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0NBQ0Y7QUF2Q0QsNERBdUNDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL2dsb2JhbC9DcmVhdGVHbG9iYWxPYmplY3RIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBHbG9iYWxQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vSGVscGVyJztcblxuLy8gSW5wdXQ6IFtdXG4vLyBPdXRwdXQ6IFtnbG9iYWxPYmplY3RdXG5leHBvcnQgY2xhc3MgQ3JlYXRlR2xvYmFsT2JqZWN0SGVscGVyIGV4dGVuZHMgSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnNJbjogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgLy8gW2xlbmd0aCwgLi4uYXJnc11cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ0RFUFRIJyk7XG4gICAgLy8gW2FyZ3ZdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdQQUNLJyk7XG4gICAgLy8gW21hcCwgYXJndl1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ05FV01BUCcpO1xuICAgIC8vIFttYXAsIGFyZ3YsIG1hcF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1RVQ0snKTtcbiAgICAvLyBbbnVtYmVyLCBtYXAsIGFyZ3YsIG1hcF1cbiAgICBzYi5lbWl0UHVzaEludChub2RlLCBHbG9iYWxQcm9wZXJ0eS5Bcmd1bWVudHMpO1xuICAgIC8vIFthcmd2LCBudW1iZXIsIG1hcCwgbWFwXVxuICAgIHNiLmVtaXRPcChub2RlLCAnUk9UJyk7XG4gICAgLy8gW21hcF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NFVElURU0nKTtcbiAgICAvLyBbbWFwLCBtYXBdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdEVVAnKTtcbiAgICAvLyBbbnVtYmVyLCBtYXAsIG1hcF1cbiAgICBzYi5lbWl0UHVzaEludChub2RlLCBHbG9iYWxQcm9wZXJ0eS5Nb2R1bGVzKTtcbiAgICAvLyBbbnVtYmVyLCBudW1iZXIsIG1hcCwgbWFwXVxuICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIDApO1xuICAgIC8vIFthcnIsIG51bWJlciwgbWFwLCBtYXBdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdORVdBUlJBWScpO1xuICAgIC8vIFttYXBdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdTRVRJVEVNJyk7XG4gICAgLy8gW21hcCwgbWFwXVxuICAgIHNiLmVtaXRPcChub2RlLCAnRFVQJyk7XG4gICAgLy8gW251bWJlciwgbWFwLCBtYXBdXG4gICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgR2xvYmFsUHJvcGVydHkuQ2FsbGluZ1NjcmlwdEhhc2gpO1xuICAgIC8vIFtidWZmZXIsIG51bWJlciwgbWFwLCBtYXBdXG4gICAgc2IuZW1pdFN5c0NhbGwobm9kZSwgJ1N5c3RlbS5FeGVjdXRpb25FbmdpbmUuR2V0Q2FsbGluZ1NjcmlwdEhhc2gnKTtcbiAgICAvLyBbbWFwXVxuICAgIHNiLmVtaXRPcChub2RlLCAnU0VUSVRFTScpO1xuXG4gICAgaWYgKCFvcHRpb25zSW4ucHVzaFZhbHVlKSB7XG4gICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==