@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
36 lines (34 loc) • 6.78 kB
JavaScript
;
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