UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

28 lines (26 loc) 4.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../Helper"); class MapMapHelper extends Helper_1.Helper { constructor(options) { super(); this.map = options.map; } emit(sb, node, options) { sb.emitSysCall(node, 'Neo.Iterator.Create'); sb.emitOp(node, 'NEWMAP'); sb.emitHelper(node, options, sb.helpers.rawIteratorReduce({ each: (innerOptions) => { sb.emitPushInt(node, 3); sb.emitOp(node, 'XTUCK'); sb.emitOp(node, 'ROT'); sb.emitOp(node, 'ROT'); this.map(innerOptions); sb.emitOp(node, 'SWAP'); sb.emitOp(node, 'SETITEM'); }, })); } } exports.MapMapHelper = MapMapHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hcE1hcEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLHNDQUFtQztBQVFuQyxNQUFhLFlBQWEsU0FBUSxlQUFNO0lBR3RDLFlBQW1CLE9BQTRCO1FBQzdDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxJQUFJLENBQUMsRUFBaUIsRUFBRSxJQUFhLEVBQUUsT0FBcUI7UUFFakUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUU1QyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUxQixFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUMzQixJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFFckIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBRXhCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUV6QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBR3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3QixDQUFDO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0Q0Qsb0NBc0NDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL21hcC9NYXBNYXBIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vSGVscGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBNYXBNYXBIZWxwZXJPcHRpb25zIHtcbiAgcmVhZG9ubHkgbWFwOiAob3B0aW9uczogVmlzaXRPcHRpb25zKSA9PiB2b2lkO1xufVxuXG4vLyBJbnB1dDogW21hcF1cbi8vIE91dHB1dDogW21hcF1cbmV4cG9ydCBjbGFzcyBNYXBNYXBIZWxwZXIgZXh0ZW5kcyBIZWxwZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IG1hcDogKG9wdGlvbnM6IFZpc2l0T3B0aW9ucykgPT4gdm9pZDtcblxuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogTWFwTWFwSGVscGVyT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5tYXAgPSBvcHRpb25zLm1hcDtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0KHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiB0cy5Ob2RlLCBvcHRpb25zOiBWaXNpdE9wdGlvbnMpOiB2b2lkIHtcbiAgICAvLyBbaXRlcmF0b3JdXG4gICAgc2IuZW1pdFN5c0NhbGwobm9kZSwgJ05lby5JdGVyYXRvci5DcmVhdGUnKTtcbiAgICAvLyBbYWNjdW0sIGl0ZXJhdG9yXVxuICAgIHNiLmVtaXRPcChub2RlLCAnTkVXTUFQJyk7XG4gICAgLy8gW2FjY3VtXVxuICAgIHNiLmVtaXRIZWxwZXIoXG4gICAgICBub2RlLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHNiLmhlbHBlcnMucmF3SXRlcmF0b3JSZWR1Y2Uoe1xuICAgICAgICBlYWNoOiAoaW5uZXJPcHRpb25zKSA9PiB7XG4gICAgICAgICAgLy8gWzMsIGFjY3VtLCBrZXksIHZhbF1cbiAgICAgICAgICBzYi5lbWl0UHVzaEludChub2RlLCAzKTtcbiAgICAgICAgICAvLyBbYWNjdW0sIGtleSwgdmFsLCBhY2N1bV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1hUVUNLJyk7XG4gICAgICAgICAgLy8gW3ZhbCwgYWNjdW0sIGtleSwgYWNjdW1dXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICAgICAgICAvLyBba2V5LCB2YWwsIGFjY3VtLCBhY2N1bV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgICAgICAgIC8vIFtrZXksIHZhbCwgYWNjdW0sIGFjY3VtXVxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1tYXAtd2l0aG91dC11c2FnZVxuICAgICAgICAgIHRoaXMubWFwKGlubmVyT3B0aW9ucyk7XG4gICAgICAgICAgLy8gW3ZhbCwga2V5LCBhY2N1bSwgYWNjdW1dXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdTV0FQJyk7XG4gICAgICAgICAgLy8gW2FjY3VtXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnU0VUSVRFTScpO1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19