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