UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

47 lines (45 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.add = void 0; const constants_1 = require("../../../constants"); const BuiltinInstanceOf_1 = require("../../BuiltinInstanceOf"); const BuiltinInterface_1 = require("../../BuiltinInterface"); const storage_1 = require("../storage"); const get_1 = require("./get"); const iterator_1 = require("./iterator"); const set_1 = require("./set"); class MapStorageInterface extends BuiltinInterface_1.BuiltinInterface { } class MapStorageValue extends BuiltinInstanceOf_1.BuiltinInstanceOf { constructor() { super(...arguments); this.type = 'MapStorageConstructor'; } emitInstanceOf(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.visit(node, options); if (optionsIn.pushValue) { sb.emitHelper(node, options, sb.helpers.isMapStorage); sb.emitHelper(node, options, sb.helpers.wrapBoolean); } else { sb.emitOp(node, 'DROP'); } } } class MapStorageConstructorInterface extends BuiltinInterface_1.BuiltinInterface { } exports.add = (builtins) => { builtins.addContractInterface('MapStorage', new MapStorageInterface()); builtins.addContractValue('MapStorage', new MapStorageValue()); builtins.addContractMember('MapStorage', '__@iterator', new iterator_1.MapStorageIterator()); builtins.addContractMember('MapStorage', 'forEach', new storage_1.StorageForEach(constants_1.Types.MapStorage)); builtins.addContractMember('MapStorage', 'get', new get_1.MapStorageGet()); builtins.addContractMember('MapStorage', 'has', new storage_1.StorageHas(constants_1.Types.MapStorage)); builtins.addContractMember('MapStorage', 'delete', new storage_1.StorageDelete(constants_1.Types.MapStorage)); builtins.addContractMember('MapStorage', 'set', new set_1.MapStorageSet()); builtins.addContractMember('MapStorage', 'at', new storage_1.StorageAt(constants_1.Types.MapStorage)); builtins.addContractInterface('MapStorageConstructor', new MapStorageConstructorInterface()); builtins.addContractMember('MapStorageConstructor', 'for', new storage_1.StorageFor(constants_1.Types.MapStorage)); }; //# sourceMappingURL=index.js.map