Documentation ¶
Index ¶
- Constants
- type ABI
- type Event
- type Group
- type Groups
- type Manifest
- func (m *Manifest) CanCall(hash util.Uint160, toCall *Manifest, method string) bool
- func (m *Manifest) FromStackItem(item stackitem.Item) error
- func (m *Manifest) IsStandardSupported(standard string) bool
- func (m *Manifest) IsValid(hash util.Uint160, checkSize bool) error
- func (m *Manifest) ToStackItem() (stackitem.Item, error)
- type Method
- type Parameter
- type Parameters
- type Permission
- type PermissionDesc
- func (d *PermissionDesc) Equals(v PermissionDesc) bool
- func (d *PermissionDesc) FromStackItem(item stackitem.Item) error
- func (d *PermissionDesc) Group() *keys.PublicKey
- func (d *PermissionDesc) Hash() util.Uint160
- func (d *PermissionDesc) Less(d1 PermissionDesc) bool
- func (d *PermissionDesc) MarshalJSON() ([]byte, error)
- func (d *PermissionDesc) ToStackItem() stackitem.Item
- func (d *PermissionDesc) UnmarshalJSON(data []byte) error
- type PermissionType
- type Permissions
- type WildPermissionDescs
- func (c *WildPermissionDescs) Add(v PermissionDesc)
- func (c *WildPermissionDescs) Contains(v PermissionDesc) bool
- func (c *WildPermissionDescs) IsWildcard() bool
- func (c WildPermissionDescs) MarshalJSON() ([]byte, error)
- func (c *WildPermissionDescs) Restrict()
- func (c *WildPermissionDescs) UnmarshalJSON(data []byte) error
- type WildStrings
Constants ¶
const ( // MethodInit is a name for default initialization method. MethodInit = "_initialize" // MethodDeploy is a name for default method called during contract deployment. MethodDeploy = "_deploy" // MethodVerify is a name for default verification method. MethodVerify = "verify" // MethodOnNEP17Payment is the name of the method which is called when contract receives NEP-17 tokens. MethodOnNEP17Payment = "onNEP17Payment" // MethodOnNEP11Payment is the name of the method which is called when contract receives NEP-11 tokens. MethodOnNEP11Payment = "onNEP11Payment" )
const ( // MaxManifestSize is the max length for a valid contract manifest. MaxManifestSize = math.MaxUint16 // NEP11StandardName represents the name of NEP-11 smartcontract standard. NEP11StandardName = "NEP-11" // NEP17StandardName represents the name of NEP-17 smartcontract standard. NEP17StandardName = "NEP-17" // NEP11Payable represents the name of contract interface which can receive NEP-11 tokens. NEP11Payable = "NEP-11-Payable" // NEP17Payable represents the name of contract interface which can receive NEP-17 tokens. NEP17Payable = "NEP-17-Payable" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ABI ¶
ABI represents a contract application binary interface.
func (*ABI) FromStackItem ¶
FromStackItem converts stackitem.Item to ABI.
func (*ABI) ToStackItem ¶
ToStackItem converts ABI to stackitem.Item.
type Event ¶
Event is a description of a single event.
func (*Event) CheckCompliance ¶
CheckCompliance checks compliance of the given array of items with the current event.
func (*Event) FromStackItem ¶
FromStackItem converts stackitem.Item to Event.
func (*Event) ToStackItem ¶
ToStackItem converts Event to stackitem.Item.
type Group ¶
Group represents a group of smartcontracts identified by a public key. Every SC in a group must provide signature of its hash to prove it belongs to the group.
func (*Group) FromStackItem ¶
FromStackItem converts stackitem.Item to Group.
func (*Group) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface.
func (*Group) ToStackItem ¶
ToStackItem converts Group to stackitem.Item.
func (*Group) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface.
type Groups ¶
type Groups []Group
Groups is just an array of Group.
type Manifest ¶
type Manifest struct { // Name is a contract's name. Name string `json:"name"` // ABI is a contract's ABI. ABI ABI `json:"abi"` // Features is a set of contract features. Currently unused. Features json.RawMessage `json:"features"` // Groups is a set of groups to which a contract belongs. Groups []Group `json:"groups"` Permissions []Permission `json:"permissions"` // SupportedStandards is a list of standards supported by the contract. SupportedStandards []string `json:"supportedstandards"` // Trusts is a set of hashes to a which contract trusts. Trusts WildPermissionDescs `json:"trusts"` // Extra is an implementation-defined user data. Extra json.RawMessage `json:"extra"` }
Manifest represens contract metadata.
func DefaultManifest ¶
DefaultManifest returns the default contract manifest.
func NewManifest ¶
NewManifest returns a new manifest with necessary fields initialized.
func (*Manifest) CanCall ¶
CanCall returns true if the current contract is allowed to call the method of another contract with the specified hash.
func (*Manifest) FromStackItem ¶
FromStackItem converts stackitem.Item to Manifest.
func (*Manifest) IsStandardSupported ¶
IsStandardSupported denotes whether the specified standard is supported by the contract.
type Method ¶
type Method struct { Name string `json:"name"` Offset int `json:"offset"` Parameters []Parameter `json:"parameters"` ReturnType smartcontract.ParamType `json:"returntype"` Safe bool `json:"safe"` }
Method represents method's metadata.
func (*Method) FromStackItem ¶
FromStackItem converts stackitem.Item to Method.
func (*Method) ToStackItem ¶
ToStackItem converts Method to stackitem.Item.
type Parameter ¶
type Parameter struct { Name string `json:"name"` Type smartcontract.ParamType `json:"type"` }
Parameter represents smartcontract's parameter's definition.
func NewParameter ¶
func NewParameter(name string, typ smartcontract.ParamType) Parameter
NewParameter returns a new parameter of the specified name and type.
func (*Parameter) FromStackItem ¶
FromStackItem converts stackitem.Item to Parameter.
func (*Parameter) ToStackItem ¶
ToStackItem converts Parameter to stackitem.Item.
type Parameters ¶
type Parameters []Parameter
Parameters is just an array of Parameter.
func (Parameters) AreValid ¶
func (p Parameters) AreValid() error
AreValid checks all parameters for validity and consistency.
type Permission ¶
type Permission struct { Contract PermissionDesc `json:"contract"` Methods WildStrings `json:"methods"` }
Permission describes which contracts may be invoked and which methods are called.
func NewPermission ¶
func NewPermission(typ PermissionType, args ...any) *Permission
NewPermission returns a new permission of the given type.
func (*Permission) FromStackItem ¶
func (p *Permission) FromStackItem(item stackitem.Item) error
FromStackItem converts stackitem.Item to Permission.
func (*Permission) IsValid ¶
func (p *Permission) IsValid() error
IsValid checks if Permission is correct.
func (*Permission) ToStackItem ¶
func (p *Permission) ToStackItem() stackitem.Item
ToStackItem converts Permission to stackitem.Item.
func (*Permission) UnmarshalJSON ¶
func (p *Permission) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type PermissionDesc ¶
type PermissionDesc struct { Type PermissionType Value any }
PermissionDesc is a permission descriptor.
func (*PermissionDesc) Equals ¶
func (d *PermissionDesc) Equals(v PermissionDesc) bool
Equals returns true if both PermissionDesc values are the same.
func (*PermissionDesc) FromStackItem ¶
func (d *PermissionDesc) FromStackItem(item stackitem.Item) error
FromStackItem converts stackitem.Item to PermissionDesc.
func (*PermissionDesc) Group ¶
func (d *PermissionDesc) Group() *keys.PublicKey
Group returns group's public key for group-permission.
func (*PermissionDesc) Hash ¶
func (d *PermissionDesc) Hash() util.Uint160
Hash returns hash for hash-permission.
func (*PermissionDesc) Less ¶
func (d *PermissionDesc) Less(d1 PermissionDesc) bool
Less returns true if this value is less than the given PermissionDesc value.
func (*PermissionDesc) MarshalJSON ¶
func (d *PermissionDesc) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*PermissionDesc) ToStackItem ¶
func (d *PermissionDesc) ToStackItem() stackitem.Item
ToStackItem converts PermissionDesc to stackitem.Item.
func (*PermissionDesc) UnmarshalJSON ¶
func (d *PermissionDesc) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type PermissionType ¶
type PermissionType uint8
PermissionType represents permission type.
const ( // PermissionWildcard allows everything. PermissionWildcard PermissionType = 0 // PermissionHash restricts called contracts based on hash. PermissionHash PermissionType = 1 // PermissionGroup restricts called contracts based on public key. PermissionGroup PermissionType = 2 )
type Permissions ¶
type Permissions []Permission
Permissions is just an array of Permission.
func (Permissions) AreValid ¶
func (ps Permissions) AreValid() error
AreValid checks each Permission and ensures there are no duplicates.
type WildPermissionDescs ¶
type WildPermissionDescs struct {
Value []PermissionDesc
}
WildPermissionDescs represents a PermissionDescriptor set which can be a wildcard.
func (*WildPermissionDescs) Add ¶
func (c *WildPermissionDescs) Add(v PermissionDesc)
Add adds v to the container.
func (*WildPermissionDescs) Contains ¶
func (c *WildPermissionDescs) Contains(v PermissionDesc) bool
Contains checks if v is in the container.
func (*WildPermissionDescs) IsWildcard ¶
func (c *WildPermissionDescs) IsWildcard() bool
IsWildcard returns true iff the container is a wildcard.
func (WildPermissionDescs) MarshalJSON ¶
func (c WildPermissionDescs) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*WildPermissionDescs) Restrict ¶
func (c *WildPermissionDescs) Restrict()
Restrict transforms the container into an empty one.
func (*WildPermissionDescs) UnmarshalJSON ¶
func (c *WildPermissionDescs) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type WildStrings ¶
type WildStrings struct {
Value []string
}
WildStrings represents a string set which can be a wildcard.
func (*WildStrings) Contains ¶
func (c *WildStrings) Contains(v string) bool
Contains checks if v is in the container.
func (*WildStrings) IsWildcard ¶
func (c *WildStrings) IsWildcard() bool
IsWildcard returns true iff the container is a wildcard.
func (WildStrings) MarshalJSON ¶
func (c WildStrings) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*WildStrings) Restrict ¶
func (c *WildStrings) Restrict()
Restrict transforms the container into an empty one.
func (*WildStrings) UnmarshalJSON ¶
func (c *WildStrings) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package standard contains interfaces for well-defined standards and a function for checking if an arbitrary manifest complies with them.
|
Package standard contains interfaces for well-defined standards and a function for checking if an arbitrary manifest complies with them. |