UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

29 lines (27 loc) 4.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const KeyStructuredStorageBaseHelper_1 = require("./KeyStructuredStorageBaseHelper"); class HasStructuredStorageHelper extends KeyStructuredStorageBaseHelper_1.KeyStructuredStorageBaseHelper { emit(sb, node, options) { if (!options.pushValue) { sb.emitOp(node, 'DROP'); sb.emitOp(node, 'DROP'); return; } sb.emitHelper(node, options, sb.helpers.getKeyStructuredStorage({ type: this.type, keyType: this.keyType, knownKeyType: this.knownKeyType })); sb.emitHelper(node, options, sb.helpers.getStorage); sb.emitHelper(node, options, sb.helpers.handleUndefinedStorage({ handleUndefined: () => { sb.emitPushBoolean(node, false); sb.emitHelper(node, options, sb.helpers.wrapBoolean); }, handleDefined: () => { sb.emitOp(node, 'DROP'); sb.emitPushBoolean(node, true); sb.emitHelper(node, options, sb.helpers.wrapBoolean); }, })); } } exports.HasStructuredStorageHelper = HasStructuredStorageHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkhhc1N0cnVjdHVyZWRTdG9yYWdlSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EscUZBQWtGO0FBSWxGLE1BQWEsMEJBQTJCLFNBQVEsK0RBQThCO0lBQ3JFLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQjtRQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN0QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV4QixPQUFPO1NBQ1I7UUFFRCxFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FDaEgsQ0FBQztRQUVGLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBELEVBQUUsQ0FBQyxVQUFVLENBQ1gsSUFBSSxFQUNKLE9BQU8sRUFDUCxFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDO1lBQ2hDLGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBRXBCLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUVoQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBQ0QsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFFbEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRXhCLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUUvQixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxDQUFDO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0Q0QsZ0VBc0NDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL3N0b3JhZ2UvSGFzU3RydWN0dXJlZFN0b3JhZ2VIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBTY3JpcHRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vc2InO1xuaW1wb3J0IHsgVmlzaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgS2V5U3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyIH0gZnJvbSAnLi9LZXlTdHJ1Y3R1cmVkU3RvcmFnZUJhc2VIZWxwZXInO1xuXG4vLyBJbnB1dDogW2tleVZhbCwgdmFsXVxuLy8gT3V0cHV0OiBbdmFsXVxuZXhwb3J0IGNsYXNzIEhhc1N0cnVjdHVyZWRTdG9yYWdlSGVscGVyIGV4dGVuZHMgS2V5U3RydWN0dXJlZFN0b3JhZ2VCYXNlSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghb3B0aW9ucy5wdXNoVmFsdWUpIHtcbiAgICAgIHNiLmVtaXRPcChub2RlLCAnRFJPUCcpO1xuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gW2J1ZmZlcl1cbiAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgbm9kZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzYi5oZWxwZXJzLmdldEtleVN0cnVjdHVyZWRTdG9yYWdlKHsgdHlwZTogdGhpcy50eXBlLCBrZXlUeXBlOiB0aGlzLmtleVR5cGUsIGtub3duS2V5VHlwZTogdGhpcy5rbm93bktleVR5cGUgfSksXG4gICAgKTtcbiAgICAvLyBbdmFsdWVdXG4gICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLmdldFN0b3JhZ2UpO1xuICAgIC8vIFt2YWxdXG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5oYW5kbGVVbmRlZmluZWRTdG9yYWdlKHtcbiAgICAgICAgaGFuZGxlVW5kZWZpbmVkOiAoKSA9PiB7XG4gICAgICAgICAgLy8gW2Jvb2xlYW5dXG4gICAgICAgICAgc2IuZW1pdFB1c2hCb29sZWFuKG5vZGUsIGZhbHNlKTtcbiAgICAgICAgICAvLyBbdmFsXVxuICAgICAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwQm9vbGVhbik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhbmRsZURlZmluZWQ6ICgpID0+IHtcbiAgICAgICAgICAvLyBbXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnRFJPUCcpO1xuICAgICAgICAgIC8vIFtib29sZWFuXVxuICAgICAgICAgIHNiLmVtaXRQdXNoQm9vbGVhbihub2RlLCB0cnVlKTtcbiAgICAgICAgICAvLyBbdmFsXVxuICAgICAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgb3B0aW9ucywgc2IuaGVscGVycy53cmFwQm9vbGVhbik7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=