UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

50 lines (48 loc) 9.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../Helper"); class ArrEveryFuncHelper 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, true); sb.emitOp(node, 'ROT'); sb.emitHelper(node, options, sb.helpers.forLoop({ condition: () => { sb.emitOp(node, 'OVER'); 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.ArrEveryFuncHelper = ArrEveryFuncHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QkFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFFWixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdFRCxnREE2RUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvYXJyL0FyckV2ZXJ5RnVuY0hlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi9IZWxwZXInO1xuXG4vLyBJbnB1dDogW29iamVjdFZhbCwgYXJyXVxuLy8gT3V0cHV0OiBbYm9vbGVhbl1cbmV4cG9ydCBjbGFzcyBBcnJFdmVyeUZ1bmNIZWxwZXIgZXh0ZW5kcyBIZWxwZXIge1xuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uc0luOiBWaXNpdE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gc2IucHVzaFZhbHVlT3B0aW9ucyhvcHRpb25zSW4pO1xuXG4gICAgLy8gW2NhbGxhYmxlLCBhcnJdXG4gICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLmdldENhbGxhYmxlKHt9KSk7XG4gICAgLy8gW2FyciwgY2FsbGFibGVdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdTV0FQJyk7XG4gICAgLy8gW2VudW1lcmF0b3IsIGNhbGxhYmxlXVxuICAgIHNiLmVtaXRTeXNDYWxsKG5vZGUsICdOZW8uRW51bWVyYXRvci5DcmVhdGUnKTtcbiAgICAvLyBbaWR4LCBlbnVtZXJhdG9yLCBjYWxsYWJsZV1cbiAgICBzYi5lbWl0UHVzaEludChub2RlLCAwKTtcbiAgICAvLyBbcmVzdWx0LCBpZHgsIGVudW1lcmF0b3IsIGNhbGxhYmxlXVxuICAgIHNiLmVtaXRQdXNoQm9vbGVhbihub2RlLCB0cnVlKTtcbiAgICAvLyBbZW51bWVyYXRvciwgcmVzdWx0LCBpZHgsIGNhbGxhYmxlXVxuICAgIHNiLmVtaXRPcChub2RlLCAnUk9UJyk7XG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5mb3JMb29wKHtcbiAgICAgICAgY29uZGl0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgLy8gW3Jlc3VsdCwgZW51bWVyYXRvciwgcmVzdWx0LCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnT1ZFUicpO1xuICAgICAgICAgIC8vIFtlbnVtZXJhdG9yLCByZXN1bHQsIGVudW1lcmF0b3IsIHJlc3VsdCwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ09WRVInKTtcbiAgICAgICAgICAvLyBbYm9vbGVhbiwgcmVzdWx0LCBlbnVtZXJhdG9yLCByZXN1bHQsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdFN5c0NhbGwobm9kZSwgJ05lby5FbnVtZXJhdG9yLk5leHQnKTtcbiAgICAgICAgICAvLyBbYm9vbGVhbiwgZW51bWVyYXRvciwgcmVzdWx0LCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnQk9PTEFORCcpO1xuICAgICAgICB9LFxuICAgICAgICBlYWNoOiAoaW5uZXJPcHRpb25zKSA9PiB7XG4gICAgICAgICAgLy8gW2VudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdOSVAnKTtcbiAgICAgICAgICAvLyBbZW51bWVyYXRvciwgZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ0RVUCcpO1xuICAgICAgICAgIC8vIFt2YWx1ZSwgZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0U3lzQ2FsbChub2RlLCAnTmVvLkVudW1lcmF0b3IuVmFsdWUnKTtcbiAgICAgICAgICAvLyBbMiwgdmFsdWUsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMik7XG4gICAgICAgICAgLy8gW2lkeCwgdmFsdWUsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdQSUNLJyk7XG4gICAgICAgICAgLy8gW2lkeCwgdmFsdWUsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLndyYXBOdW1iZXIpO1xuICAgICAgICAgIC8vIFt2YWx1ZSwgaWR4LCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnU1dBUCcpO1xuICAgICAgICAgIC8vIFsyLCB2YWx1ZSwgaWR4LCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIDIpO1xuICAgICAgICAgIC8vIFthcmdzYXJyLCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUEFDSycpO1xuICAgICAgICAgIC8vIFszLCBhcmdzYXJyLCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIDMpO1xuICAgICAgICAgIC8vIFtjYWxsYWJsZSwgYXJnc2FyciwgZW51bWVyYXRvciwgaWR4LCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1BJQ0snKTtcbiAgICAgICAgICAvLyBbdmFsLCBlbnVtZXJhdG9yLCBpZHgsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgc2IucHVzaFZhbHVlT3B0aW9ucyhpbm5lck9wdGlvbnMpLCBzYi5oZWxwZXJzLmNhbGwpO1xuICAgICAgICAgIC8vIFtyZXN1bHQsIGVudW1lcmF0b3IsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBzYi5wdXNoVmFsdWVPcHRpb25zKGlubmVyT3B0aW9ucyksIHNiLmhlbHBlcnMudW53cmFwQm9vbGVhbik7XG4gICAgICAgICAgLy8gW2lkeCwgcmVzdWx0LCBlbnVtZXJhdG9yLCBjYWxsYWJsZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgICAgICAgIC8vIFtpZHgsIHJlc3VsdCwgZW51bWVyYXRvciwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdJTkMnKTtcbiAgICAgICAgICAvLyBbcmVzdWx0LCBpZHgsIGVudW1lcmF0b3IsIGNhbGxhYmxlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnU1dBUCcpO1xuICAgICAgICAgIC8vIFtlbnVtZXJhdG9yLCByZXN1bHQsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYW51cDogKCkgPT4ge1xuICAgICAgICAgIC8vIFtyZXN1bHQsIGlkeCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgICAgICAgLy8gW3Jlc3VsdCwgY2FsbGFibGVdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdOSVAnKTtcbiAgICAgICAgICAvLyBbcmVzdWx0XVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnTklQJyk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=