@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
19 lines (17 loc) • 2.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../../constants");
const StructuredStorageBaseHelper_1 = require("./StructuredStorageBaseHelper");
class GetStructuredStorageSizeHelper extends StructuredStorageBaseHelper_1.StructuredStorageBaseHelper {
emit(sb, node, options) {
if (!options.pushValue) {
sb.emitOp(node, 'DROP');
return;
}
sb.emitHelper(node, options, sb.helpers.unwrapVal({ type: this.type }));
sb.emitPushInt(node, constants_1.StructuredStorageSlots.size);
sb.emitOp(node, 'PICKITEM');
}
}
exports.GetStructuredStorageSizeHelper = GetStructuredStorageSizeHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkdldFN0cnVjdHVyZWRTdG9yYWdlU2l6ZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLCtDQUF5RDtBQUd6RCwrRUFBNEU7QUFJNUUsTUFBYSw4QkFBK0IsU0FBUSx5REFBMkI7SUFDdEUsSUFBSSxDQUFDLEVBQWlCLEVBQUUsSUFBYSxFQUFFLE9BQXFCO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXhCLE9BQU87U0FDUjtRQUdELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGtDQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxELEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQWZELHdFQWVDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL3N0b3JhZ2UvR2V0U3RydWN0dXJlZFN0b3JhZ2VTaXplSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgU3RydWN0dXJlZFN0b3JhZ2VTbG90cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyIH0gZnJvbSAnLi9TdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXInO1xuXG4vLyBJbnB1dDogW3ZhbF1cbi8vIE91dHB1dDogW3NpemVdXG5leHBvcnQgY2xhc3MgR2V0U3RydWN0dXJlZFN0b3JhZ2VTaXplSGVscGVyIGV4dGVuZHMgU3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghb3B0aW9ucy5wdXNoVmFsdWUpIHtcbiAgICAgIHNiLmVtaXRPcChub2RlLCAnRFJPUCcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gW3N0cnVjdF1cbiAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMudW53cmFwVmFsKHsgdHlwZTogdGhpcy50eXBlIH0pKTtcbiAgICAvLyBbbnVtYmVyXVxuICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIFN0cnVjdHVyZWRTdG9yYWdlU2xvdHMuc2l6ZSk7XG4gICAgLy8gW3NpemVdXG4gICAgc2IuZW1pdE9wKG5vZGUsICdQSUNLSVRFTScpO1xuICB9XG59XG4iXX0=