state

package
v0.92.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2020 License: MIT Imports: 21 Imported by: 38

Documentation

Index

Constants

View Source
const NEP17TransferBatchSize = 128

NEP17TransferBatchSize is the maximum number of entries for NEP17TransferLog.

Variables

This section is empty.

Functions

func CreateContractHash added in v0.92.0

func CreateContractHash(sender util.Uint160, script []byte) util.Uint160

CreateContractHash creates deployed contract hash from transaction sender and contract script.

func CreateNativeContractHash added in v0.92.0

func CreateNativeContractHash(name string) ([]byte, util.Uint160)

CreateNativeContractHash returns script and hash for the native contract.

Types

type AppExecResult

type AppExecResult struct {
	Container util.Uint256
	Execution
}

AppExecResult represent 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) MarshalJSON added in v0.92.0

func (aer *AppExecResult) MarshalJSON() ([]byte, error)

MarshalJSON implements implements json.Marshaler interface.

func (*AppExecResult) UnmarshalJSON added in v0.92.0

func (aer *AppExecResult) UnmarshalJSON(data []byte) error

UnmarshalJSON implements implements json.Unmarshaler interface.

type Contract

type Contract struct {
	ID            int32             `json:"id"`
	UpdateCounter uint16            `json:"updatecounter"`
	Hash          util.Uint160      `json:"hash"`
	Script        []byte            `json:"script"`
	Manifest      manifest.Manifest `json:"manifest"`
}

Contract holds information about a smart contract in the NEO blockchain.

func (*Contract) DecodeBinary

func (c *Contract) DecodeBinary(r *io.BinReader)

DecodeBinary implements Serializable interface.

func (*Contract) EncodeBinary

func (c *Contract) EncodeBinary(w *io.BinWriter)

EncodeBinary implements Serializable interface.

func (*Contract) FromStackItem added in v0.92.0

func (c *Contract) FromStackItem(item stackitem.Item) error

FromStackItem fills Contract's data from given stack itemized contract representation.

func (*Contract) ToStackItem added in v0.92.0

func (c *Contract) ToStackItem() (stackitem.Item, error)

ToStackItem converts state.Contract to stackitem.Item

type Deposit added in v0.92.0

type Deposit struct {
	Amount *big.Int
	Till   uint32
}

Deposit represents GAS deposit from Notary contract.

func (*Deposit) DecodeBinary added in v0.92.0

func (d *Deposit) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable interface.

func (*Deposit) EncodeBinary added in v0.92.0

func (d *Deposit) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable interface.

type Execution added in v0.92.0

type Execution struct {
	Trigger        trigger.Type
	VMState        vm.State
	GasConsumed    int64
	Stack          []stackitem.Item
	Events         []NotificationEvent
	FaultException string
}

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

func (e Execution) MarshalJSON() ([]byte, error)

MarshalJSON implements implements json.Marshaler interface.

func (*Execution) UnmarshalJSON added in v0.92.0

func (e *Execution) UnmarshalJSON(data []byte) error

UnmarshalJSON implements implements json.Unmarshaler interface.

type MPTRoot added in v0.76.0

type MPTRoot struct {
	MPTRootBase
	Witness *transaction.Witness `json:"witness,omitempty"`
}

MPTRoot represents storage state root together with sign info.

func (*MPTRoot) DecodeBinary added in v0.76.0

func (s *MPTRoot) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable.

func (*MPTRoot) EncodeBinary added in v0.76.0

func (s *MPTRoot) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable.

type MPTRootBase added in v0.76.0

type MPTRootBase struct {
	Version  byte         `json:"version"`
	Index    uint32       `json:"index"`
	PrevHash util.Uint256 `json:"prehash"`
	Root     util.Uint256 `json:"stateroot"`
}

MPTRootBase represents storage state root.

func (*MPTRootBase) DecodeBinary added in v0.76.0

func (s *MPTRootBase) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable.

func (*MPTRootBase) EncodeBinary added in v0.76.0

func (s *MPTRootBase) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable.

func (*MPTRootBase) Equals added in v0.76.0

func (s *MPTRootBase) Equals(other *MPTRootBase) bool

Equals checks if s == other.

func (*MPTRootBase) GetSignedHash added in v0.92.0

func (s *MPTRootBase) GetSignedHash() util.Uint256

GetSignedHash returns hash of MPTRootBase which needs to be signed.

func (*MPTRootBase) GetSignedPart added in v0.76.0

func (s *MPTRootBase) GetSignedPart() []byte

GetSignedPart returns part of MPTRootBase which needs to be signed.

func (*MPTRootBase) Hash added in v0.76.0

func (s *MPTRootBase) Hash() util.Uint256

Hash returns hash of s.

type MPTRootState added in v0.76.0

type MPTRootState struct {
	MPTRoot `json:"stateroot"`
	Flag    MPTRootStateFlag `json:"flag"`
}

MPTRootState represents state root together with its verification state.

func (*MPTRootState) DecodeBinary added in v0.76.0

func (s *MPTRootState) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable.

func (*MPTRootState) EncodeBinary added in v0.76.0

func (s *MPTRootState) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable.

type MPTRootStateFlag added in v0.76.0

type MPTRootStateFlag byte

MPTRootStateFlag represents verification state of the state root.

const (
	Unverified MPTRootStateFlag = 0x00
	Verified   MPTRootStateFlag = 0x01
	Invalid    MPTRootStateFlag = 0x03
)

Possible verification states of MPTRoot.

func (MPTRootStateFlag) MarshalJSON added in v0.76.0

func (f MPTRootStateFlag) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (MPTRootStateFlag) String added in v0.76.0

func (f MPTRootStateFlag) String() string

String implements fmt.Stringer.

func (*MPTRootStateFlag) UnmarshalJSON added in v0.76.0

func (f *MPTRootStateFlag) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NEOBalanceState added in v0.90.0

type NEOBalanceState struct {
	NEP17BalanceState
	BalanceHeight uint32
	VoteTo        *keys.PublicKey
}

NEOBalanceState represents balance state of a NEO-token.

func NEOBalanceStateFromBytes added in v0.90.0

func NEOBalanceStateFromBytes(b []byte) (*NEOBalanceState, error)

NEOBalanceStateFromBytes converts serialized NEOBalanceState to structure.

func (*NEOBalanceState) Bytes added in v0.90.0

func (s *NEOBalanceState) Bytes() []byte

Bytes returns serialized NEOBalanceState.

func (*NEOBalanceState) DecodeBinary added in v0.90.0

func (s *NEOBalanceState) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable interface.

func (*NEOBalanceState) EncodeBinary added in v0.90.0

func (s *NEOBalanceState) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable interface.

type NEP17BalanceState added in v0.92.0

type NEP17BalanceState struct {
	Balance big.Int
}

NEP17BalanceState represents balance state of a NEP17-token.

func NEP17BalanceStateFromBytes added in v0.92.0

func NEP17BalanceStateFromBytes(b []byte) (*NEP17BalanceState, error)

NEP17BalanceStateFromBytes converts serialized NEP17BalanceState to structure.

func (*NEP17BalanceState) Bytes added in v0.92.0

func (s *NEP17BalanceState) Bytes() []byte

Bytes returns serialized NEP17BalanceState.

func (*NEP17BalanceState) DecodeBinary added in v0.92.0

func (s *NEP17BalanceState) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable interface.

func (*NEP17BalanceState) EncodeBinary added in v0.92.0

func (s *NEP17BalanceState) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable interface.

type NEP17Balances added in v0.92.0

type NEP17Balances struct {
	Trackers map[int32]NEP17Tracker
	// NextTransferBatch stores an index of the next transfer batch.
	NextTransferBatch uint32
}

NEP17Balances is a map of the NEP17 contract IDs to the corresponding structures.

func NewNEP17Balances added in v0.92.0

func NewNEP17Balances() *NEP17Balances

NewNEP17Balances returns new NEP17Balances.

func (*NEP17Balances) DecodeBinary added in v0.92.0

func (bs *NEP17Balances) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable interface.

func (*NEP17Balances) EncodeBinary added in v0.92.0

func (bs *NEP17Balances) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable interface.

type NEP17Tracker added in v0.92.0

type NEP17Tracker struct {
	// Balance is the current balance of the account.
	Balance big.Int
	// LastUpdatedBlock is a number of block when last `transfer` to or from the
	// account occurred.
	LastUpdatedBlock uint32
}

NEP17Tracker contains info about a single account in a NEP17 contract.

func (*NEP17Tracker) DecodeBinary added in v0.92.0

func (t *NEP17Tracker) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable interface.

func (*NEP17Tracker) EncodeBinary added in v0.92.0

func (t *NEP17Tracker) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable interface.

type NEP17Transfer added in v0.92.0

type NEP17Transfer struct {
	// Asset is a NEP17 contract ID.
	Asset int32
	// Address is the address of the sender.
	From util.Uint160
	// To is the address of the receiver.
	To 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 NEP17 Transfer event.

func (*NEP17Transfer) DecodeBinary added in v0.92.0

func (t *NEP17Transfer) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable interface.

func (*NEP17Transfer) EncodeBinary added in v0.92.0

func (t *NEP17Transfer) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable interface.

type NEP17TransferLog added in v0.92.0

type NEP17TransferLog struct {
	Raw []byte
}

NEP17TransferLog is a log of NEP17 token transfers for the specific command.

func (*NEP17TransferLog) Append added in v0.92.0

func (lg *NEP17TransferLog) Append(tr *NEP17Transfer) error

Append appends single transfer to a log.

func (*NEP17TransferLog) ForEach added in v0.92.0

func (lg *NEP17TransferLog) ForEach(f func(*NEP17Transfer) (bool, error)) (bool, error)

ForEach iterates over transfer log returning on first error.

func (*NEP17TransferLog) Size added in v0.92.0

func (lg *NEP17TransferLog) Size() int

Size returns an amount of transfer written in log.

type NotificationEvent

type NotificationEvent struct {
	ScriptHash util.Uint160     `json:"contract"`
	Name       string           `json:"eventname"`
	Item       *stackitem.Array `json:"state"`
}

NotificationEvent is a tuple of scripthash that emitted the Item as a notification and that 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) MarshalJSON added in v0.92.0

func (ne NotificationEvent) MarshalJSON() ([]byte, error)

MarshalJSON implements implements json.Marshaler interface.

func (*NotificationEvent) UnmarshalJSON added in v0.92.0

func (ne *NotificationEvent) UnmarshalJSON(data []byte) error

UnmarshalJSON implements 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 oracle request.

func (*OracleRequest) Bytes added in v0.92.0

func (o *OracleRequest) Bytes() []byte

Bytes return o serizalized to a byte-slice.

func (*OracleRequest) DecodeBinary added in v0.92.0

func (o *OracleRequest) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable.

func (*OracleRequest) EncodeBinary added in v0.92.0

func (o *OracleRequest) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable.

type StorageItem

type StorageItem struct {
	Value   []byte
	IsConst bool
}

StorageItem is the value to be stored with read-only flag.

func (*StorageItem) DecodeBinary

func (si *StorageItem) DecodeBinary(r *io.BinReader)

DecodeBinary implements Serializable interface.

func (*StorageItem) EncodeBinary

func (si *StorageItem) EncodeBinary(w *io.BinWriter)

EncodeBinary implements Serializable interface.

type Validator

type Validator struct {
	Key   *keys.PublicKey
	Votes *big.Int
}

Validator holds the state of a validator (its key and votes balance).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL