Documentation
¶
Index ¶
- Constants
- type ABI
- func (a *ABI) FromStackItem(item stackitem.Item) error
- func (a *ABI) GetEvent(name string) *Event
- func (a *ABI) GetMethod(name string, paramCount int) *Method
- func (a *ABI) GetMethodByOffset(offset int) *Method
- func (a *ABI) IsValid() error
- func (a *ABI) ToSCParameter() (smartcontract.Parameter, error)
- func (a *ABI) ToStackItem() stackitem.Item
- type Event
- type Group
- func (g *Group) FromStackItem(item stackitem.Item) error
- func (g *Group) IsValid(h util.Uint160) error
- func (g *Group) MarshalJSON() ([]byte, error)
- func (g *Group) ToSCParameter() (smartcontract.Parameter, error)
- func (g *Group) ToStackItem() stackitem.Item
- func (g *Group) UnmarshalJSON(data []byte) error
- 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) ToSCParameter() (smartcontract.Parameter, error)
- func (m *Manifest) ToStackItem() (stackitem.Item, error)
- type Method
- type Parameter
- type Parameters
- type Permission
- func (p *Permission) FromStackItem(item stackitem.Item) error
- func (p *Permission) IsAllowed(hash util.Uint160, m *Manifest, method string) bool
- func (p *Permission) IsValid() error
- func (p *Permission) ToSCParameter() (smartcontract.Parameter, error)
- func (p *Permission) ToStackItem() stackitem.Item
- func (p *Permission) UnmarshalJSON(data []byte) error
- type PermissionDesc
- func (d PermissionDesc) Compare(d1 PermissionDesc) int
- 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) ToSCParameter() (smartcontract.Parameter, 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" // NEP22StandardName represents the name of NEP-22 smartcontract standard for upgradeable contracts. NEP22StandardName = "NEP-22" // NEP24StandardName represents the name of the NEP-24 smart contract standard for NFT royalties. NEP24StandardName = "NEP-24" // NEP24Payable represents the name of the contract interface for handling royalty payments in accordance // with the NEP-24 standard. NEP24Payable = "NEP-24-Payable" // NEP26StandardName represents the name of NEP-26 smartcontract standard describing onNEP11Payment callback. NEP26StandardName = "NEP-26" // NEP27StandardName represents the name of NEP-27 smartcontract standard describing onNEP17Payment callback. NEP27StandardName = "NEP-27" // NEP29StandardName represents the name of NEP-29 smartcontract standard describing _deploy method specification. NEP29StandardName = "NEP-29" // NEP30StandardName represents the name of NEP-30 smartcontract standard describing verify method specification. NEP30StandardName = "NEP-30" // NEP31StandardName represents the name of NEP-31 smartcontract standard for destroyable contracts. NEP31StandardName = "NEP-31" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ABI ¶
ABI represents a contract application binary interface.
func (*ABI) FromStackItem ¶ added in v0.93.0
FromStackItem converts stackitem.Item to ABI.
func (*ABI) GetMethodByOffset ¶ added in v0.115.0
GetMethodByOffset returns a method by the specified offset.
func (*ABI) ToSCParameter ¶ added in v0.123.0
func (a *ABI) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing ABI. It never returns an error. It implements smartcontract.Convertible interface.
func (*ABI) ToStackItem ¶ added in v0.93.0
ToStackItem converts ABI to stackitem.Item.
type Event ¶
Event is a description of a single event.
func (*Event) CheckCompliance ¶ added in v0.99.4
CheckCompliance checks compliance of the given array of items with the current event.
func (*Event) FromStackItem ¶ added in v0.93.0
FromStackItem converts stackitem.Item to Event.
func (*Event) ToSCParameter ¶ added in v0.123.0
func (e *Event) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing Event. It never returns an error. It implements smartcontract.Convertible interface.
func (*Event) ToStackItem ¶ added in v0.93.0
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 ¶ added in v0.93.0
FromStackItem converts stackitem.Item to Group.
func (*Group) IsValid ¶ added in v0.91.0
IsValid checks whether the group's signature corresponds to the given hash.
func (*Group) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface.
func (*Group) ToSCParameter ¶ added in v0.123.0
func (g *Group) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing Group. It never returns an error. It implements smartcontract.Convertible interface.
func (*Group) ToStackItem ¶ added in v0.93.0
ToStackItem converts Group to stackitem.Item.
func (*Group) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface.
type Groups ¶ added in v0.93.0
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 represents 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 ¶ added in v0.93.0
FromStackItem converts stackitem.Item to Manifest.
func (*Manifest) IsStandardSupported ¶ added in v0.97.1
IsStandardSupported denotes whether the specified standard is supported by the contract.
func (*Manifest) IsValid ¶ added in v0.91.0
IsValid checks manifest internal consistency and correctness, one of the checks is for group signature correctness, contract hash is passed for it. If hash is empty, then hash-related checks are omitted.
func (*Manifest) ToSCParameter ¶ added in v0.123.0
func (m *Manifest) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing Manifest. It never returns an error. It implements smartcontract.Convertible interface.
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 ¶ added in v0.93.0
FromStackItem converts stackitem.Item to Method.
func (*Method) ToSCParameter ¶ added in v0.123.0
func (m *Method) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing Method. It never returns an error. It implements smartcontract.Convertible interface.
func (*Method) ToStackItem ¶ added in v0.93.0
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 ¶ added in v0.93.0
FromStackItem converts stackitem.Item to Parameter.
func (*Parameter) ToSCParameter ¶ added in v0.123.0
func (p *Parameter) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing Parameter. It never returns an error. It implements smartcontract.Convertible interface.
func (*Parameter) ToStackItem ¶ added in v0.93.0
ToStackItem converts Parameter to stackitem.Item.
type Parameters ¶ added in v0.93.0
type Parameters []Parameter
Parameters is just an array of Parameter.
func (Parameters) AreValid ¶ added in v0.93.0
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 ¶ added in v0.93.0
func (p *Permission) FromStackItem(item stackitem.Item) error
FromStackItem converts stackitem.Item to Permission.
func (*Permission) IsValid ¶ added in v0.93.0
func (p *Permission) IsValid() error
IsValid checks if Permission is correct.
func (*Permission) ToSCParameter ¶ added in v0.123.0
func (p *Permission) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing Permission. It never returns an error. It implements smartcontract.Convertible interface.
func (*Permission) ToStackItem ¶ added in v0.93.0
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) Compare ¶ added in v0.107.0
func (d PermissionDesc) Compare(d1 PermissionDesc) int
Compare performs three-way comparison of two PermissionDesc values.
func (*PermissionDesc) Equals ¶ added in v0.95.0
func (d *PermissionDesc) Equals(v PermissionDesc) bool
Equals returns true if both PermissionDesc values are the same.
func (*PermissionDesc) FromStackItem ¶ added in v0.95.0
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 ¶ added in v0.95.0
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) ToSCParameter ¶ added in v0.123.0
func (d *PermissionDesc) ToSCParameter() (smartcontract.Parameter, error)
ToSCParameter creates smartcontract.Parameter representing PermissionDesc. It never returns an error.
func (*PermissionDesc) ToStackItem ¶ added in v0.95.0
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 ¶ added in v0.93.0
type Permissions []Permission
Permissions is just an array of Permission.
func (Permissions) AreValid ¶ added in v0.93.0
func (ps Permissions) AreValid() error
AreValid checks each Permission and ensures there are no duplicates.
type WildPermissionDescs ¶ added in v0.95.0
type WildPermissionDescs struct {
Value []PermissionDesc
Wildcard bool
}
WildPermissionDescs represents a PermissionDescriptor set which can be a wildcard.
func (*WildPermissionDescs) Add ¶ added in v0.95.0
func (c *WildPermissionDescs) Add(v PermissionDesc)
Add adds v to the container and converts container to non-wildcard (if it's still wildcard).
func (*WildPermissionDescs) Contains ¶ added in v0.95.0
func (c *WildPermissionDescs) Contains(v PermissionDesc) bool
Contains checks if v is in the container.
func (*WildPermissionDescs) IsWildcard ¶ added in v0.95.0
func (c *WildPermissionDescs) IsWildcard() bool
IsWildcard returns true iff the container is a wildcard.
func (WildPermissionDescs) MarshalJSON ¶ added in v0.95.0
func (c WildPermissionDescs) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*WildPermissionDescs) Restrict ¶ added in v0.95.0
func (c *WildPermissionDescs) Restrict()
Restrict transforms the container into an empty one.
func (*WildPermissionDescs) UnmarshalJSON ¶ added in v0.95.0
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. |