@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
47 lines (45 loc) • 2.27 kB
JavaScript
;
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