action

package
v1.2.0-rc0 Latest Latest
Warning

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

Go to latest
Published: May 7, 2021 License: Apache-2.0 Imports: 21 Imported by: 74

Documentation

Index

Constants

View Source
const (
	// CandidateRegisterPayloadGas represents the CandidateRegister payload gas per uint
	CandidateRegisterPayloadGas = uint64(100)
	// CandidateRegisterBaseIntrinsicGas represents the base intrinsic gas for CandidateRegister
	CandidateRegisterBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// EmptyAddress is the empty string
	EmptyAddress = ""
	// ExecutionDataGas represents the execution data gas per uint
	ExecutionDataGas = uint64(100)
	// ExecutionBaseIntrinsicGas represents the base intrinsic gas for execution
	ExecutionBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// BlockReward indicates that the action is to grant block reward
	BlockReward = iota
	// EpochReward indicates that the action is to grant epoch reward
	EpochReward
)
View Source
const (
	// DepositToStakePayloadGas represents the DepositToStake payload gas per uint
	DepositToStakePayloadGas = uint64(100)
	// DepositToStakeBaseIntrinsicGas represents the base intrinsic gas for DepositToStake
	DepositToStakeBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// MoveStakePayloadGas represents the stake move payload gas per uint
	MoveStakePayloadGas = uint64(100)
	// MoveStakeBaseIntrinsicGas represents the base intrinsic gas for stake move
	MoveStakeBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// CreateStakePayloadGas represents the CreateStake payload gas per uint
	CreateStakePayloadGas = uint64(100)
	// CreateStakeBaseIntrinsicGas represents the base intrinsic gas for CreateStake
	CreateStakeBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// ReclaimStakePayloadGas represents the stake reclaim payload gas per uint
	ReclaimStakePayloadGas = uint64(100)
	// ReclaimStakeBaseIntrinsicGas represents the base intrinsic gas for stake reclaim
	ReclaimStakeBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// RestakePayloadGas represents the Restake payload gas per uint
	RestakePayloadGas = uint64(100)
	// RestakeBaseIntrinsicGas represents the base intrinsic gas for stake again
	RestakeBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// TransferPayloadGas represents the transfer payload gas per uint
	TransferPayloadGas = uint64(100)
	// TransferBaseIntrinsicGas represents the base intrinsic gas for transfer
	TransferBaseIntrinsicGas = uint64(10000)
)
View Source
const CandidateUpdateBaseIntrinsicGas = uint64(10000)

CandidateUpdateBaseIntrinsicGas represents the base intrinsic gas for CandidateUpdate

Variables

View Source
var (
	// ClaimFromRewardingFundBaseGas represents the base intrinsic gas for claimFromRewardingFund
	ClaimFromRewardingFundBaseGas = uint64(10000)
	// ClaimFromRewardingFundGasPerByte represents the claimFromRewardingFund payload gas per uint
	ClaimFromRewardingFundGasPerByte = uint64(100)
)
View Source
var (
	// ErrAction indicates error for an action
	ErrAction = errors.New("invalid action")
	// ErrAddress indicates error of address
	ErrAddress = errors.New("invalid address")
	// ErrActPool indicates the error of actpool
	ErrActPool = errors.New("invalid actpool")
	// ErrHitGasLimit is the error when hit gas limit
	ErrHitGasLimit = errors.New("Hit gas limit")
	// ErrInsufficientBalanceForGas is the error that the balance in executor account is lower than gas
	ErrInsufficientBalanceForGas = errors.New("Insufficient balance for gas")
	// ErrOutOfGas is the error when running out of gas
	ErrOutOfGas = errors.New("Out of gas")
	// ErrTransfer indicates the error of transfer
	ErrTransfer = errors.New("invalid transfer")
	// ErrNonce indicates the error of nonce
	ErrNonce = errors.New("invalid nonce")
	// ErrBalance indicates the error of balance
	ErrBalance = errors.New("invalid balance")
	// ErrGasPrice indicates the error of gas price
	ErrGasPrice = errors.New("invalid gas price")
	// ErrVotee indicates the error of votee
	ErrVotee = errors.New("votee is not a candidate")
	// ErrNotFound indicates the nonexistence of action
	ErrNotFound = errors.New("action not found")
)
View Source
var (
	// DepositToRewardingFundBaseGas represents the base intrinsic gas for depositToRewardingFund
	DepositToRewardingFundBaseGas = uint64(10000)
	// DepositToRewardingFundGasPerByte represents the depositToRewardingFund payload gas per uint
	DepositToRewardingFundGasPerByte = uint64(100)
)
View Source
var (
	// StakingBucketPoolTopic is topic for staking bucket pool
	StakingBucketPoolTopic = hash.BytesToHash256(address.StakingProtocolAddrHash[:])

	// RewardingPoolTopic is topic for rewarding pool
	RewardingPoolTopic = hash.BytesToHash256(address.RewardingProtocolAddrHash[:])
)
View Source
var (
	// ErrInvalidAmount represents that amount is 0 or negative
	ErrInvalidAmount = errors.New("invalid amount")
)
View Source
var (
	ErrNotSupported = errors.New("signature type not supported")
)

Errors

Functions

func ClassifyActions

func ClassifyActions(actions []SealedEnvelope) ([]*Transfer, []*Execution)

ClassifyActions classfies actions

func MsgHash added in v1.1.0

func MsgHash(sigType string, msg []byte) ([]byte, error)

MsgHash calculate the hash of msg

func NewConsignJSON added in v1.1.0

func NewConsignJSON(sigType, recipient, sig string, bucketIdx, nonce uint64) ([]byte, error)

NewConsignJSON creates a consignment JSON from inputs

func NewConsignMsg added in v1.1.0

func NewConsignMsg(sigType, recipient string, bucketIdx, nonce uint64) ([]byte, error)

NewConsignMsg creates a consignment message from inputs

func RecoverPubkeyFromEccSig added in v1.1.0

func RecoverPubkeyFromEccSig(sigType string, msg, sig []byte) (crypto.PublicKey, error)

RecoverPubkeyFromEccSig recovers public key from ECC signature

func Verify

func Verify(sealed SealedEnvelope) error

Verify verifies the action using sender's public key

Types

type AbstractAction

type AbstractAction struct {
	// contains filtered or unexported fields
}

AbstractAction is an abstract implementation of Action interface

func (*AbstractAction) BasicActionSize

func (act *AbstractAction) BasicActionSize() uint32

BasicActionSize returns the basic size of action

func (*AbstractAction) GasLimit

func (act *AbstractAction) GasLimit() uint64

GasLimit returns the gas limit

func (*AbstractAction) GasPrice

func (act *AbstractAction) GasPrice() *big.Int

GasPrice returns the gas price

func (*AbstractAction) Nonce

func (act *AbstractAction) Nonce() uint64

Nonce returns the nonce

func (*AbstractAction) SanityCheck added in v1.0.0

func (act *AbstractAction) SanityCheck() error

SanityCheck validates the variables in the action

func (*AbstractAction) SetEnvelopeContext added in v0.4.4

func (act *AbstractAction) SetEnvelopeContext(selp SealedEnvelope)

SetEnvelopeContext sets the SealedEnvelope context to action context.

func (*AbstractAction) Version

func (act *AbstractAction) Version() uint32

Version returns the version

type Action

type Action interface {
	SetEnvelopeContext(SealedEnvelope)
	SanityCheck() error
}

Action is the action can be Executed in protocols. The method is added to avoid mistakenly used empty interface as action.

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

Builder is used to build an action.

func (*Builder) Build

func (b *Builder) Build() AbstractAction

Build builds a new action.

func (*Builder) SetGasLimit

func (b *Builder) SetGasLimit(l uint64) *Builder

SetGasLimit sets action's gas limit.

func (*Builder) SetGasPrice

func (b *Builder) SetGasPrice(p *big.Int) *Builder

SetGasPrice sets action's gas price.

func (*Builder) SetGasPriceByBytes added in v0.4.4

func (b *Builder) SetGasPriceByBytes(buf []byte) *Builder

SetGasPriceByBytes sets action's gas price from a byte slice source.

func (*Builder) SetNonce

func (b *Builder) SetNonce(n uint64) *Builder

SetNonce sets action's nonce.

func (*Builder) SetSourcePublicKey

func (b *Builder) SetSourcePublicKey(key crypto.PublicKey) *Builder

SetSourcePublicKey sets action's source's public key.

func (*Builder) SetVersion

func (b *Builder) SetVersion(v uint32) *Builder

SetVersion sets action's version.

type CandidateRegister added in v0.11.0

type CandidateRegister struct {
	AbstractAction
	// contains filtered or unexported fields
}

CandidateRegister is the action to register a candidate

func NewCandidateRegister added in v0.11.0

func NewCandidateRegister(
	nonce uint64,
	name, operatorAddrStr, rewardAddrStr, ownerAddrStr, amountStr string,
	duration uint32,
	autoStake bool,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*CandidateRegister, error)

NewCandidateRegister creates a CandidateRegister instance

func (*CandidateRegister) Amount added in v0.11.0

func (cr *CandidateRegister) Amount() *big.Int

Amount returns the amount

func (*CandidateRegister) AutoStake added in v0.11.0

func (cr *CandidateRegister) AutoStake() bool

AutoStake returns the if staking is auth stake

func (*CandidateRegister) Cost added in v0.11.0

func (cr *CandidateRegister) Cost() (*big.Int, error)

Cost returns the total cost of a CandidateRegister

func (*CandidateRegister) Duration added in v0.11.0

func (cr *CandidateRegister) Duration() uint32

Duration returns the self-stake duration

func (*CandidateRegister) IntrinsicGas added in v0.11.0

func (cr *CandidateRegister) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a CandidateRegister

func (*CandidateRegister) LoadProto added in v0.11.0

func (cr *CandidateRegister) LoadProto(pbAct *iotextypes.CandidateRegister) error

LoadProto converts a protobuf's Action to CandidateRegister

func (*CandidateRegister) Name added in v0.11.0

func (cr *CandidateRegister) Name() string

Name returns candidate name to register

func (*CandidateRegister) OperatorAddress added in v0.11.0

func (cr *CandidateRegister) OperatorAddress() address.Address

OperatorAddress returns candidate operatorAddress to register

func (*CandidateRegister) OwnerAddress added in v0.11.0

func (cr *CandidateRegister) OwnerAddress() address.Address

OwnerAddress returns candidate ownerAddress to register

func (*CandidateRegister) Payload added in v0.11.0

func (cr *CandidateRegister) Payload() []byte

Payload returns the payload bytes

func (*CandidateRegister) Proto added in v0.11.0

Proto converts to protobuf CandidateRegister Action

func (*CandidateRegister) RewardAddress added in v0.11.0

func (cr *CandidateRegister) RewardAddress() address.Address

RewardAddress returns candidate rewardAddress to register

func (*CandidateRegister) SanityCheck added in v1.0.0

func (cr *CandidateRegister) SanityCheck() error

SanityCheck validates the variables in the action

func (*CandidateRegister) Serialize added in v0.11.0

func (cr *CandidateRegister) Serialize() []byte

Serialize returns a raw byte stream of the CandidateRegister struct

type CandidateUpdate added in v0.11.0

type CandidateUpdate struct {
	AbstractAction
	// contains filtered or unexported fields
}

CandidateUpdate is the action to update a candidate

func NewCandidateUpdate added in v0.11.0

func NewCandidateUpdate(
	nonce uint64,
	name, operatorAddrStr, rewardAddrStr string,
	gasLimit uint64,
	gasPrice *big.Int,
) (*CandidateUpdate, error)

NewCandidateUpdate creates a CandidateUpdate instance

func (*CandidateUpdate) Cost added in v0.11.0

func (cu *CandidateUpdate) Cost() (*big.Int, error)

Cost returns the total cost of a CandidateUpdate

func (*CandidateUpdate) IntrinsicGas added in v0.11.0

func (cu *CandidateUpdate) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a CandidateUpdate

func (*CandidateUpdate) LoadProto added in v0.11.0

func (cu *CandidateUpdate) LoadProto(pbAct *iotextypes.CandidateBasicInfo) error

LoadProto converts a protobuf's Action to CandidateUpdate

func (*CandidateUpdate) Name added in v0.11.0

func (cu *CandidateUpdate) Name() string

Name returns candidate name to update

func (*CandidateUpdate) OperatorAddress added in v0.11.0

func (cu *CandidateUpdate) OperatorAddress() address.Address

OperatorAddress returns candidate operatorAddress to update

func (*CandidateUpdate) Proto added in v0.11.0

Proto converts to protobuf CandidateUpdate Action

func (*CandidateUpdate) RewardAddress added in v0.11.0

func (cu *CandidateUpdate) RewardAddress() address.Address

RewardAddress returns candidate rewardAddress to update

func (*CandidateUpdate) Serialize added in v0.11.0

func (cu *CandidateUpdate) Serialize() []byte

Serialize returns a raw byte stream of the CandidateUpdate struct

type ChangeCandidate added in v0.11.0

type ChangeCandidate struct {
	AbstractAction
	// contains filtered or unexported fields
}

ChangeCandidate defines the action of changing stake candidate ts the other

func NewChangeCandidate added in v0.11.0

func NewChangeCandidate(
	nonce uint64,
	candName string,
	bucketIndex uint64,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*ChangeCandidate, error)

NewChangeCandidate returns a ChangeCandidate instance

func (*ChangeCandidate) BucketIndex added in v0.11.0

func (cc *ChangeCandidate) BucketIndex() uint64

BucketIndex returns bucket index

func (*ChangeCandidate) Candidate added in v0.11.0

func (cc *ChangeCandidate) Candidate() string

Candidate returns the address of recipient

func (*ChangeCandidate) Cost added in v0.11.0

func (cc *ChangeCandidate) Cost() (*big.Int, error)

Cost returns the tstal cost of a ChangeCandidate

func (*ChangeCandidate) IntrinsicGas added in v0.11.0

func (cc *ChangeCandidate) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a ChangeCandidate

func (*ChangeCandidate) LoadProto added in v0.11.0

func (cc *ChangeCandidate) LoadProto(pbAct *iotextypes.StakeChangeCandidate) error

LoadProto loads change candidate from protobuf

func (*ChangeCandidate) Payload added in v0.11.0

func (cc *ChangeCandidate) Payload() []byte

Payload returns the payload bytes

func (*ChangeCandidate) Proto added in v0.11.0

Proto converts change candidate to protobuf

func (*ChangeCandidate) Serialize added in v0.11.0

func (cc *ChangeCandidate) Serialize() []byte

Serialize returns a raw byte stream of the stake move action struct

type ClaimFromRewardingFund added in v0.5.0

type ClaimFromRewardingFund struct {
	AbstractAction
	// contains filtered or unexported fields
}

ClaimFromRewardingFund is the action to claim reward from the rewarding fund

func (*ClaimFromRewardingFund) Amount added in v0.5.0

func (c *ClaimFromRewardingFund) Amount() *big.Int

Amount returns the amount to claim

func (*ClaimFromRewardingFund) Cost added in v0.5.0

func (c *ClaimFromRewardingFund) Cost() (*big.Int, error)

Cost returns the total cost of a claim action

func (*ClaimFromRewardingFund) Data added in v0.5.0

func (c *ClaimFromRewardingFund) Data() []byte

Data returns the additional data

func (*ClaimFromRewardingFund) IntrinsicGas added in v0.5.0

func (c *ClaimFromRewardingFund) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a claim action

func (*ClaimFromRewardingFund) LoadProto added in v0.5.0

LoadProto converts a claim action protobuf to a claim action struct

func (*ClaimFromRewardingFund) Proto added in v0.5.0

Proto converts a claim action struct to a claim action protobuf

func (*ClaimFromRewardingFund) SanityCheck added in v1.0.0

func (c *ClaimFromRewardingFund) SanityCheck() error

SanityCheck validates the variables in the action

func (*ClaimFromRewardingFund) Serialize added in v0.7.1

func (c *ClaimFromRewardingFund) Serialize() []byte

Serialize returns a raw byte stream of a claim action

type ClaimFromRewardingFundBuilder added in v0.5.0

type ClaimFromRewardingFundBuilder struct {
	Builder
	// contains filtered or unexported fields
}

ClaimFromRewardingFundBuilder is the struct to build ClaimFromRewardingFund

func (*ClaimFromRewardingFundBuilder) Build added in v0.5.0

Build builds a new claim from rewarding fund action

func (*ClaimFromRewardingFundBuilder) SetAmount added in v0.5.0

SetAmount sets the amount to claim

func (*ClaimFromRewardingFundBuilder) SetData added in v0.5.0

SetData sets the additional data

type ConsignJSON added in v1.1.0

type ConsignJSON struct {
	Type string `json:"type"`
	Msg  string `json:"msg"`
	Sig  string `json:"sig"`
}

ConsignJSON is the JSON format of a consignment, it contains the type, message, and signature

type ConsignMsgEther added in v1.1.0

type ConsignMsgEther struct {
	BucketIdx int    `json:"bucket"`
	Nonce     int    `json:"nonce"`
	Recipient string `json:"recipient"`
	Reclaim   string `json:"reclaim"`
}

ConsignMsgEther is the consignment message format of Ethereum

type Consignment added in v1.1.0

type Consignment interface {
	Transferor() address.Address
	Transferee() address.Address
	AssetID() uint64
	TransfereeNonce() uint64
}

Consignment represents a consignment

func NewConsignment added in v1.1.0

func NewConsignment(data []byte) (Consignment, error)

NewConsignment creates a consignment from data

type CreateStake added in v0.11.0

type CreateStake struct {
	AbstractAction
	// contains filtered or unexported fields
}

CreateStake defines the action of CreateStake creation

func NewCreateStake added in v0.11.0

func NewCreateStake(
	nonce uint64,
	candidateName, amount string,
	duration uint32,
	autoStake bool,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*CreateStake, error)

NewCreateStake returns a CreateStake instance

func (*CreateStake) Amount added in v0.11.0

func (cs *CreateStake) Amount() *big.Int

Amount returns the amount

func (*CreateStake) AutoStake added in v0.11.0

func (cs *CreateStake) AutoStake() bool

AutoStake returns the flag of AutoStake s

func (*CreateStake) Candidate added in v0.11.0

func (cs *CreateStake) Candidate() string

Candidate returns the candidate name

func (*CreateStake) Cost added in v0.11.0

func (cs *CreateStake) Cost() (*big.Int, error)

Cost returns the total cost of a CreateStake

func (*CreateStake) Duration added in v0.11.0

func (cs *CreateStake) Duration() uint32

Duration returns the CreateStaked duration

func (*CreateStake) IntrinsicGas added in v0.11.0

func (cs *CreateStake) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a CreateStake

func (*CreateStake) LoadProto added in v0.11.0

func (cs *CreateStake) LoadProto(pbAct *iotextypes.StakeCreate) error

LoadProto converts a protobuf's Action to CreateStake

func (*CreateStake) Payload added in v0.11.0

func (cs *CreateStake) Payload() []byte

Payload returns the payload bytes

func (*CreateStake) Proto added in v0.11.0

func (cs *CreateStake) Proto() *iotextypes.StakeCreate

Proto converts to protobuf CreateStake Action

func (*CreateStake) SanityCheck added in v1.0.0

func (cs *CreateStake) SanityCheck() error

SanityCheck validates the variables in the action

func (*CreateStake) Serialize added in v0.11.0

func (cs *CreateStake) Serialize() []byte

Serialize returns a raw byte stream of the CreateStake struct

type DepositToRewardingFund added in v0.5.0

type DepositToRewardingFund struct {
	AbstractAction
	// contains filtered or unexported fields
}

DepositToRewardingFund is the action to deposit to the rewarding fund

func (*DepositToRewardingFund) Amount added in v0.5.0

func (d *DepositToRewardingFund) Amount() *big.Int

Amount returns the amount to deposit

func (*DepositToRewardingFund) Cost added in v0.5.0

func (d *DepositToRewardingFund) Cost() (*big.Int, error)

Cost returns the total cost of a deposit action

func (*DepositToRewardingFund) Data added in v0.5.0

func (d *DepositToRewardingFund) Data() []byte

Data returns the additional data

func (*DepositToRewardingFund) IntrinsicGas added in v0.5.0

func (d *DepositToRewardingFund) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a deposit action

func (*DepositToRewardingFund) LoadProto added in v0.5.0

LoadProto converts a deposit action protobuf to a deposit action struct

func (*DepositToRewardingFund) Proto added in v0.5.0

Proto converts a deposit action struct to a deposit action protobuf

func (*DepositToRewardingFund) SanityCheck added in v1.0.0

func (d *DepositToRewardingFund) SanityCheck() error

SanityCheck validates the variables in the action

func (*DepositToRewardingFund) Serialize added in v0.7.1

func (d *DepositToRewardingFund) Serialize() []byte

Serialize returns a raw byte stream of a deposit action

type DepositToRewardingFundBuilder added in v0.5.0

type DepositToRewardingFundBuilder struct {
	Builder
	// contains filtered or unexported fields
}

DepositToRewardingFundBuilder is the struct to build DepositToRewardingFund

func (*DepositToRewardingFundBuilder) Build added in v0.5.0

Build builds a new deposit to rewarding fund action

func (*DepositToRewardingFundBuilder) SetAmount added in v0.5.0

SetAmount sets the amount to deposit

func (*DepositToRewardingFundBuilder) SetData added in v0.5.0

SetData sets the additional data

type DepositToStake added in v0.11.0

type DepositToStake struct {
	AbstractAction
	// contains filtered or unexported fields
}

DepositToStake defines the action of stake add deposit

func NewDepositToStake added in v0.11.0

func NewDepositToStake(
	nonce uint64,
	index uint64,
	amount string,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*DepositToStake, error)

NewDepositToStake returns a DepositToStake instance

func (*DepositToStake) Amount added in v0.11.0

func (ds *DepositToStake) Amount() *big.Int

Amount returns the amount

func (*DepositToStake) BucketIndex added in v0.11.0

func (ds *DepositToStake) BucketIndex() uint64

BucketIndex returns bucket indexs

func (*DepositToStake) Cost added in v0.11.0

func (ds *DepositToStake) Cost() (*big.Int, error)

Cost returns the total cost of a DepositToStake

func (*DepositToStake) IntrinsicGas added in v0.11.0

func (ds *DepositToStake) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a DepositToStake

func (*DepositToStake) LoadProto added in v0.11.0

func (ds *DepositToStake) LoadProto(pbAct *iotextypes.StakeAddDeposit) error

LoadProto converts a protobuf's Action to DepositToStake

func (*DepositToStake) Payload added in v0.11.0

func (ds *DepositToStake) Payload() []byte

Payload returns the payload bytes

func (*DepositToStake) Proto added in v0.11.0

Proto converts to protobuf DepositToStake Action

func (*DepositToStake) SanityCheck added in v1.0.0

func (ds *DepositToStake) SanityCheck() error

SanityCheck validates the variables in the action

func (*DepositToStake) Serialize added in v0.11.0

func (ds *DepositToStake) Serialize() []byte

Serialize returns a raw byte stream of the Stake Create struct

type Envelope added in v0.4.4

type Envelope interface {
	Version() uint32
	Nonce() uint64
	GasLimit() uint64
	GasPrice() *big.Int
	Destination() (string, bool)
	Cost() (*big.Int, error)
	IntrinsicGas() (uint64, error)
	Action() Action
	Proto() *iotextypes.ActionCore
	LoadProto(pbAct *iotextypes.ActionCore) error
	SetNonce(n uint64)
}

Envelope defines an envelope wrapped on action with some envelope metadata.

type EnvelopeBuilder added in v0.4.4

type EnvelopeBuilder struct {
	// contains filtered or unexported fields
}

EnvelopeBuilder is the builder to build Envelope.

func (*EnvelopeBuilder) Build added in v0.4.4

func (b *EnvelopeBuilder) Build() Envelope

Build builds a new action.

func (*EnvelopeBuilder) SetAction added in v0.4.4

func (b *EnvelopeBuilder) SetAction(action actionPayload) *EnvelopeBuilder

SetAction sets the action payload for the Envelope Builder is building.

func (*EnvelopeBuilder) SetGasLimit added in v0.4.4

func (b *EnvelopeBuilder) SetGasLimit(l uint64) *EnvelopeBuilder

SetGasLimit sets action's gas limit.

func (*EnvelopeBuilder) SetGasPrice added in v0.4.4

func (b *EnvelopeBuilder) SetGasPrice(p *big.Int) *EnvelopeBuilder

SetGasPrice sets action's gas price.

func (*EnvelopeBuilder) SetGasPriceByBytes added in v0.4.4

func (b *EnvelopeBuilder) SetGasPriceByBytes(buf []byte) *EnvelopeBuilder

SetGasPriceByBytes sets action's gas price from a byte slice source.

func (*EnvelopeBuilder) SetNonce added in v0.4.4

func (b *EnvelopeBuilder) SetNonce(n uint64) *EnvelopeBuilder

SetNonce sets action's nonce.

func (*EnvelopeBuilder) SetVersion added in v0.4.4

func (b *EnvelopeBuilder) SetVersion(v uint32) *EnvelopeBuilder

SetVersion sets action's version.

type Execution

type Execution struct {
	AbstractAction
	// contains filtered or unexported fields
}

Execution defines the struct of account-based contract execution

func NewExecution

func NewExecution(
	contractAddress string,
	nonce uint64,
	amount *big.Int,
	gasLimit uint64,
	gasPrice *big.Int,
	data []byte,
) (*Execution, error)

NewExecution returns a Execution instance

func (*Execution) Amount

func (ex *Execution) Amount() *big.Int

Amount returns the amount

func (*Execution) Contract

func (ex *Execution) Contract() string

Contract returns a contract address

func (*Execution) Cost

func (ex *Execution) Cost() (*big.Int, error)

Cost returns the cost of an execution

func (*Execution) Data

func (ex *Execution) Data() []byte

Data returns the data bytes

func (*Execution) Destination added in v0.5.0

func (ex *Execution) Destination() string

Destination returns a contract address

func (*Execution) IntrinsicGas

func (ex *Execution) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of an execution

func (*Execution) LoadProto

func (ex *Execution) LoadProto(pbAct *iotextypes.Execution) error

LoadProto converts a protobuf's Execution to Execution

func (*Execution) Payload added in v1.2.0

func (ex *Execution) Payload() []byte

Payload is same as Data()

func (*Execution) Proto

func (ex *Execution) Proto() *iotextypes.Execution

Proto converts Execution to protobuf's Execution

func (*Execution) Recipient added in v1.2.0

func (ex *Execution) Recipient() string

Recipient is same as Contract()

func (*Execution) SanityCheck added in v1.0.0

func (ex *Execution) SanityCheck() error

SanityCheck validates the variables in the action

func (*Execution) Serialize

func (ex *Execution) Serialize() []byte

Serialize returns a raw byte stream of this Transfer

func (*Execution) TotalSize

func (ex *Execution) TotalSize() uint32

TotalSize returns the total size of this Execution

type GrantReward added in v0.5.0

type GrantReward struct {
	AbstractAction
	// contains filtered or unexported fields
}

GrantReward is the action to grant either block or epoch reward

func (*GrantReward) Cost added in v0.5.0

func (*GrantReward) Cost() (*big.Int, error)

Cost returns the total cost of a grant reward action

func (*GrantReward) Height added in v0.5.0

func (g *GrantReward) Height() uint64

Height returns the block height to grant reward

func (*GrantReward) IntrinsicGas added in v0.5.0

func (*GrantReward) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a grant reward action, which is 0

func (*GrantReward) LoadProto added in v0.5.0

func (g *GrantReward) LoadProto(gProto *iotextypes.GrantReward) error

LoadProto converts a grant reward action protobuf to a grant reward action struct

func (*GrantReward) Proto added in v0.5.0

func (g *GrantReward) Proto() *iotextypes.GrantReward

Proto converts a grant reward action struct to a grant reward action protobuf

func (*GrantReward) RewardType added in v0.5.0

func (g *GrantReward) RewardType() int

RewardType returns the grant reward type

func (*GrantReward) Serialize added in v0.7.1

func (g *GrantReward) Serialize() []byte

Serialize returns a raw byte stream of a grant reward action

type GrantRewardBuilder added in v0.5.0

type GrantRewardBuilder struct {
	Builder
	// contains filtered or unexported fields
}

GrantRewardBuilder is the struct to build GrantReward

func (*GrantRewardBuilder) Build added in v0.5.0

func (b *GrantRewardBuilder) Build() GrantReward

Build builds a new grant reward action

func (*GrantRewardBuilder) SetHeight added in v0.5.0

func (b *GrantRewardBuilder) SetHeight(height uint64) *GrantRewardBuilder

SetHeight sets the grant reward block height

func (*GrantRewardBuilder) SetRewardType added in v0.5.0

func (b *GrantRewardBuilder) SetRewardType(t int) *GrantRewardBuilder

SetRewardType sets the grant reward type

type Log

type Log struct {
	Address            string
	Topics             Topics
	Data               []byte
	BlockHeight        uint64
	ActionHash         hash.Hash256
	Index              uint
	NotFixTopicCopyBug bool
}

Log stores an evm contract event

func (*Log) ConvertFromLogPb

func (log *Log) ConvertFromLogPb(pbLog *iotextypes.Log)

ConvertFromLogPb converts a protobuf's LogPb to Log

func (*Log) ConvertToLogPb

func (log *Log) ConvertToLogPb() *iotextypes.Log

ConvertToLogPb converts a Log to protobuf's Log

func (*Log) Deserialize

func (log *Log) Deserialize(buf []byte) error

Deserialize parse the byte stream into Log

func (*Log) Serialize

func (log *Log) Serialize() ([]byte, error)

Serialize returns a serialized byte stream for the Log

type PutPollResult added in v0.5.0

type PutPollResult struct {
	AbstractAction
	// contains filtered or unexported fields
}

PutPollResult represents put the poll result from gravity chain.

func NewPutPollResult added in v0.5.0

func NewPutPollResult(
	nonce uint64,
	height uint64,
	candidates state.CandidateList,
) *PutPollResult

NewPutPollResult instantiates a putting poll result action struct.

func (*PutPollResult) Candidates added in v0.5.0

func (r *PutPollResult) Candidates() state.CandidateList

Candidates returns the list of candidates.

func (*PutPollResult) Cost added in v0.5.0

func (r *PutPollResult) Cost() (*big.Int, error)

Cost returns the total cost of a put poll result action

func (*PutPollResult) Height added in v0.5.0

func (r *PutPollResult) Height() uint64

Height returns put poll result height.

func (*PutPollResult) IntrinsicGas added in v0.5.0

func (r *PutPollResult) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a put poll result action

func (*PutPollResult) LoadProto added in v0.5.0

func (r *PutPollResult) LoadProto(putPollResultPb *iotextypes.PutPollResult) error

LoadProto converts a proto message into put block action.

func (*PutPollResult) Proto added in v0.5.0

Proto converts put poll result action into a proto message.

func (*PutPollResult) Serialize added in v0.7.1

func (r *PutPollResult) Serialize() []byte

Serialize returns the byte representation of put poll result action.

type Receipt

type Receipt struct {
	Status          uint64
	BlockHeight     uint64
	ActionHash      hash.Hash256
	GasConsumed     uint64
	ContractAddress string
	// contains filtered or unexported fields
}

Receipt represents the result of a contract

func (*Receipt) AddLogs added in v1.1.0

func (receipt *Receipt) AddLogs(logs ...*Log) *Receipt

AddLogs add log to receipt and filter out nil log.

func (*Receipt) AddTransactionLogs added in v1.1.0

func (receipt *Receipt) AddTransactionLogs(logs ...*TransactionLog) *Receipt

AddTransactionLogs add transaction logs to receipt and filter out nil log.

func (*Receipt) ConvertFromReceiptPb

func (receipt *Receipt) ConvertFromReceiptPb(pbReceipt *iotextypes.Receipt)

ConvertFromReceiptPb converts a protobuf's Receipt to Receipt

func (*Receipt) ConvertToReceiptPb

func (receipt *Receipt) ConvertToReceiptPb() *iotextypes.Receipt

ConvertToReceiptPb converts a Receipt to protobuf's Receipt

func (*Receipt) Deserialize

func (receipt *Receipt) Deserialize(buf []byte) error

Deserialize parse the byte stream into Receipt

func (*Receipt) ExecutionRevertMsg added in v1.1.4

func (receipt *Receipt) ExecutionRevertMsg() string

ExecutionRevertMsg returns the list of execution revert error logs stored in receipt.

func (*Receipt) Hash

func (receipt *Receipt) Hash() hash.Hash256

Hash returns the hash of receipt

func (*Receipt) Logs

func (receipt *Receipt) Logs() []*Log

Logs returns the list of logs stored in receipt

func (*Receipt) Serialize

func (receipt *Receipt) Serialize() ([]byte, error)

Serialize returns a serialized byte stream for the Receipt

func (*Receipt) SetExecutionRevertMsg added in v1.1.4

func (receipt *Receipt) SetExecutionRevertMsg(revertReason string) *Receipt

SetExecutionRevertMsg sets executionerrorlogs to receipt.

func (*Receipt) TransactionLogs added in v1.1.0

func (receipt *Receipt) TransactionLogs() []*TransactionLog

TransactionLogs returns the list of transaction logs stored in receipt

type Restake added in v0.11.0

type Restake struct {
	AbstractAction
	// contains filtered or unexported fields
}

Restake defines the action of stake again

func NewRestake added in v0.11.0

func NewRestake(
	nonce uint64,
	index uint64,
	duration uint32,
	autoStake bool,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*Restake, error)

NewRestake returns a Restake instance

func (*Restake) AutoStake added in v0.11.0

func (rs *Restake) AutoStake() bool

AutoStake returns the autoStake boolean

func (*Restake) BucketIndex added in v0.11.0

func (rs *Restake) BucketIndex() uint64

BucketIndex returns bucket index

func (*Restake) Cost added in v0.11.0

func (rs *Restake) Cost() (*big.Int, error)

Cost returns the total cost of a Restake

func (*Restake) Duration added in v0.11.0

func (rs *Restake) Duration() uint32

Duration returns the updated duration

func (*Restake) IntrinsicGas added in v0.11.0

func (rs *Restake) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a Restake

func (*Restake) LoadProto added in v0.11.0

func (rs *Restake) LoadProto(pbAct *iotextypes.StakeRestake) error

LoadProto converts a protobuf's Action to Restake

func (*Restake) Payload added in v0.11.0

func (rs *Restake) Payload() []byte

Payload returns the payload bytes

func (*Restake) Proto added in v0.11.0

func (rs *Restake) Proto() *iotextypes.StakeRestake

Proto converts to protobuf Restake Action

func (*Restake) Serialize added in v0.11.0

func (rs *Restake) Serialize() []byte

Serialize returns a raw byte stream of the Stake again struct

type SealedEnvelope added in v0.4.4

type SealedEnvelope struct {
	Envelope
	// contains filtered or unexported fields
}

SealedEnvelope is a signed action envelope.

func AssembleSealedEnvelope added in v0.4.4

func AssembleSealedEnvelope(act Envelope, pk crypto.PublicKey, sig []byte) SealedEnvelope

AssembleSealedEnvelope assembles a SealedEnvelope use Envelope, Sender Address and Signature. This method should be only used in tests.

func FakeSeal added in v0.4.4

func FakeSeal(act Envelope, pubk crypto.PublicKey) SealedEnvelope

FakeSeal creates a SealedActionEnvelope without signature. This method should be only used in tests.

func Sign

Sign signs the action using sender's private key

func (*SealedEnvelope) Encoding added in v1.2.0

func (sealed *SealedEnvelope) Encoding() uint32

Encoding returns the encoding

func (*SealedEnvelope) Hash added in v0.4.4

func (sealed *SealedEnvelope) Hash() hash.Hash256

Hash returns the hash value of SealedEnvelope. an all-0 return value means the transaction is invalid

func (*SealedEnvelope) LoadProto added in v0.4.4

func (sealed *SealedEnvelope) LoadProto(pbAct *iotextypes.Action) error

LoadProto loads from proto scheme.

func (*SealedEnvelope) Proto added in v0.4.4

func (sealed *SealedEnvelope) Proto() *iotextypes.Action

Proto converts it to it's proto scheme.

func (*SealedEnvelope) Signature added in v0.4.4

func (sealed *SealedEnvelope) Signature() []byte

Signature returns signature bytes

func (*SealedEnvelope) SrcPubkey added in v0.4.4

func (sealed *SealedEnvelope) SrcPubkey() crypto.PublicKey

SrcPubkey returns the source public key

type SealedEnvelopeValidator added in v0.11.0

type SealedEnvelopeValidator interface {
	// Validate returns an error if any validation failed
	Validate(context.Context, SealedEnvelope) error
}

SealedEnvelopeValidator is the interface of validating an SealedEnvelope action

type Topics added in v1.0.0

type Topics []hash.Hash256

Topics are data items of a transaction, such as send/recipient address

type TransactionLog added in v1.1.0

type TransactionLog struct {
	Type      iotextypes.TransactionLogType
	Amount    *big.Int
	Sender    string
	Recipient string
}

TransactionLog stores a transaction event

type Transfer

type Transfer struct {
	AbstractAction
	// contains filtered or unexported fields
}

Transfer defines the struct of account-based transfer

func NewTransfer

func NewTransfer(
	nonce uint64,
	amount *big.Int,
	recipient string,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*Transfer, error)

NewTransfer returns a Transfer instance

func (*Transfer) Amount

func (tsf *Transfer) Amount() *big.Int

Amount returns the amount

func (*Transfer) Cost

func (tsf *Transfer) Cost() (*big.Int, error)

Cost returns the total cost of a transfer

func (*Transfer) Destination added in v0.5.0

func (tsf *Transfer) Destination() string

Destination returns the recipient address as destination.

func (*Transfer) IntrinsicGas

func (tsf *Transfer) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a transfer

func (*Transfer) LoadProto

func (tsf *Transfer) LoadProto(pbAct *iotextypes.Transfer) error

LoadProto converts a protobuf's Action to Transfer

func (*Transfer) Payload

func (tsf *Transfer) Payload() []byte

Payload returns the payload bytes

func (*Transfer) Proto

func (tsf *Transfer) Proto() *iotextypes.Transfer

Proto converts Transfer to protobuf's Action

func (*Transfer) Recipient

func (tsf *Transfer) Recipient() string

Recipient returns the recipient address. It's the wrapper of Action.DstAddr

func (*Transfer) SanityCheck added in v1.0.0

func (tsf *Transfer) SanityCheck() error

SanityCheck validates the variables in the action

func (*Transfer) Serialize

func (tsf *Transfer) Serialize() []byte

Serialize returns a raw byte stream of this Transfer

func (*Transfer) TotalSize

func (tsf *Transfer) TotalSize() uint32

TotalSize returns the total size of this Transfer

type TransferStake added in v0.11.0

type TransferStake struct {
	AbstractAction
	// contains filtered or unexported fields
}

TransferStake defines the action of transfering stake ownership ts the other

func NewTransferStake added in v0.11.0

func NewTransferStake(
	nonce uint64,
	voterAddress string,
	bucketIndex uint64,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*TransferStake, error)

NewTransferStake returns a TransferStake instance

func (*TransferStake) BucketIndex added in v0.11.0

func (ts *TransferStake) BucketIndex() uint64

BucketIndex returns bucket index

func (*TransferStake) Cost added in v0.11.0

func (ts *TransferStake) Cost() (*big.Int, error)

Cost returns the tstal cost of a TransferStake

func (*TransferStake) IntrinsicGas added in v0.11.0

func (ts *TransferStake) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a TransferStake

func (*TransferStake) LoadProto added in v0.11.0

func (ts *TransferStake) LoadProto(pbAct *iotextypes.StakeTransferOwnership) error

LoadProto loads transfer stake protobuf

func (*TransferStake) Payload added in v0.11.0

func (ts *TransferStake) Payload() []byte

Payload returns the payload bytes

func (*TransferStake) Proto added in v0.11.0

Proto converts transfer stake to protobuf

func (*TransferStake) Serialize added in v0.11.0

func (ts *TransferStake) Serialize() []byte

Serialize returns a raw byte stream of the transfer stake action struct

func (*TransferStake) VoterAddress added in v0.11.0

func (ts *TransferStake) VoterAddress() address.Address

VoterAddress returns the address of recipient

type Unstake added in v0.11.0

type Unstake struct {
	// contains filtered or unexported fields
}

Unstake defines the action of unstake

func NewUnstake added in v0.11.0

func NewUnstake(
	nonce uint64,
	bucketIndex uint64,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*Unstake, error)

NewUnstake returns a Unstake instance

func (*Unstake) BucketIndex added in v0.11.0

func (sr *Unstake) BucketIndex() uint64

BucketIndex returns bucket index

func (*Unstake) Cost added in v0.11.0

func (su *Unstake) Cost() (*big.Int, error)

Cost returns the total cost of a Unstake

func (*Unstake) IntrinsicGas added in v0.11.0

func (su *Unstake) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a Unstake

func (*Unstake) LoadProto added in v0.11.0

func (sr *Unstake) LoadProto(pbAct *iotextypes.StakeReclaim) error

LoadProto converts a protobuf's Action to reclaimStake

func (*Unstake) Payload added in v0.11.0

func (sr *Unstake) Payload() []byte

Payload returns the payload bytes

func (*Unstake) Proto added in v0.11.0

func (sr *Unstake) Proto() *iotextypes.StakeReclaim

Proto converts to protobuf stake reclaim action struct

func (*Unstake) Serialize added in v0.11.0

func (sr *Unstake) Serialize() []byte

Serialize returns a raw byte stream of the stake reclaim action struct

type WithdrawStake added in v0.11.0

type WithdrawStake struct {
	// contains filtered or unexported fields
}

WithdrawStake defines the action of stake withdraw

func NewWithdrawStake added in v0.11.0

func NewWithdrawStake(
	nonce uint64,
	bucketIndex uint64,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
) (*WithdrawStake, error)

NewWithdrawStake returns a WithdrawStake instance

func (*WithdrawStake) BucketIndex added in v0.11.0

func (sr *WithdrawStake) BucketIndex() uint64

BucketIndex returns bucket index

func (*WithdrawStake) Cost added in v0.11.0

func (sw *WithdrawStake) Cost() (*big.Int, error)

Cost returns the total cost of a WithdrawStake

func (*WithdrawStake) IntrinsicGas added in v0.11.0

func (sw *WithdrawStake) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a WithdrawStake

func (*WithdrawStake) LoadProto added in v0.11.0

func (sr *WithdrawStake) LoadProto(pbAct *iotextypes.StakeReclaim) error

LoadProto converts a protobuf's Action to reclaimStake

func (*WithdrawStake) Payload added in v0.11.0

func (sr *WithdrawStake) Payload() []byte

Payload returns the payload bytes

func (*WithdrawStake) Proto added in v0.11.0

func (sr *WithdrawStake) Proto() *iotextypes.StakeReclaim

Proto converts to protobuf stake reclaim action struct

func (*WithdrawStake) Serialize added in v0.11.0

func (sr *WithdrawStake) Serialize() []byte

Serialize returns a raw byte stream of the stake reclaim action struct

Jump to

Keyboard shortcuts

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