UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

30 lines (28 loc) 1.65 kB
import { Types } from '../../constants'; import { BuiltinInterface } from '../BuiltinInterface'; import { SysCallInstanceMemberPrimitive } from './SysCallInstanceMemberPrimitive'; import { ValueInstanceOf } from './ValueInstanceOf'; class AttributeBaseInterface extends BuiltinInterface { } class AttributeBaseConstructorInterface extends BuiltinInterface { } class BufferAttributeInterface extends BuiltinInterface { } class PublicKeyAttributeInterface extends BuiltinInterface { } class AddressAttributeInterface extends BuiltinInterface { } class Hash256AttributeInterface extends BuiltinInterface { } export const add = (builtins) => { builtins.addContractInterface('AttributeBase', new AttributeBaseInterface()); builtins.addContractInterface('AttributeBaseConstructor', new AttributeBaseConstructorInterface()); builtins.addContractValue('AttributeBase', new ValueInstanceOf('AttributeConstructor', (sb) => sb.helpers.isAttribute)); builtins.addContractMember('AttributeBase', 'usage', new SysCallInstanceMemberPrimitive('Neo.Attribute.GetUsage', Types.Attribute, Types.Number)); builtins.addContractMember('AttributeBase', 'data', new SysCallInstanceMemberPrimitive('Neo.Attribute.GetData', Types.Attribute, Types.Buffer)); builtins.addContractInterface('BufferAttribute', new BufferAttributeInterface()); builtins.addContractInterface('PublicKeyAttribute', new PublicKeyAttributeInterface()); builtins.addContractInterface('AddressAttribute', new AddressAttributeInterface()); builtins.addContractInterface('Hash256Attribute', new Hash256AttributeInterface()); }; //# sourceMappingURL=attribute.js.map