UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

36 lines (34 loc) 6.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("../../constants"); const Helper_1 = require("../Helper"); class HandlePrefixArrayStructuredStorageHelper extends Helper_1.Helper { emit(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.emitOp(node, 'DUP'); sb.emitPushInt(node, constants_1.StructuredStorageSlots.prefix); sb.emitOp(node, 'PICKITEM'); sb.emitOp(node, 'ROT'); sb.emitOp(node, 'TUCK'); sb.emitSysCall(node, 'Neo.Runtime.Serialize'); sb.emitOp(node, 'CAT'); sb.emitOp(node, 'ROT'); sb.emitOp(node, 'DUP'); sb.emitPushInt(node, constants_1.StructuredStorageSlots.prefixArray); sb.emitOp(node, 'OVER'); sb.emitPushInt(node, constants_1.StructuredStorageSlots.prefixArray); sb.emitOp(node, 'PICKITEM'); sb.emitHelper(node, options, sb.helpers.cloneArray); sb.emitOp(node, 'DUP'); sb.emitPushInt(node, 6); sb.emitOp(node, 'ROLL'); sb.emitOp(node, 'APPEND'); sb.emitOp(node, 'SETITEM'); sb.emitOp(node, 'TUCK'); sb.emitPushInt(node, constants_1.StructuredStorageSlots.prefix); sb.emitOp(node, 'ROT'); sb.emitOp(node, 'SETITEM'); } } exports.HandlePrefixArrayStructuredStorageHelper = HandlePrefixArrayStructuredStorageHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhhbmRsZVByZWZpeEFycmF5U3RydWN0dXJlZFN0b3JhZ2VIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSwrQ0FBeUQ7QUFHekQsc0NBQW1DO0FBSW5DLE1BQWEsd0NBQXlDLFNBQVEsZUFBTTtJQUMzRCxJQUFJLENBQUMsRUFBaUIsRUFBRSxJQUFhLEVBQUUsU0FBdUI7UUFDbkUsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRy9DLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXZCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGtDQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBELEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTVCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFFOUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsa0NBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFekQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsa0NBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFekQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFNUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFMUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsa0NBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEQsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBbkRELDRGQW1EQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2hlbHBlci9zdG9yYWdlL0hhbmRsZVByZWZpeEFycmF5U3RydWN0dXJlZFN0b3JhZ2VIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTdHJ1Y3R1cmVkU3RvcmFnZVNsb3RzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi9IZWxwZXInO1xuXG4vLyBJbnB1dDogW3N0cnVjdCwgdmFsXVxuLy8gT3V0cHV0OiBbc3RydWN0XVxuZXhwb3J0IGNsYXNzIEhhbmRsZVByZWZpeEFycmF5U3RydWN0dXJlZFN0b3JhZ2VIZWxwZXIgZXh0ZW5kcyBIZWxwZXIge1xuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uc0luOiBWaXNpdE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gc2IucHVzaFZhbHVlT3B0aW9ucyhvcHRpb25zSW4pO1xuXG4gICAgLy8gW3N0cnVjdCwgc3RydWN0LCB2YWxdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdEVVAnKTtcbiAgICAvLyBbbnVtYmVyLCBzdHJ1Y3QsIHN0cnVjdCwgdmFsXVxuICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIFN0cnVjdHVyZWRTdG9yYWdlU2xvdHMucHJlZml4KTtcbiAgICAvLyBbcHJlZml4LCBzdHJ1Y3QsIHZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1BJQ0tJVEVNJyk7XG4gICAgLy8gW3ZhbCwgcHJlZml4LCBzdHJ1Y3RdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICAvLyBbdmFsLCBwcmVmaXgsIHZhbCwgc3RydWN0XVxuICAgIHNiLmVtaXRPcChub2RlLCAnVFVDSycpO1xuICAgIC8vIFtidWZmZXIsIHByZWZpeCwgdmFsLCBzdHJ1Y3RdXG4gICAgc2IuZW1pdFN5c0NhbGwobm9kZSwgJ05lby5SdW50aW1lLlNlcmlhbGl6ZScpO1xuICAgIC8vIFtwcmVmaXgsIHZhbCwgc3RydWN0XVxuICAgIHNiLmVtaXRPcChub2RlLCAnQ0FUJyk7XG4gICAgLy8gW3N0cnVjdCwgcHJlZml4LCB2YWxdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICAvLyBbc3RydWN0LCBzdHJ1Y3QsIHByZWZpeCwgdmFsXVxuICAgIHNiLmVtaXRPcChub2RlLCAnRFVQJyk7XG4gICAgLy8gW251bWJlciwgc3RydWN0LCBzdHJ1Y3QsIHByZWZpeCwgdmFsXVxuICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIFN0cnVjdHVyZWRTdG9yYWdlU2xvdHMucHJlZml4QXJyYXkpO1xuICAgIC8vIFtzdHJ1Y3QsIG51bWJlciwgc3RydWN0LCBzdHJ1Y3QsIHByZWZpeCwgdmFsXVxuICAgIHNiLmVtaXRPcChub2RlLCAnT1ZFUicpO1xuICAgIC8vIFtudW1iZXIsIHN0cnVjdCwgbnVtYmVyLCBzdHJ1Y3QsIHN0cnVjdCwgcHJlZml4LCB2YWxdXG4gICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgU3RydWN0dXJlZFN0b3JhZ2VTbG90cy5wcmVmaXhBcnJheSk7XG4gICAgLy8gW2FycmF5LCBudW1iZXIsIHN0cnVjdCwgc3RydWN0LCBwcmVmaXgsIHZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1BJQ0tJVEVNJyk7XG4gICAgLy8gW2FycmF5LCBudW1iZXIsIHN0cnVjdCwgc3RydWN0LCBwcmVmaXgsIHZhbF1cbiAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMuY2xvbmVBcnJheSk7XG4gICAgLy8gW2FycmF5LCBhcnJheSwgbnVtYmVyLCBzdHJ1Y3QsIHN0cnVjdCwgcHJlZml4LCB2YWxdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdEVVAnKTtcbiAgICAvLyBbNiwgYXJyYXksIGFycmF5LCBudW1iZXIsIHN0cnVjdCwgc3RydWN0LCBwcmVmaXgsIHZhbF1cbiAgICBzYi5lbWl0UHVzaEludChub2RlLCA2KTtcbiAgICAvLyBbdmFsLCBhcnJheSwgYXJyYXksIG51bWJlciwgc3RydWN0LCBzdHJ1Y3QsIHByZWZpeF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPTEwnKTtcbiAgICAvLyBbYXJyYXksIG51bWJlciwgc3RydWN0LCBzdHJ1Y3QsIHByZWZpeF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ0FQUEVORCcpO1xuICAgIC8vIFtzdHJ1Y3QsIHByZWZpeF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NFVElURU0nKTtcbiAgICAvLyBbc3RydWN0LCBwcmVmaXgsIHN0cnVjdF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1RVQ0snKTtcbiAgICAvLyBbbnVtYmVyLCBzdHJ1Y3QsIHByZWZpeCwgc3RydWN0XVxuICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIFN0cnVjdHVyZWRTdG9yYWdlU2xvdHMucHJlZml4KTtcbiAgICAvLyBbcHJlZml4LCBudW1iZXIsIHN0cnVjdCwgc3RydWN0XVxuICAgIHNiLmVtaXRPcChub2RlLCAnUk9UJyk7XG4gICAgLy8gW3N0cnVjdF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NFVElURU0nKTtcbiAgfVxufVxuIl19