UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

33 lines (31 loc) 5.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_common_1 = require("@neo-one/client-common"); const Helper_1 = require("../Helper"); class DidReceiveNonClaimAssetsHelper extends Helper_1.Helper { emit(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.emitSysCall(node, 'System.ExecutionEngine.GetScriptContainer'); sb.emitSysCall(node, 'Neo.Transaction.GetOutputs'); sb.emitHelper(node, options, sb.helpers.getOutputAssetValueMap); sb.emitSysCall(node, 'System.ExecutionEngine.GetScriptContainer'); sb.emitSysCall(node, 'Neo.Transaction.GetReferences'); sb.emitHelper(node, options, sb.helpers.mergeAssetValueMaps({ add: false })); sb.emitHelper(node, optionsIn, sb.helpers.mapSome({ each: () => { sb.emitPushBuffer(node, client_common_1.common.stringToUInt256(client_common_1.common.GAS_ASSET_HASH)); sb.emitOp(node, 'EQUAL'); sb.emitOp(node, 'NOT'); sb.emitOp(node, 'SWAP'); sb.emitPushInt(node, 0); sb.emitOp(node, 'GT'); sb.emitOp(node, 'BOOLAND'); }, })); if (!optionsIn.pushValue) { sb.emitOp(node, 'DROP'); } } } exports.DidReceiveNonClaimAssetsHelper = DidReceiveNonClaimAssetsHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRpZFJlY2VpdmVOb25DbGFpbUFzc2V0c0hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBEQUFnRDtBQUloRCxzQ0FBbUM7QUFJbkMsTUFBYSw4QkFBK0IsU0FBUSxlQUFNO0lBQ2pELElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxTQUF1QjtRQUNuRSxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFHL0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztRQUVsRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBRW5ELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFaEUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztRQUVsRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBRXRELEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU3RSxFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixTQUFTLEVBQ1QsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFFVCxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxzQkFBTSxDQUFDLGVBQWUsQ0FBQyxzQkFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBRXZFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUV6QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRXhCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUV4QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFdEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDN0IsQ0FBQztTQUNGLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFFeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0NBQ0Y7QUE3Q0Qsd0VBNkNDIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2NvbXBpbGUvaGVscGVyL2NvbnRyYWN0L0RpZFJlY2VpdmVOb25DbGFpbUFzc2V0c0hlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbW1vbiB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL0hlbHBlcic7XG5cbi8vIElucHV0OiBbXVxuLy8gT3V0cHV0OiBbYm9vbGVhbl1cbmV4cG9ydCBjbGFzcyBEaWRSZWNlaXZlTm9uQ2xhaW1Bc3NldHNIZWxwZXIgZXh0ZW5kcyBIZWxwZXIge1xuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uc0luOiBWaXNpdE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gc2IucHVzaFZhbHVlT3B0aW9ucyhvcHRpb25zSW4pO1xuXG4gICAgLy8gW3RyYW5zYWN0aW9uXVxuICAgIHNiLmVtaXRTeXNDYWxsKG5vZGUsICdTeXN0ZW0uRXhlY3V0aW9uRW5naW5lLkdldFNjcmlwdENvbnRhaW5lcicpO1xuICAgIC8vIFtvdXRwdXRzXVxuICAgIHNiLmVtaXRTeXNDYWxsKG5vZGUsICdOZW8uVHJhbnNhY3Rpb24uR2V0T3V0cHV0cycpO1xuICAgIC8vIFttYXBdXG4gICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLmdldE91dHB1dEFzc2V0VmFsdWVNYXApO1xuICAgIC8vIFt0cmFuc2FjdGlvbiwgbWFwXVxuICAgIHNiLmVtaXRTeXNDYWxsKG5vZGUsICdTeXN0ZW0uRXhlY3V0aW9uRW5naW5lLkdldFNjcmlwdENvbnRhaW5lcicpO1xuICAgIC8vIFtvdXRwdXRzLCBtYXBdXG4gICAgc2IuZW1pdFN5c0NhbGwobm9kZSwgJ05lby5UcmFuc2FjdGlvbi5HZXRSZWZlcmVuY2VzJyk7XG4gICAgLy8gW21hcF1cbiAgICBzYi5lbWl0SGVscGVyKG5vZGUsIG9wdGlvbnMsIHNiLmhlbHBlcnMubWVyZ2VBc3NldFZhbHVlTWFwcyh7IGFkZDogZmFsc2UgfSkpO1xuICAgIC8vIFtib29sZWFuXVxuICAgIHNiLmVtaXRIZWxwZXIoXG4gICAgICBub2RlLFxuICAgICAgb3B0aW9uc0luLFxuICAgICAgc2IuaGVscGVycy5tYXBTb21lKHtcbiAgICAgICAgZWFjaDogKCkgPT4ge1xuICAgICAgICAgIC8vIFtidWZmZXIsIGtleSwgdmFsdWVdXG4gICAgICAgICAgc2IuZW1pdFB1c2hCdWZmZXIobm9kZSwgY29tbW9uLnN0cmluZ1RvVUludDI1Nihjb21tb24uR0FTX0FTU0VUX0hBU0gpKTtcbiAgICAgICAgICAvLyBbaXNHQVMsIHZhbHVlXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnRVFVQUwnKTtcbiAgICAgICAgICAvLyBbIWlzR0FTLCB2YWx1ZV1cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ05PVCcpO1xuICAgICAgICAgIC8vIFt2YWx1ZSwgIWlzR0FTXVxuICAgICAgICAgIHNiLmVtaXRPcChub2RlLCAnU1dBUCcpO1xuICAgICAgICAgIC8vIFswLCB2YWx1ZSwgIWlzR0FTXVxuICAgICAgICAgIHNiLmVtaXRQdXNoSW50KG5vZGUsIDApO1xuICAgICAgICAgIC8vIFt2YWx1ZSA+IDAsICFpc0dBU11cbiAgICAgICAgICBzYi5lbWl0T3Aobm9kZSwgJ0dUJyk7XG4gICAgICAgICAgLy8gW3ZhbHVlID4gMCAmJiAhaXNHQVNdXG4gICAgICAgICAgc2IuZW1pdE9wKG5vZGUsICdCT09MQU5EJyk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgaWYgKCFvcHRpb25zSW4ucHVzaFZhbHVlKSB7XG4gICAgICAvLyBbXVxuICAgICAgc2IuZW1pdE9wKG5vZGUsICdEUk9QJyk7XG4gICAgfVxuICB9XG59XG4iXX0=