@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
43 lines (41 loc) • 7.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Helper_1 = require("../../Helper");
class SetObjectPropertyHelperBase extends Helper_1.Helper {
emit(sb, node, options) {
sb.emitOp(node, 'ROT');
sb.emitOp(node, 'ROT');
sb.emitOp(node, 'TUCK');
sb.emitOp(node, 'OVER');
sb.emitOp(node, 'SWAP');
sb.emitHelper(node, sb.pushValueOptions(options), sb.helpers.findObjectProperty({
accessor: () => {
sb.emitPushInt(node, 1);
sb.emitOp(node, 'PICKITEM');
sb.emitOp(node, 'ROT');
sb.emitOp(node, 'DROP');
sb.emitOp(node, 'ROT');
sb.emitPushInt(node, 1);
sb.emitOp(node, 'PACK');
sb.emitOp(node, 'ROT');
sb.emitOp(node, 'ROT');
sb.emitHelper(node, sb.noPushValueOptions(options), sb.helpers.invokeCall({ bindThis: true, noArgs: false }));
},
dataExists: () => {
sb.emitOp(node, 'NIP');
sb.emitOp(node, 'NIP');
sb.emitPushInt(node, 0);
sb.emitOp(node, 'ROT');
sb.emitOp(node, 'SETITEM');
},
data: () => {
sb.emitOp(node, 'SWAP');
sb.emitOp(node, 'ROT');
sb.emitHelper(node, sb.noPushValueOptions(options), this.setDataProperty(sb));
},
getObject: this.getObject.bind(this),
}));
}
}
exports.SetObjectPropertyHelperBase = SetObjectPropertyHelperBase;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNldE9iamVjdFByb3BlcnR5SGVscGVyQmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHlDQUFzQztBQUl0QyxNQUFzQiwyQkFBNEIsU0FBUSxlQUFNO0lBQ3ZELElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQjtRQUVqRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV2QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV2QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4QixFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQzVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7WUFDNUIsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFFYixFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRTVCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUV2QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUV2QixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEgsQ0FBQztZQUNELFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBRWYsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUV2QixFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRXZCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUVULEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFdkIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRixDQUFDO1lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FJRjtBQWpFRCxrRUFpRUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvdHlwZXMvb2JqZWN0L1NldE9iamVjdFByb3BlcnR5SGVscGVyQmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uLy4uL0hlbHBlcic7XG5cbi8vIElucHV0OiBbdmFsLCBzdHJpbmdQcm9wLCBvYmplY3RWYWxdXG4vLyBPdXRwdXQ6IFt2YWxdXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2V0T2JqZWN0UHJvcGVydHlIZWxwZXJCYXNlIGV4dGVuZHMgSGVscGVyIHtcbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIC8vIFtvYmplY3RWYWwsIHZhbCwgc3RyaW5nUHJvcF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgIC8vIFtzdHJpbmdQcm9wLCBvYmplY3RWYWwsIHZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgIC8vIFtzdHJpbmdQcm9wLCBvYmplY3RWYWwsIHN0cmluZ1Byb3AsIHZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1RVQ0snKTtcbiAgICAvLyBbb2JqZWN0VmFsLCBzdHJpbmdQcm9wLCBvYmplY3RWYWwsIHN0cmluZ1Byb3AsIHZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ09WRVInKTtcbiAgICAvLyBbc3RyaW5nUHJvcCwgb2JqZWN0VmFsLCBvYmplY3RWYWwsIHN0cmluZ1Byb3AsIHZhbF1cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgbm9kZSxcbiAgICAgIHNiLnB1c2hWYWx1ZU9wdGlvbnMob3B0aW9ucyksXG4gICAgICBzYi5oZWxwZXJzLmZpbmRPYmplY3RQcm9wZXJ0eSh7XG4gICAgICAgIGFjY2Vzc29yOiAoKSA9PiB7XG4gICAgICAgICAgLy8gWzEsIHByb3BWYWwsIG9iamVjdFZhbCwgc3RyaW5nUHJvcCwgdmFsXVxuICAgICAgICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIDEpO1xuICAgICAgICAgIC8vIFtzZXRPYmplY3RWYWwsIG9iamVjdFZhbCwgc3RyaW5nUHJvcCwgdmFsXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUElDS0lURU0nKTtcbiAgICAgICAgICAvLyBbc3RyaW5nUHJvcCwgc2V0T2JqZWN0VmFsLCBvYmplY3RWYWwsIHZhbF1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgICAgICAgIC8vIFtzZXRPYmplY3RWYWwsIG9iamVjdFZhbCwgdmFsXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnRFJPUCcpO1xuICAgICAgICAgIC8vIFt2YWwsIHNldE9iamVjdFZhbCwgb2JqZWN0VmFsXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUk9UJyk7XG4gICAgICAgICAgLy8gWzEsIHZhbCwgc2V0T2JqZWN0VmFsLCBvYmplY3RWYWxdXG4gICAgICAgICAgc2IuZW1pdFB1c2hJbnQobm9kZSwgMSk7XG4gICAgICAgICAgLy8gW2FyZ3NhcnIsIHNldE9iamVjdFZhbCwgb2JqZWN0VmFsXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUEFDSycpO1xuICAgICAgICAgIC8vIFtvYmplY3RWYWwsIGFyZ3NhcnIsIHNldE9iamVjdFZhbF1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgICAgICAgIC8vIFtzZXRPYmplY3RWYWwsIG9iamVjdFZhbCwgYXJnc2Fycl1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1JPVCcpO1xuICAgICAgICAgIC8vIFt2YWxdXG4gICAgICAgICAgc2IuZW1pdEhlbHBlcihub2RlLCBzYi5ub1B1c2hWYWx1ZU9wdGlvbnMob3B0aW9ucyksIHNiLmhlbHBlcnMuaW52b2tlQ2FsbCh7IGJpbmRUaGlzOiB0cnVlLCBub0FyZ3M6IGZhbHNlIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YUV4aXN0czogKCkgPT4ge1xuICAgICAgICAgIC8vIFtwcm9wVmFsLCBzdHJpbmdQcm9wLCB2YWxdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdOSVAnKTtcbiAgICAgICAgICAvLyBbcHJvcFZhbCwgdmFsXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnTklQJyk7XG4gICAgICAgICAgLy8gWzAsIHByb3BWYWwsIHZhbF1cbiAgICAgICAgICBzYi5lbWl0UHVzaEludChub2RlLCAwKTtcbiAgICAgICAgICAvLyBbdmFsLCAwLCBwcm9wVmFsXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnUk9UJyk7XG4gICAgICAgICAgLy8gW11cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1NFVElURU0nKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YTogKCkgPT4ge1xuICAgICAgICAgIC8vIFtzdHJpbmdQcm9wLCBvYmplY3RWYWwsIHZhbF1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAgICAgICAvLyBbdmFsLCBzdHJpbmdQcm9wLCBvYmplY3RWYWxdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdST1QnKTtcbiAgICAgICAgICAvLyBbXVxuICAgICAgICAgIHNiLmVtaXRIZWxwZXIobm9kZSwgc2Iubm9QdXNoVmFsdWVPcHRpb25zKG9wdGlvbnMpLCB0aGlzLnNldERhdGFQcm9wZXJ0eShzYikpO1xuICAgICAgICB9LFxuICAgICAgICBnZXRPYmplY3Q6IHRoaXMuZ2V0T2JqZWN0LmJpbmQodGhpcyksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldE9iamVjdChzYjogU2NyaXB0QnVpbGRlcik6IEhlbHBlcjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldERhdGFQcm9wZXJ0eShzYjogU2NyaXB0QnVpbGRlcik6IEhlbHBlcjtcbn1cbiJdfQ==