state

package
v0.90.1-pre Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2020 License: MIT Imports: 12 Imported by: 38

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	Version    uint8
	ScriptHash util.Uint160
	IsFrozen   bool
	Balances   map[util.Uint256][]UnspentBalance
}

Account represents the state of a NEO account.

func NewAccount

func NewAccount(scriptHash util.Uint160) *Account

NewAccount returns a new Account object.

func (*Account) DecodeBinary

func (s *Account) DecodeBinary(br *io.BinReader)

DecodeBinary decodes Account from the given BinReader.

func (*Account) EncodeBinary

func (s *Account) EncodeBinary(bw *io.BinWriter)

EncodeBinary encodes Account to the given BinWriter.

func (*Account) GetBalanceValues

func (s *Account) GetBalanceValues() map[util.Uint256]util.Fixed8

GetBalanceValues sums all unspent outputs and returns a map of asset IDs to overall balances.

type AppExecResult

type AppExecResult struct {
	TxHash      util.Uint256
	Trigger     trigger.Type
	VMState     string
	GasConsumed int64
	Stack       []smartcontract.Parameter
	Events      []NotificationEvent
}

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.

type Coin

type Coin uint8

Coin represents the state of a coin.

const (
	CoinConfirmed Coin = 0
	CoinSpent     Coin = 1 << 1
	CoinClaimed   Coin = 1 << 2
	CoinFrozen    Coin = 1 << 5
)

Viable Coin constants.

type Contract

type Contract struct {
	ID       int32
	Script   []byte
	Manifest manifest.Manifest
	// contains filtered or unexported fields
}

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

func (*Contract) DecodeBinary

func (cs *Contract) DecodeBinary(br *io.BinReader)

DecodeBinary implements Serializable interface.

func (*Contract) EncodeBinary

func (cs *Contract) EncodeBinary(bw *io.BinWriter)

EncodeBinary implements Serializable interface.

func (*Contract) HasStorage

func (cs *Contract) HasStorage() bool

HasStorage checks whether the contract has storage property set.

func (*Contract) IsPayable

func (cs *Contract) IsPayable() bool

IsPayable checks whether the contract has payable property set.

func (*Contract) MarshalJSON added in v0.90.0

func (cs *Contract) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*Contract) ScriptHash

func (cs *Contract) ScriptHash() util.Uint160

ScriptHash returns a contract script hash.

func (*Contract) UnmarshalJSON added in v0.90.0

func (cs *Contract) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler.

type NEOBalanceState added in v0.90.0

type NEOBalanceState struct {
	NEP5BalanceState
	BalanceHeight uint32
	Votes         keys.PublicKeys
}

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 NEP5BalanceState added in v0.90.0

type NEP5BalanceState struct {
	Balance big.Int
}

NEP5BalanceState represents balance state of a NEP5-token.

func NEP5BalanceStateFromBytes added in v0.90.0

func NEP5BalanceStateFromBytes(b []byte) (*NEP5BalanceState, error)

NEP5BalanceStateFromBytes converts serialized NEP5BalanceState to structure.

func (*NEP5BalanceState) Bytes added in v0.90.0

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

Bytes returns serialized NEP5BalanceState.

func (*NEP5BalanceState) DecodeBinary added in v0.90.0

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

DecodeBinary implements io.Serializable interface.

func (*NEP5BalanceState) EncodeBinary added in v0.90.0

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

EncodeBinary implements io.Serializable interface.

type NEP5Balances

type NEP5Balances struct {
	Trackers map[util.Uint160]NEP5Tracker
	// NextTransferBatch stores an index of the next transfer batch.
	NextTransferBatch uint32
}

NEP5Balances is a map of the NEP5 contract hashes to the corresponding structures.

func NewNEP5Balances

func NewNEP5Balances() *NEP5Balances

NewNEP5Balances returns new NEP5Balances.

func (*NEP5Balances) DecodeBinary

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

DecodeBinary implements io.Serializable interface.

func (*NEP5Balances) EncodeBinary

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

EncodeBinary implements io.Serializable interface.

type NEP5Tracker

type NEP5Tracker 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 occured.
	LastUpdatedBlock uint32
}

NEP5Tracker contains info about a single account in a NEP5 contract.

func (*NEP5Tracker) DecodeBinary

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

DecodeBinary implements io.Serializable interface.

func (*NEP5Tracker) EncodeBinary

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

EncodeBinary implements io.Serializable interface.

type NEP5Transfer

type NEP5Transfer struct {
	// Asset is a NEP5 contract hash.
	Asset util.Uint160
	// 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 occured.
	Block uint32
	// Timestamp is the timestamp of the block where transfer occured.
	Timestamp uint64
	// Tx is a hash the transaction.
	Tx util.Uint256
}

NEP5Transfer represents a single NEP5 Transfer event.

func (*NEP5Transfer) DecodeBinary

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

DecodeBinary implements io.Serializable interface.

func (*NEP5Transfer) DecodeBinaryReturnCount added in v0.90.0

func (t *NEP5Transfer) DecodeBinaryReturnCount(r *io.BinReader) int

DecodeBinaryReturnCount decodes NEP5Transfer and returns the number of bytes read.

func (*NEP5Transfer) EncodeBinary

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

EncodeBinary implements io.Serializable interface.

type NEP5TransferLog

type NEP5TransferLog struct {
	Raw []byte
	// contains filtered or unexported fields
}

NEP5TransferLog is a log of NEP5 token transfers for the specific command.

func (*NEP5TransferLog) Append

func (lg *NEP5TransferLog) Append(tr *NEP5Transfer) error

Append appends single transfer to a log.

func (*NEP5TransferLog) ForEach

func (lg *NEP5TransferLog) ForEach(f func(*NEP5Transfer) error) error

ForEach iterates over transfer log returning on first error.

func (*NEP5TransferLog) Size

func (lg *NEP5TransferLog) Size() int

Size returns an amount of transfer written in log.

type NotificationEvent

type NotificationEvent struct {
	ScriptHash util.Uint160
	Item       stackitem.Item
}

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.

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 UnspentBalance

type UnspentBalance struct {
	Tx    util.Uint256 `json:"txid"`
	Index uint16       `json:"n"`
	Value util.Fixed8  `json:"value"`
}

UnspentBalance contains input/output transactons that sum up into the account balance for the given asset.

func (*UnspentBalance) DecodeBinary

func (u *UnspentBalance) DecodeBinary(r *io.BinReader)

DecodeBinary implements io.Serializable interface.

func (*UnspentBalance) EncodeBinary

func (u *UnspentBalance) EncodeBinary(w *io.BinWriter)

EncodeBinary implements io.Serializable interface.

type UnspentBalances

type UnspentBalances []UnspentBalance

UnspentBalances is a slice of UnspentBalance (mostly needed to sort them).

func (UnspentBalances) Len

func (us UnspentBalances) Len() int

Len returns the length of UnspentBalances (used to sort things).

func (UnspentBalances) Less

func (us UnspentBalances) Less(i, j int) bool

Less compares two elements of UnspentBalances (used to sort things).

func (UnspentBalances) Swap

func (us UnspentBalances) Swap(i, j int)

Swap swaps two elements of UnspentBalances (used to sort things).

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