UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

51 lines (49 loc) 9.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../Helper"); class ArrSomeFuncHelper extends Helper_1.Helper { emit(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.emitHelper(node, options, sb.helpers.getCallable({})); sb.emitOp(node, 'SWAP'); sb.emitSysCall(node, 'Neo.Enumerator.Create'); sb.emitPushInt(node, 0); sb.emitPushBoolean(node, false); sb.emitOp(node, 'ROT'); sb.emitHelper(node, options, sb.helpers.forLoop({ condition: () => { sb.emitOp(node, 'OVER'); sb.emitOp(node, 'NOT'); sb.emitOp(node, 'OVER'); sb.emitSysCall(node, 'Neo.Enumerator.Next'); sb.emitOp(node, 'BOOLAND'); }, each: (innerOptions) => { sb.emitOp(node, 'NIP'); sb.emitOp(node, 'DUP'); sb.emitSysCall(node, 'Neo.Enumerator.Value'); sb.emitPushInt(node, 2); sb.emitOp(node, 'PICK'); sb.emitHelper(node, options, sb.helpers.wrapNumber); sb.emitOp(node, 'SWAP'); sb.emitPushInt(node, 2); sb.emitOp(node, 'PACK'); sb.emitPushInt(node, 3); sb.emitOp(node, 'PICK'); sb.emitHelper(node, sb.pushValueOptions(innerOptions), sb.helpers.call); sb.emitHelper(node, sb.pushValueOptions(innerOptions), sb.helpers.unwrapBoolean); sb.emitOp(node, 'ROT'); sb.emitOp(node, 'INC'); sb.emitOp(node, 'SWAP'); sb.emitOp(node, 'ROT'); }, cleanup: () => { sb.emitOp(node, 'DROP'); sb.emitOp(node, 'NIP'); sb.emitOp(node, 'NIP'); }, })); } } exports.ArrSomeFuncHelper = ArrSomeFuncHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QUVqRixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFFWixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQS9FRCw4Q0ErRUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvYXJyL0FyclNvbWVGdW5jSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL0hlbHBlcic7XG5cbi8vIElucHV0OiBbb2JqZWN0VmFsLCBhcnJdXG4vLyBPdXRwdXQ6IFtib29sZWFuXVxuZXhwb3J0IGNsYXNzIEFyclNvbWVGdW5jSGVscGVyIGV4dGVuZHMgSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnNJbjogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHNiLnB1c2hWYWx1ZU9wdGlvbnMob3B0aW9uc0luKTtcblxuICAgIC8vIFtjYWxsYWJsZSwgYXJyXVxuICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy5nZXRDYWxsYWJsZSh7fSkpO1xuICAgIC8vIFthcnIsIGNhbGxhYmxlXVxuICAgIHNiLmVtaXRPcChub2RlLCAnU1dBUCcpO1xuICAgIC8vIFtlbnVtZXJhdG9yLCBjYWxsYWJsZV1cbiAgICBzYi5lbWl0U3lzQ2FsbChub2RlLCAnTmVvLkVudW1lcmF0b3IuQ3JlYXRlJyk7XG4gICAgLy8gW2lkeCwgZW51bWVyYXRvciwgY2FsbGFibGVdXG4gICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMCk7XG4gICAgLy8gW3Jlc3VsdCwgaWR4LCBlbnVtZXJhdG9yLCBjYWxsYWJsZV1cbiAgICBzYi5lbWl0UHVzaEJvb2xlYW4obm9kZSwgZmFsc2UpO1xuICAgIC8vIFtlbnVtZXJhdG9yLCByZXN1bHQsIGlkeCwgY2FsbGFibGVdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgbm9kZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzYi5oZWxwZXJzLmZvckxvb3Aoe1xuICAgICAgICBjb25kaXRpb246ICgpID0+IHtcbiAgICAgICAgICAvLyBbcmVzdWx0LCBlbnVtZXJhdG9yLCByZXN1bHQsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdPVkVSJyk7XG4gICAgICAgICAgLy8gWyFyZXN1bHQsIGVudW1lcmF0b3IsIHJlc3VsdCwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ05PVCcpO1xuICAgICAgICAgIC8vIFtlbnVtZXJhdG9yLCAhcmVzdWx0LCBlbnVtZXJhdG9yLCByZXN1bHQsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdPVkVSJyk7XG4gICAgICAgICAgLy8gW2Jvb2xlYW4sICFyZXN1bHQsIGVudW1lcmF0b3IsIHJlc3VsdCwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0U3lzQ2FsbChub2RlLCAnTmVvLkVudW1lcmF0b3IuTmV4dCcpO1xuICAgICAgICAgIC8vIFtib29sZWFuLCBlbnVtZXJhdG9yLCByZXN1bHQsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdCT09MQU5EJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGVhY2g6IChpbm5lck9wdGlvbnMpID0+IHtcbiAgICAgICAgICAvLyBbZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ05JUCcpO1xuICAgICAgICAgIC8vIFtlbnVtZXJhdG9yLCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnRFVQJyk7XG4gICAgICAgICAgLy8gW3ZhbHVlLCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRTeXNDYWxsKG5vZGUsICdOZW8uRW51bWVyYXRvci5WYWx1ZScpO1xuICAgICAgICAgIC8vIFsyLCB2YWx1ZSwgZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0UHVzaEludChub2RlLCAyKTtcbiAgICAgICAgICAvLyBbaWR4LCB2YWx1ZSwgZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1BJQ0snKTtcbiAgICAgICAgICAvLyBbaWR4LCB2YWx1ZSwgZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMud3JhcE51bWJlcik7XG4gICAgICAgICAgLy8gW3ZhbHVlLCBpZHgsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdTV0FQJyk7XG4gICAgICAgICAgLy8gWzIsIHZhbHVlLCBpZHgsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMik7XG4gICAgICAgICAgLy8gW2FyZ3NhcnIsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdQQUNLJyk7XG4gICAgICAgICAgLy8gWzMsIGFyZ3NhcnIsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMyk7XG4gICAgICAgICAgLy8gW2NhbGxhYmxlLCBhcmdzYXJyLCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUElDSycpO1xuICAgICAgICAgIC8vIFt2YWwsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBzYi5wdXNoVmFsdWVPcHRpb25zKGlubmVyT3B0aW9ucyksIHNiLmhlbHBlcnMuY2FsbCk7XG4gICAgICAgICAgLy8gW3Jlc3VsdCwgZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0SGVscGVyKG5vZGUsIHNiLnB1c2hWYWx1ZU9wdGlvbnMoaW5uZXJPcHRpb25zKSwgc2IuaGVscGVycy51bndyYXBCb29sZWFuKTtcbiAgICAgICAgICAvLyBbaWR4LCByZXN1bHQsIGVudW1lcmF0b3IsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUk9UJyk7XG4gICAgICAgICAgLy8gW2lkeCwgcmVzdWx0LCBlbnVtZXJhdG9yLCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ0lOQycpO1xuICAgICAgICAgIC8vIFtyZXN1bHQsIGlkeCwgZW51bWVyYXRvciwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdTV0FQJyk7XG4gICAgICAgICAgLy8gW2VudW1lcmF0b3IsIHJlc3VsdCwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgICAgICB9LFxuICAgICAgICBjbGVhbnVwOiAoKSA9PiB7XG4gICAgICAgICAgLy8gW3Jlc3VsdCwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RST1AnKTtcbiAgICAgICAgICAvLyBbcmVzdWx0LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ05JUCcpO1xuICAgICAgICAgIC8vIFtyZXN1bHRdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdOSVAnKTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==