Documentation
¶
Index ¶
- Constants
- func CreateContractHash(sender util.Uint160, checksum uint32, name string) util.Uint160
- func CreateNativeContractHash(name string) util.Uint160
- type AppExecResult
- func (aer *AppExecResult) DecodeBinary(r *io.BinReader)
- func (aer *AppExecResult) EncodeBinary(w *io.BinWriter)
- func (aer *AppExecResult) EncodeBinaryWithContext(w *io.BinWriter, sc *stackitem.SerializationContext)
- func (aer *AppExecResult) MarshalJSON() ([]byte, error)
- func (aer *AppExecResult) UnmarshalJSON(data []byte) error
- type ContainedNotificationEvent
- type Contract
- type ContractBase
- type ContractInvocation
- func (ci *ContractInvocation) DecodeBinary(r *io.BinReader)
- func (ci *ContractInvocation) EncodeBinary(w *io.BinWriter)
- func (ci *ContractInvocation) EncodeBinaryWithContext(w *io.BinWriter, sc *stackitem.SerializationContext)
- func (ci ContractInvocation) MarshalJSON() ([]byte, error)
- func (ci *ContractInvocation) UnmarshalJSON(data []byte) error
- type Deposit
- type Execution
- type MPTRoot
- type NEOBalance
- type NEP11Transfer
- type NEP17Balance
- type NEP17Transfer
- type NotificationEvent
- func (ne *NotificationEvent) DecodeBinary(r *io.BinReader)
- func (ne *NotificationEvent) EncodeBinary(w *io.BinWriter)
- func (ne *NotificationEvent) EncodeBinaryWithContext(w *io.BinWriter, sc *stackitem.SerializationContext)
- func (ne NotificationEvent) MarshalJSON() ([]byte, error)
- func (ne *NotificationEvent) UnmarshalJSON(data []byte) error
- type OracleRequest
- type StorageItem
- type TokenTransferInfo
- type TokenTransferLog
- func (lg *TokenTransferLog) Append(tr io.Serializable) error
- func (lg *TokenTransferLog) ForEachNEP11(f func(*NEP11Transfer) (bool, error)) (bool, error)
- func (lg *TokenTransferLog) ForEachNEP17(f func(*NEP17Transfer) (bool, error)) (bool, error)
- func (lg *TokenTransferLog) Reset()
- func (lg *TokenTransferLog) Size() int
- type Validator
Constants ¶
const TokenTransferBatchSize = 128
TokenTransferBatchSize is the maximum number of entries for TokenTransferLog.
Variables ¶
This section is empty.
Functions ¶
func CreateContractHash ¶ added in v0.92.0
CreateContractHash creates a deployed contract hash from the transaction sender and the contract script.
func CreateNativeContractHash ¶ added in v0.92.0
CreateNativeContractHash calculates the hash for the native contract with the given name.
Types ¶
type AppExecResult ¶
AppExecResult represents the result of the script execution, gathering together all resulting notifications, state, stack and other metadata.
func (*AppExecResult) DecodeBinary ¶
func (aer *AppExecResult) DecodeBinary(r *io.BinReader)
DecodeBinary implements the Serializable interface.
func (*AppExecResult) EncodeBinary ¶
func (aer *AppExecResult) EncodeBinary(w *io.BinWriter)
EncodeBinary implements the Serializable interface.
func (*AppExecResult) EncodeBinaryWithContext ¶ added in v0.99.0
func (aer *AppExecResult) EncodeBinaryWithContext(w *io.BinWriter, sc *stackitem.SerializationContext)
EncodeBinaryWithContext is the same as EncodeBinary, but allows to efficiently reuse stack item serialization context.
func (*AppExecResult) MarshalJSON ¶ added in v0.92.0
func (aer *AppExecResult) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*AppExecResult) UnmarshalJSON ¶ added in v0.92.0
func (aer *AppExecResult) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type ContainedNotificationEvent ¶ added in v0.99.1
type ContainedNotificationEvent struct { // Container hash is the hash of script container which is either a block or a transaction. Container util.Uint256 NotificationEvent }
ContainedNotificationEvent represents a wrapper for a notification from script execution.
func (*ContainedNotificationEvent) MarshalJSON ¶ added in v0.99.1
func (ne *ContainedNotificationEvent) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*ContainedNotificationEvent) UnmarshalJSON ¶ added in v0.99.1
func (ne *ContainedNotificationEvent) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type Contract ¶
type Contract struct { ContractBase UpdateCounter uint16 `json:"updatecounter"` }
Contract holds information about a smart contract in the Neo blockchain.
func (*Contract) FromStackItem ¶ added in v0.92.0
FromStackItem fills Contract's data from the given stack itemized contract representation.
type ContractBase ¶ added in v0.93.0
type ContractBase struct { ID int32 `json:"id"` Hash util.Uint160 `json:"hash"` NEF nef.File `json:"nef"` Manifest manifest.Manifest `json:"manifest"` }
ContractBase represents a part shared by native and user-deployed contracts.
type ContractInvocation ¶ added in v0.108.0
type ContractInvocation struct { Hash util.Uint160 `json:"contract"` Method string `json:"method"` // Arguments are the arguments as passed to the `args` parameter of System.Contract.Call // for use in the RPC Server and RPC Client. Arguments *stackitem.Array `json:"arguments"` ArgumentsCount uint32 `json:"argumentscount"` Truncated bool `json:"truncated"` // contains filtered or unexported fields }
ContractInvocation contains method call information. The Arguments field will be nil if serialization of the arguments exceeds the predefined limit of stackitem.MaxSerialized (for security reasons). In that case Truncated will be set to true.
func NewContractInvocation ¶ added in v0.108.0
func NewContractInvocation(hash util.Uint160, method string, argBytes []byte, argCnt uint32) *ContractInvocation
NewContractInvocation returns a new ContractInvocation.
func (*ContractInvocation) DecodeBinary ¶ added in v0.108.0
func (ci *ContractInvocation) DecodeBinary(r *io.BinReader)
DecodeBinary implements the Serializable interface.
func (*ContractInvocation) EncodeBinary ¶ added in v0.108.0
func (ci *ContractInvocation) EncodeBinary(w *io.BinWriter)
EncodeBinary implements the Serializable interface.
func (*ContractInvocation) EncodeBinaryWithContext ¶ added in v0.108.0
func (ci *ContractInvocation) EncodeBinaryWithContext(w *io.BinWriter, sc *stackitem.SerializationContext)
EncodeBinaryWithContext is the same as EncodeBinary, but allows to efficiently reuse stack item serialization context.
func (ContractInvocation) MarshalJSON ¶ added in v0.108.0
func (ci ContractInvocation) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*ContractInvocation) UnmarshalJSON ¶ added in v0.108.0
func (ci *ContractInvocation) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type Deposit ¶ added in v0.92.0
Deposit represents GAS deposit from a Notary contract.
func (*Deposit) FromStackItem ¶ added in v0.96.0
FromStackItem implements stackitem.Convertible interface.
type Execution ¶ added in v0.92.0
type Execution struct { Trigger trigger.Type VMState vmstate.State GasConsumed int64 Stack []stackitem.Item Events []NotificationEvent FaultException string Invocations []ContractInvocation }
Execution represents the result of a single script execution, gathering together all resulting notifications, state, stack and other metadata.
func (Execution) MarshalJSON ¶ added in v0.92.0
MarshalJSON implements the json.Marshaler interface.
func (*Execution) UnmarshalJSON ¶ added in v0.92.0
UnmarshalJSON implements the json.Unmarshaler interface.
type MPTRoot ¶ added in v0.76.0
type MPTRoot struct { Version byte `json:"version"` Index uint32 `json:"index"` Root util.Uint256 `json:"roothash"` Witness []transaction.Witness `json:"witnesses"` }
MPTRoot represents the storage state root together with sign info.
func (*MPTRoot) DecodeBinary ¶ added in v0.76.0
DecodeBinary implements io.Serializable.
func (*MPTRoot) DecodeBinaryUnsigned ¶ added in v0.94.0
DecodeBinaryUnsigned decodes the hashable part of the state root.
func (*MPTRoot) EncodeBinary ¶ added in v0.76.0
EncodeBinary implements io.Serializable.
func (*MPTRoot) EncodeBinaryUnsigned ¶ added in v0.94.0
EncodeBinaryUnsigned encodes the hashable part of the state root.
type NEOBalance ¶ added in v0.96.0
type NEOBalance struct { NEP17Balance BalanceHeight uint32 VoteTo *keys.PublicKey LastGasPerVote big.Int }
NEOBalance represents the balance state of a NEO-token.
func NEOBalanceFromBytes ¶ added in v0.96.0
func NEOBalanceFromBytes(b []byte) (*NEOBalance, error)
NEOBalanceFromBytes converts the serialized NEOBalance to a structure.
func (*NEOBalance) Bytes ¶ added in v0.96.0
func (s *NEOBalance) Bytes(sc *stackitem.SerializationContext) []byte
Bytes returns a serialized NEOBalance.
func (*NEOBalance) FromStackItem ¶ added in v0.96.0
func (s *NEOBalance) FromStackItem(item stackitem.Item) error
FromStackItem converts stackitem.Item to NEOBalance.
func (*NEOBalance) ToStackItem ¶ added in v0.96.0
func (s *NEOBalance) ToStackItem() (stackitem.Item, error)
ToStackItem implements stackitem.Convertible interface. It never returns an error.
type NEP11Transfer ¶ added in v0.98.0
type NEP11Transfer struct { NEP17Transfer // ID is a NEP-11 token ID. ID []byte }
NEP11Transfer represents a single NEP-11 Transfer event.
func (*NEP11Transfer) DecodeBinary ¶ added in v0.98.0
func (t *NEP11Transfer) DecodeBinary(r *io.BinReader)
DecodeBinary implements the io.Serializable interface.
func (*NEP11Transfer) EncodeBinary ¶ added in v0.98.0
func (t *NEP11Transfer) EncodeBinary(w *io.BinWriter)
EncodeBinary implements the io.Serializable interface.
type NEP17Balance ¶ added in v0.96.0
NEP17Balance represents the balance state of a NEP-17-token.
func NEP17BalanceFromBytes ¶ added in v0.96.0
func NEP17BalanceFromBytes(b []byte) (*NEP17Balance, error)
NEP17BalanceFromBytes converts the serialized NEP17Balance to a structure.
func (*NEP17Balance) Bytes ¶ added in v0.96.0
func (s *NEP17Balance) Bytes(buf []byte) []byte
Bytes returns serialized NEP17Balance.
func (*NEP17Balance) FromStackItem ¶ added in v0.96.0
func (s *NEP17Balance) FromStackItem(item stackitem.Item) error
FromStackItem implements stackitem.Convertible.
func (*NEP17Balance) ToStackItem ¶ added in v0.96.0
func (s *NEP17Balance) ToStackItem() (stackitem.Item, error)
ToStackItem implements stackitem.Convertible. It never returns an error.
type NEP17Transfer ¶ added in v0.92.0
type NEP17Transfer struct { // Asset is a NEP-17 contract ID. Asset int32 // Counterparty is the address of the sender/receiver (the other side of the transfer). Counterparty util.Uint160 // Amount is the amount of tokens transferred. // It is negative when tokens are sent and positive if they are received. Amount *big.Int // Block is a number of block when the event occurred. Block uint32 // Timestamp is the timestamp of the block where transfer occurred. Timestamp uint64 // Tx is a hash the transaction. Tx util.Uint256 }
NEP17Transfer represents a single NEP-17 Transfer event.
func (*NEP17Transfer) DecodeBinary ¶ added in v0.92.0
func (t *NEP17Transfer) DecodeBinary(r *io.BinReader)
DecodeBinary implements the io.Serializable interface.
func (*NEP17Transfer) EncodeBinary ¶ added in v0.92.0
func (t *NEP17Transfer) EncodeBinary(w *io.BinWriter)
EncodeBinary implements the io.Serializable interface.
type NotificationEvent ¶
type NotificationEvent struct { ScriptHash util.Uint160 `json:"contract"` Name string `json:"eventname"` Item *stackitem.Array `json:"state"` }
NotificationEvent is a tuple of the scripthash that has emitted the Item as a notification and the item itself.
func (*NotificationEvent) DecodeBinary ¶
func (ne *NotificationEvent) DecodeBinary(r *io.BinReader)
DecodeBinary implements the Serializable interface.
func (*NotificationEvent) EncodeBinary ¶
func (ne *NotificationEvent) EncodeBinary(w *io.BinWriter)
EncodeBinary implements the Serializable interface.
func (*NotificationEvent) EncodeBinaryWithContext ¶ added in v0.99.0
func (ne *NotificationEvent) EncodeBinaryWithContext(w *io.BinWriter, sc *stackitem.SerializationContext)
EncodeBinaryWithContext is the same as EncodeBinary, but allows to efficiently reuse stack item serialization context.
func (NotificationEvent) MarshalJSON ¶ added in v0.92.0
func (ne NotificationEvent) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (*NotificationEvent) UnmarshalJSON ¶ added in v0.92.0
func (ne *NotificationEvent) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type OracleRequest ¶ added in v0.92.0
type OracleRequest struct { OriginalTxID util.Uint256 GasForResponse uint64 URL string Filter *string CallbackContract util.Uint160 CallbackMethod string UserData []byte }
OracleRequest represents an oracle request.
func (*OracleRequest) FromStackItem ¶ added in v0.96.0
func (o *OracleRequest) FromStackItem(it stackitem.Item) error
FromStackItem implements stackitem.Convertible interface.
func (*OracleRequest) ToStackItem ¶ added in v0.96.0
func (o *OracleRequest) ToStackItem() (stackitem.Item, error)
ToStackItem implements stackitem.Convertible interface. It never returns an error.
type StorageItem ¶
type StorageItem []byte
StorageItem is the value to be stored with read-only flag.
type TokenTransferInfo ¶ added in v0.98.0
type TokenTransferInfo struct { LastUpdated map[int32]uint32 // NextNEP11Batch stores the index of the next NEP-11 transfer batch. NextNEP11Batch uint32 // NextNEP17Batch stores the index of the next NEP-17 transfer batch. NextNEP17Batch uint32 // NextNEP11NewestTimestamp stores the block timestamp of the first NEP-11 transfer in raw. NextNEP11NewestTimestamp uint64 // NextNEP17NewestTimestamp stores the block timestamp of the first NEP-17 transfer in raw. NextNEP17NewestTimestamp uint64 // NewNEP11Batch is true if batch with the `NextNEP11Batch` index should be created. NewNEP11Batch bool // NewNEP17Batch is true if batch with the `NextNEP17Batch` index should be created. NewNEP17Batch bool }
TokenTransferInfo stores a map of the contract IDs to the balance's last updated block trackers along with the information about NEP-17 and NEP-11 transfer batch.
func NewTokenTransferInfo ¶ added in v0.98.0
func NewTokenTransferInfo() *TokenTransferInfo
NewTokenTransferInfo returns new TokenTransferInfo.
func (*TokenTransferInfo) DecodeBinary ¶ added in v0.98.0
func (bs *TokenTransferInfo) DecodeBinary(r *io.BinReader)
DecodeBinary implements the io.Serializable interface.
func (*TokenTransferInfo) EncodeBinary ¶ added in v0.98.0
func (bs *TokenTransferInfo) EncodeBinary(w *io.BinWriter)
EncodeBinary implements the io.Serializable interface.
type TokenTransferLog ¶ added in v0.98.0
type TokenTransferLog struct { Raw []byte // contains filtered or unexported fields }
TokenTransferLog is a serialized log of token transfers.
func (*TokenTransferLog) Append ¶ added in v0.98.0
func (lg *TokenTransferLog) Append(tr io.Serializable) error
Append appends a single transfer to a log.
func (*TokenTransferLog) ForEachNEP11 ¶ added in v0.98.0
func (lg *TokenTransferLog) ForEachNEP11(f func(*NEP11Transfer) (bool, error)) (bool, error)
ForEachNEP11 iterates over a transfer log returning on the first error.
func (*TokenTransferLog) ForEachNEP17 ¶ added in v0.98.0
func (lg *TokenTransferLog) ForEachNEP17(f func(*NEP17Transfer) (bool, error)) (bool, error)
ForEachNEP17 iterates over a transfer log returning on the first error.
func (*TokenTransferLog) Reset ¶ added in v0.99.1
func (lg *TokenTransferLog) Reset()
Reset resets the state of the log, clearing all entries, but keeping existing buffer for future writes.
func (*TokenTransferLog) Size ¶ added in v0.98.0
func (lg *TokenTransferLog) Size() int
Size returns the amount of the transfer written in the log.