UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

31 lines (29 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RawIteratorReduceHelper = void 0; const Helper_1 = require("../Helper"); class RawIteratorReduceHelper extends Helper_1.Helper { constructor(options) { var _a; super(); this.each = options.each; this.deserializeKey = (_a = options.deserializeKey) !== null && _a !== void 0 ? _a : false; } emit(sb, node, options) { sb.emitHelper(node, options, sb.helpers.rawIteratorReduceBase({ each: (innerOptions) => { sb.emitOp(node, 'OVER'); sb.emitSysCall(node, 'Neo.Enumerator.Value'); sb.emitOp(node, 'ROT'); sb.emitSysCall(node, 'Neo.Iterator.Key'); if (this.deserializeKey) { sb.emitSysCall(node, 'Neo.Runtime.Deserialize'); } sb.emitOp(node, 'ROT'); this.each(innerOptions); }, })); } } exports.RawIteratorReduceHelper = RawIteratorReduceHelper; //# sourceMappingURL=RawIteratorReduceHelper.js.map