UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

43 lines (41 loc) 1.95 kB
import { Types } from '../../../constants'; import { BuiltinInstanceOf } from '../../BuiltinInstanceOf'; import { BuiltinInterface } from '../../BuiltinInterface'; import { StorageAt, StorageDelete, StorageFor, StorageHas } from '../storage'; import { SetStorageAdd } from './add'; import { SetStorageForEach } from './forEach'; import { SetStorageIterator } from './iterator'; class SetStorageInterface extends BuiltinInterface { } class SetStorageValue extends BuiltinInstanceOf { constructor() { super(...arguments); this.type = 'SetStorageConstructor'; } emitInstanceOf(sb, node, optionsIn) { const options = sb.pushValueOptions(optionsIn); sb.visit(node, options); if (optionsIn.pushValue) { sb.emitHelper(node, options, sb.helpers.isSetStorage); sb.emitHelper(node, options, sb.helpers.wrapBoolean); } else { sb.emitOp(node, 'DROP'); } } } class SetStorageConstructorInterface extends BuiltinInterface { } export const add = (builtins) => { builtins.addContractInterface('SetStorage', new SetStorageInterface()); builtins.addContractValue('SetStorage', new SetStorageValue()); builtins.addContractMember('SetStorage', '__@iterator', new SetStorageIterator()); builtins.addContractMember('SetStorage', 'forEach', new SetStorageForEach()); builtins.addContractMember('SetStorage', 'has', new StorageHas(Types.SetStorage)); builtins.addContractMember('SetStorage', 'delete', new StorageDelete(Types.SetStorage)); builtins.addContractMember('SetStorage', 'add', new SetStorageAdd()); builtins.addContractMember('SetStorage', 'at', new StorageAt(Types.SetStorage)); builtins.addContractInterface('SetStorageConstructor', new SetStorageConstructorInterface()); builtins.addContractMember('SetStorageConstructor', 'for', new StorageFor(Types.SetStorage)); }; //# sourceMappingURL=index.js.map