package management import "github.com/nspcc-dev/neo-go/pkg/interop" // Contract represents a deployed contract. type Contract struct { ID int UpdateCounter int Hash interop.Hash160 NEF []byte Manifest Manifest } // ParameterType represents smartcontract parameter type. type ParameterType byte // Various parameter types. const ( AnyType ParameterType = 0x00 BoolType ParameterType = 0x10 IntegerType ParameterType = 0x11 ByteArrayType ParameterType = 0x12 StringType ParameterType = 0x13 Hash160Type ParameterType = 0x14 Hash256Type ParameterType = 0x15 PublicKeyType ParameterType = 0x16 SignatureType ParameterType = 0x17 ArrayType ParameterType = 0x20 MapType ParameterType = 0x22 InteropInterfaceType ParameterType = 0x30 VoidType ParameterType = 0xff ) // Manifest represents contract's manifest. type Manifest struct { Name string Groups []Group Features map[string]string SupportedStandards []string ABI ABI Permissions []Permission Trusts []interop.Hash160 Extra any } // ABI represents contract's ABI. type ABI struct { Methods []Method Events []Event } // Method represents a contract method. type Method struct { Name string Params []Parameter ReturnType ParameterType Offset int Safe bool } // Event represents a contract event. type Event struct { Name string Params []Parameter } // Parameter represents a method parameter. type Parameter struct { Name string Type ParameterType } // Permission represents contract permission. type Permission struct { Contract interop.Hash160 Methods []string } // Group represents a manifest group. type Group struct { PublicKey interop.PublicKey Signature interop.Signature }