@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
26 lines (24 loc) • 3.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("../constants");
const types_1 = require("./types");
class BuiltinInstanceMemberStructuredStorageProperty {
constructor(type, property) {
this.type = type;
this.property = property;
this.types = new Set([types_1.BuiltinType.InstanceMemberValue]);
}
emitValue(sb, node, options, visited = false) {
if (visited) {
sb.emitOp(node, 'DROP');
}
if (options.pushValue) {
sb.emitHelper(node, options, sb.helpers.createStructuredStorage({
type: constants_1.getTypeFromStructuredStorageType(this.type),
prefix: this.property,
}));
}
}
}
exports.BuiltinInstanceMemberStructuredStorageProperty = BuiltinInstanceMemberStructuredStorageProperty;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJ1aWx0aW5JbnN0YW5jZU1lbWJlclN0cnVjdHVyZWRTdG9yYWdlUHJvcGVydHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBdUY7QUFHdkYsbUNBQXdGO0FBR3hGLE1BQWEsOENBQThDO0lBR3pELFlBQW9DLElBQTJCLEVBQW1CLFFBQWdCO1FBQTlELFNBQUksR0FBSixJQUFJLENBQXVCO1FBQW1CLGFBQVEsR0FBUixRQUFRLENBQVE7UUFGbEYsVUFBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsbUJBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFFa0MsQ0FBQztJQUUvRixTQUFTLENBQUMsRUFBaUIsRUFBRSxJQUEwQixFQUFFLE9BQXFCLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDcEcsSUFBSSxPQUFPLEVBQUU7WUFFWCxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUVyQixFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztnQkFDakMsSUFBSSxFQUFFLDRDQUFnQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ2pELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN0QixDQUFDLENBQ0gsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGO0FBdkJELHdHQXVCQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy9jb21waWxlL2J1aWx0aW5zL0J1aWx0aW5JbnN0YW5jZU1lbWJlclN0cnVjdHVyZWRTdG9yYWdlUHJvcGVydHkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRUeXBlRnJvbVN0cnVjdHVyZWRTdG9yYWdlVHlwZSwgU3RydWN0dXJlZFN0b3JhZ2VUeXBlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBCdWlsdGluSW5zdGFuY2VNZW1iZXJWYWx1ZSwgQnVpbHRpblR5cGUsIE1lbWJlckxpa2VFeHByZXNzaW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBleHBvcnQtbmFtZVxuZXhwb3J0IGNsYXNzIEJ1aWx0aW5JbnN0YW5jZU1lbWJlclN0cnVjdHVyZWRTdG9yYWdlUHJvcGVydHkgaW1wbGVtZW50cyBCdWlsdGluSW5zdGFuY2VNZW1iZXJWYWx1ZSB7XG4gIHB1YmxpYyByZWFkb25seSB0eXBlcyA9IG5ldyBTZXQoW0J1aWx0aW5UeXBlLkluc3RhbmNlTWVtYmVyVmFsdWVdKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0eXBlOiBTdHJ1Y3R1cmVkU3RvcmFnZVR5cGUsIHByaXZhdGUgcmVhZG9ubHkgcHJvcGVydHk6IHN0cmluZykge31cblxuICBwdWJsaWMgZW1pdFZhbHVlKHNiOiBTY3JpcHRCdWlsZGVyLCBub2RlOiBNZW1iZXJMaWtlRXhwcmVzc2lvbiwgb3B0aW9uczogVmlzaXRPcHRpb25zLCB2aXNpdGVkID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAodmlzaXRlZCkge1xuICAgICAgLy8gW11cbiAgICAgIHNiLmVtaXRPcChub2RlLCAnRFJPUCcpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnB1c2hWYWx1ZSkge1xuICAgICAgLy8gW3ZhbF1cbiAgICAgIHNiLmVtaXRIZWxwZXIoXG4gICAgICAgIG5vZGUsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIHNiLmhlbHBlcnMuY3JlYXRlU3RydWN0dXJlZFN0b3JhZ2Uoe1xuICAgICAgICAgIHR5cGU6IGdldFR5cGVGcm9tU3RydWN0dXJlZFN0b3JhZ2VUeXBlKHRoaXMudHlwZSksXG4gICAgICAgICAgcHJlZml4OiB0aGlzLnByb3BlcnR5LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=