action

package
v2.0.6-rc0 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2024 License: Apache-2.0 Imports: 23 Imported by: 1

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 (
	// CandidateTransferOwnershipPayloadGas represents the CandidateTransferOwnership payload gas per uint
	CandidateTransferOwnershipPayloadGas = uint64(100)
	// CandidateTransferOwnershipBaseIntrinsicGas represents the base intrinsic gas for CandidateTransferOwnership
	CandidateTransferOwnershipBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	EmptyAddress                     = ""
	ExecutionDataGas          uint64 = 100   // per-byte execution data gas
	ExecutionBaseIntrinsicGas uint64 = 10000 // base intrinsic gas for execution
	TxAccessListAddressGas    uint64 = 2400  // Per address specified in EIP 2930 access list
	TxAccessListStorageKeyGas uint64 = 1900  // Per storage key specified in EIP 2930 access list
)

const

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 (
	// MigrateStakePayloadGas represents the MigrateStake payload gas per uint
	MigrateStakePayloadGas = uint64(100)
	// MigrateStakeBaseIntrinsicGas represents the base intrinsic gas for MigrateStake
	MigrateStakeBaseIntrinsicGas = 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 (
	// CandidateActivateBaseIntrinsicGas represents the base intrinsic gas for CandidateActivate
	CandidateActivateBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// CandidateEndorsementBaseIntrinsicGas represents the base intrinsic gas for CandidateEndorsement
	CandidateEndorsementBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// CandidateUpdateBaseIntrinsicGas represents the base intrinsic gas for CandidateUpdate
	CandidateUpdateBaseIntrinsicGas = uint64(10000)
)

Variables

View Source
var (

	// ErrInvalidAmount represents that amount is 0 or negative
	ErrInvalidAmount = errors.New("invalid amount")

	//ErrInvalidCanName represents that candidate name is invalid
	ErrInvalidCanName = errors.New("invalid candidate name")

	// ErrInvalidOwner represents that owner address is invalid
	ErrInvalidOwner = errors.New("invalid owner address")
)
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 (
	ErrAddress            = errors.New("invalid address")
	ErrVotee              = errors.New("votee is not a candidate")
	ErrNotFound           = errors.New("action not found")
	ErrChainID            = errors.New("invalid chainID")
	ErrExistedInPool      = errors.New("known transaction")
	ErrReplaceUnderpriced = errors.New("replacement transaction underpriced")
	ErrSystemActionNonce  = errors.New("invalid system action nonce")
	ErrNonceTooLow        = errors.New("nonce too low")
	ErrUnderpriced        = errors.New("transaction underpriced")
	ErrNegativeValue      = errors.New("negative value")
	ErrIntrinsicGas       = errors.New("intrinsic gas too low")
	ErrInsufficientFunds  = errors.New("insufficient funds for gas * price + value")
	ErrNonceTooHigh       = errors.New("nonce too high")
	ErrInvalidSender      = errors.New("invalid sender")
	ErrTxPoolOverflow     = errors.New("txpool is full")
	ErrGasLimit           = errors.New("exceeds block gas limit")
	ErrOversizedData      = errors.New("oversized data")
	ErrNilProto           = errors.New("empty action proto to load")
	ErrNilAction          = errors.New("nil action to load proto")
	ErrInvalidAct         = errors.New("invalid action type")
	ErrInvalidABI         = errors.New("invalid abi binary data")
)

vars

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 (
	ErrNotSupported = errors.New("signature type not supported")
)

Errors

View Source
var (
	ValidSig, _ = hex.DecodeString("15e73ad521ec9e06600c59e49b127c9dee114ad64fb2fcbe5e0d9f4c8d2b766e73d708cca1dc050dd27b20f2ee607f30428bf035f45d4da8ec2fb04a90c2c30901")
)

vars

Functions

func CalculateIntrinsicGas

func CalculateIntrinsicGas(baseIntrinsicGas uint64, payloadGas uint64, payloadSize uint64) (uint64, error)

CalculateIntrinsicGas returns the intrinsic gas of an action

func DecodeEtherTx

func DecodeEtherTx(rawData string) (*types.Transaction, error)

DecodeEtherTx decodes raw data string into eth tx

func ExtractTypeSigPubkey

func ExtractTypeSigPubkey(tx *types.Transaction) (iotextypes.Encoding, []byte, crypto.PublicKey, error)

ExtractTypeSigPubkey extracts tx type, signature, and pubkey

func IsSystemAction

func IsSystemAction(act *SealedEnvelope) bool

IsSystemAction determine whether input action belongs to system action

func IsValidCandidateName

func IsValidCandidateName(s string) bool

IsValidCandidateName check if a candidate name string is valid.

func LoadErrorDescription

func LoadErrorDescription(err error) string

LoadErrorDescription loads corresponding description related to the error

func MsgHash

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

MsgHash calculate the hash of msg

func NewConsignJSON

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

NewConsignJSON creates a consignment JSON from inputs

func NewConsignMsg

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

NewConsignMsg creates a consignment message from inputs

func NewEthSigner

func NewEthSigner(txType iotextypes.Encoding, chainID uint32) (types.Signer, error)

NewEthSigner returns the proper signer for Eth-compatible tx

func RawTxToSignedTx

func RawTxToSignedTx(rawTx *types.Transaction, signer types.Signer, sig []byte) (*types.Transaction, error)

RawTxToSignedTx converts the raw tx to corresponding signed tx

func RecoverPubkeyFromEccSig

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

RecoverPubkeyFromEccSig recovers public key from ECC signature

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) ChainID

func (act *AbstractAction) ChainID() uint32

ChainID returns the chainID

func (*AbstractAction) GasFeeCap

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

GasFeeCap returns the gas fee cap

func (*AbstractAction) GasLimit added in v2.0.6

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) GasTipCap

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

GasTipCap returns the gas tip cap

func (*AbstractAction) Nonce

func (act *AbstractAction) Nonce() uint64

Nonce returns the nonce

func (*AbstractAction) SanityCheck

func (act *AbstractAction) SanityCheck() error

SanityCheck validates the variables in the action

func (*AbstractAction) SetEnvelopeContext added in v2.0.6

func (act *AbstractAction) SetEnvelopeContext(in *AbstractAction)

SetEnvelopeContext sets the struct according to input

func (*AbstractAction) SetGasLimit

func (act *AbstractAction) SetGasLimit(val uint64)

SetGasLimit sets gaslimit

func (*AbstractAction) SetGasPrice

func (act *AbstractAction) SetGasPrice(val *big.Int)

SetGasPrice sets gaslimit

func (*AbstractAction) SetNonce

func (act *AbstractAction) SetNonce(val uint64)

SetNonce sets gaslimit

func (*AbstractAction) Version added in v2.0.6

func (act *AbstractAction) Version() uint32

Version returns the version

type Action

type Action interface {
	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

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) SetVersion

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

SetVersion sets action's version.

type CandidateActivate

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

CandidateActivate is the action to update a candidate's bucket

func NewCandidateActivate

func NewCandidateActivate(nonce, gasLimit uint64, gasPrice *big.Int, bucketID uint64) *CandidateActivate

NewCandidateActivate returns a CandidateActivate action

func NewCandidateActivateFromABIBinary

func NewCandidateActivateFromABIBinary(data []byte) (*CandidateActivate, error)

NewCandidateActivateFromABIBinary parses the smart contract input and creates an action

func (*CandidateActivate) BucketID

func (cr *CandidateActivate) BucketID() uint64

BucketID returns the bucket index want to be changed to

func (*CandidateActivate) Cost added in v2.0.6

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

Cost returns the total cost of a CandidateRegister

func (*CandidateActivate) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a CandidateRegister

func (*CandidateActivate) LoadProto

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

LoadProto converts a protobuf's Action to CandidateActivate

func (*CandidateActivate) Proto

Proto converts CandidateActivate to protobuf's Action

func (*CandidateActivate) ToEthTx added in v2.0.6

func (cr *CandidateActivate) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx returns an Ethereum transaction which corresponds to this action

type CandidateEndorsement

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

CandidateEndorsement is the action to endorse or unendorse a candidate

func NewCandidateEndorsement

func NewCandidateEndorsement(nonce, gasLimit uint64, gasPrice *big.Int, bucketIndex uint64, op CandidateEndorsementOp) (*CandidateEndorsement, error)

NewCandidateEndorsement returns a CandidateEndorsement action

func NewCandidateEndorsementFromABIBinary

func NewCandidateEndorsementFromABIBinary(data []byte) (*CandidateEndorsement, error)

NewCandidateEndorsementFromABIBinary parses the smart contract input and creates an action

func NewCandidateEndorsementLegacy

func NewCandidateEndorsementLegacy(nonce, gasLimit uint64, gasPrice *big.Int, bucketIndex uint64, endorse bool) *CandidateEndorsement

NewCandidateEndorsementLegacy returns a CandidateEndorsement action

func (*CandidateEndorsement) BucketIndex

func (act *CandidateEndorsement) BucketIndex() uint64

BucketIndex returns the bucket index of the action

func (*CandidateEndorsement) Cost added in v2.0.6

func (act *CandidateEndorsement) Cost() (*big.Int, error)

Cost returns the total cost of a CandidateEndorsement

func (*CandidateEndorsement) IntrinsicGas

func (act *CandidateEndorsement) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a CandidateEndorsement

func (*CandidateEndorsement) IsLegacy

func (act *CandidateEndorsement) IsLegacy() bool

IsLegacy returns true if the action is in legacy version

func (*CandidateEndorsement) LoadProto

LoadProto converts a protobuf's Action to CandidateEndorsement

func (*CandidateEndorsement) Op

Op returns the operation of the endorsement

func (*CandidateEndorsement) Proto

Proto converts CandidateEndorsement to protobuf's Action

func (*CandidateEndorsement) ToEthTx added in v2.0.6

func (act *CandidateEndorsement) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx returns an Ethereum transaction which corresponds to this action

type CandidateEndorsementOp

type CandidateEndorsementOp uint8

CandidateEndorsementOp defines the operation of CandidateEndorsement

const (
	// CandidateEndorsementOpLegacy is the operation to endorse or unendorse a candidate in legacy version
	CandidateEndorsementOpLegacy CandidateEndorsementOp = iota
	// CandidateEndorsementOpEndorse is the operation to endorse a candidate
	CandidateEndorsementOpEndorse
	// CandidateEndorsementOpIntentToRevoke is the operation to intent to revoke an endorsement
	CandidateEndorsementOpIntentToRevoke
	// CandidateEndorsementOpRevoke is the operation to revoke an endorsement
	CandidateEndorsementOpRevoke
)

CandidateEndorsementOp defines the operation of CandidateEndorsement

type CandidateRegister

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

CandidateRegister is the action to register a candidate

func NewCandidateRegister

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 NewCandidateRegisterFromABIBinary

func NewCandidateRegisterFromABIBinary(data []byte) (*CandidateRegister, error)

NewCandidateRegisterFromABIBinary decodes data into CandidateRegister action

func (*CandidateRegister) Amount

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

Amount returns the amount

func (*CandidateRegister) AutoStake

func (cr *CandidateRegister) AutoStake() bool

AutoStake returns the if staking is auth stake

func (*CandidateRegister) Cost added in v2.0.6

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

Cost returns the total cost of a CandidateRegister

func (*CandidateRegister) Duration

func (cr *CandidateRegister) Duration() uint32

Duration returns the self-stake duration

func (*CandidateRegister) EncodeABIBinary added in v2.0.6

func (cr *CandidateRegister) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*CandidateRegister) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a CandidateRegister

func (*CandidateRegister) LoadProto

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

LoadProto converts a protobuf's Action to CandidateRegister

func (*CandidateRegister) Name

func (cr *CandidateRegister) Name() string

Name returns candidate name to register

func (*CandidateRegister) OperatorAddress

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

OperatorAddress returns candidate operatorAddress to register

func (*CandidateRegister) OwnerAddress

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

OwnerAddress returns candidate ownerAddress to register

func (*CandidateRegister) Payload

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

Payload returns the payload bytes

func (*CandidateRegister) Proto

Proto converts to protobuf CandidateRegister Action

func (*CandidateRegister) RewardAddress

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

RewardAddress returns candidate rewardAddress to register

func (*CandidateRegister) SanityCheck

func (cr *CandidateRegister) SanityCheck() error

SanityCheck validates the variables in the action

func (*CandidateRegister) Serialize

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

Serialize returns a raw byte stream of the CandidateRegister struct

func (*CandidateRegister) ToEthTx added in v2.0.6

func (cr *CandidateRegister) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type CandidateTransferOwnership

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

CandidateTransferOwnership is the action to transfer ownership of a candidate

func NewCandidateTransferOwnership

func NewCandidateTransferOwnership(nonce, gasLimit uint64, gasPrice *big.Int,
	newOwnerStr string, payload []byte) (*CandidateTransferOwnership, error)

NewCandidateTransferOwnership returns a CandidateTransferOwnership action

func NewCandidateTransferOwnershipFromABIBinary

func NewCandidateTransferOwnershipFromABIBinary(data []byte) (*CandidateTransferOwnership, error)

NewCandidateTransferOwnershipFromABIBinary decode data to CandidateTransferOwnership

func (*CandidateTransferOwnership) Cost added in v2.0.6

func (act *CandidateTransferOwnership) Cost() (*big.Int, error)

Cost returns the total cost of a CandidateTransferOwnership

func (*CandidateTransferOwnership) EncodeABIBinary added in v2.0.6

func (act *CandidateTransferOwnership) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*CandidateTransferOwnership) IntrinsicGas

func (act *CandidateTransferOwnership) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a CandidateTransferOwnership

func (*CandidateTransferOwnership) LoadProto

LoadProto loads the CandidateTransferOwnership Action from protobuf

func (*CandidateTransferOwnership) NewOwner

func (act *CandidateTransferOwnership) NewOwner() address.Address

NewOwner returns the new owner address

func (*CandidateTransferOwnership) Payload

func (act *CandidateTransferOwnership) Payload() []byte

Payload returns the payload bytes

func (*CandidateTransferOwnership) Proto

Proto converts to protobuf CandidateTransferOwnership Action

func (*CandidateTransferOwnership) SanityCheck

func (act *CandidateTransferOwnership) SanityCheck() error

SanityCheck validates the variables in the action

func (*CandidateTransferOwnership) Serialize

func (act *CandidateTransferOwnership) Serialize() []byte

Serialize returns a raw byte stream of the CandidateTransferOwnership struct

func (*CandidateTransferOwnership) ToEthTx added in v2.0.6

ToEthTx returns an Ethereum transaction which corresponds to this action

type CandidateUpdate

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

CandidateUpdate is the action to update a candidate

func NewCandidateUpdate

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

NewCandidateUpdate creates a CandidateUpdate instance

func NewCandidateUpdateFromABIBinary

func NewCandidateUpdateFromABIBinary(data []byte) (*CandidateUpdate, error)

NewCandidateUpdateFromABIBinary decodes data into CandidateUpdate action

func (*CandidateUpdate) Cost added in v2.0.6

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

Cost returns the total cost of a CandidateUpdate

func (*CandidateUpdate) EncodeABIBinary added in v2.0.6

func (cu *CandidateUpdate) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*CandidateUpdate) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a CandidateUpdate

func (*CandidateUpdate) LoadProto

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

LoadProto converts a protobuf's Action to CandidateUpdate

func (*CandidateUpdate) Name

func (cu *CandidateUpdate) Name() string

Name returns candidate name to update

func (*CandidateUpdate) OperatorAddress

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

OperatorAddress returns candidate operatorAddress to update

func (*CandidateUpdate) Proto

Proto converts to protobuf CandidateUpdate Action

func (*CandidateUpdate) RewardAddress

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

RewardAddress returns candidate rewardAddress to update

func (*CandidateUpdate) SanityCheck

func (cu *CandidateUpdate) SanityCheck() error

SanityCheck validates the variables in the action

func (*CandidateUpdate) Serialize

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

Serialize returns a raw byte stream of the CandidateUpdate struct

func (*CandidateUpdate) ToEthTx added in v2.0.6

func (cu *CandidateUpdate) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type ChangeCandidate

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

ChangeCandidate defines the action of changing stake candidate ts the other

func NewChangeCandidate

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

NewChangeCandidate returns a ChangeCandidate instance

func NewChangeCandidateFromABIBinary

func NewChangeCandidateFromABIBinary(data []byte) (*ChangeCandidate, error)

NewChangeCandidateFromABIBinary decodes data into ChangeCandidate action

func (*ChangeCandidate) BucketIndex

func (cc *ChangeCandidate) BucketIndex() uint64

BucketIndex returns bucket index

func (*ChangeCandidate) Candidate

func (cc *ChangeCandidate) Candidate() string

Candidate returns the address of recipient

func (*ChangeCandidate) Cost added in v2.0.6

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

Cost returns the tstal cost of a ChangeCandidate

func (*ChangeCandidate) EncodeABIBinary added in v2.0.6

func (cc *ChangeCandidate) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*ChangeCandidate) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a ChangeCandidate

func (*ChangeCandidate) LoadProto

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

LoadProto loads change candidate from protobuf

func (*ChangeCandidate) Payload

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

Payload returns the payload bytes

func (*ChangeCandidate) Proto

Proto converts change candidate to protobuf

func (*ChangeCandidate) SanityCheck

func (cc *ChangeCandidate) SanityCheck() error

SanityCheck validates the variables in the action

func (*ChangeCandidate) Serialize

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

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

func (*ChangeCandidate) ToEthTx added in v2.0.6

func (cc *ChangeCandidate) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type ClaimFromRewardingFund

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

ClaimFromRewardingFund is the action to claim reward from the rewarding fund

func NewClaimFromRewardingFundFromABIBinary

func NewClaimFromRewardingFundFromABIBinary(data []byte) (*ClaimFromRewardingFund, error)

NewClaimFromRewardingFundFromABIBinary decodes data into action

func (*ClaimFromRewardingFund) Address

func (c *ClaimFromRewardingFund) Address() address.Address

Address returns the the account to claim if it's nil, the default is the action sender

func (*ClaimFromRewardingFund) Amount added in v2.0.6

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

Amount returns the amount to claim

func (*ClaimFromRewardingFund) Cost added in v2.0.6

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

Cost returns the total cost of a claim action

func (*ClaimFromRewardingFund) Data

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

Data returns the additional data

func (*ClaimFromRewardingFund) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a claim action

func (*ClaimFromRewardingFund) LoadProto

LoadProto converts a claim action protobuf to a claim action struct

func (*ClaimFromRewardingFund) Proto

Proto converts a claim action struct to a claim action protobuf

func (*ClaimFromRewardingFund) SanityCheck

func (c *ClaimFromRewardingFund) SanityCheck() error

SanityCheck validates the variables in the action

func (*ClaimFromRewardingFund) Serialize

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

Serialize returns a raw byte stream of a claim action

func (*ClaimFromRewardingFund) ToEthTx added in v2.0.6

ToEthTx converts action to eth-compatible tx

type ClaimFromRewardingFundBuilder added in v2.0.6

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

ClaimFromRewardingFundBuilder is the struct to build ClaimFromRewardingFund

func (*ClaimFromRewardingFundBuilder) Build added in v2.0.6

Build builds a new claim from rewarding fund action

func (*ClaimFromRewardingFundBuilder) Reset added in v2.0.6

func (b *ClaimFromRewardingFundBuilder) Reset()

Reset set all field to defaults

func (*ClaimFromRewardingFundBuilder) SetAddress added in v2.0.6

SetAddress set the address to claim

func (*ClaimFromRewardingFundBuilder) SetAmount added in v2.0.6

SetAmount sets the amount to claim

func (*ClaimFromRewardingFundBuilder) SetData added in v2.0.6

SetData sets the additional data

type ConsignJSON

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

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

ConsignMsgEther is the consignment message format of Ethereum

type Consignment

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

Consignment represents a consignment

func NewConsignment

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

NewConsignment creates a consignment from data

type CreateStake

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

CreateStake defines the action of CreateStake creation

func NewCreateStake

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 NewCreateStakeFromABIBinary

func NewCreateStakeFromABIBinary(data []byte) (*CreateStake, error)

NewCreateStakeFromABIBinary decodes data into createStake action

func (*CreateStake) Amount

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

Amount returns the amount

func (*CreateStake) AutoStake

func (cs *CreateStake) AutoStake() bool

AutoStake returns the flag of AutoStake s

func (*CreateStake) Candidate

func (cs *CreateStake) Candidate() string

Candidate returns the candidate name

func (*CreateStake) Cost added in v2.0.6

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

Cost returns the total cost of a CreateStake

func (*CreateStake) Duration

func (cs *CreateStake) Duration() uint32

Duration returns the CreateStaked duration

func (*CreateStake) EncodeABIBinary added in v2.0.6

func (cs *CreateStake) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*CreateStake) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a CreateStake

func (*CreateStake) LoadProto

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

LoadProto converts a protobuf's Action to CreateStake

func (*CreateStake) Payload

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

Payload returns the payload bytes

func (*CreateStake) Proto

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

Proto converts to protobuf CreateStake Action

func (*CreateStake) SanityCheck

func (cs *CreateStake) SanityCheck() error

SanityCheck validates the variables in the action

func (*CreateStake) Serialize

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

Serialize returns a raw byte stream of the CreateStake struct

func (*CreateStake) ToEthTx added in v2.0.6

func (cs *CreateStake) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type DepositToRewardingFund

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

DepositToRewardingFund is the action to deposit to the rewarding fund

func NewDepositToRewardingFundFromABIBinary

func NewDepositToRewardingFundFromABIBinary(data []byte) (*DepositToRewardingFund, error)

NewDepositToRewardingFundFromABIBinary decodes data into action

func (*DepositToRewardingFund) Amount

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

Amount returns the amount to deposit

func (*DepositToRewardingFund) Cost added in v2.0.6

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

Cost returns the total cost of a deposit action

func (*DepositToRewardingFund) Data

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

Data returns the additional data

func (*DepositToRewardingFund) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a deposit action

func (*DepositToRewardingFund) LoadProto

LoadProto converts a deposit action protobuf to a deposit action struct

func (*DepositToRewardingFund) Proto

Proto converts a deposit action struct to a deposit action protobuf

func (*DepositToRewardingFund) SanityCheck

func (d *DepositToRewardingFund) SanityCheck() error

SanityCheck validates the variables in the action

func (*DepositToRewardingFund) Serialize

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

Serialize returns a raw byte stream of a deposit action

func (*DepositToRewardingFund) ToEthTx added in v2.0.6

ToEthTx converts action to eth-compatible tx

type DepositToRewardingFundBuilder added in v2.0.6

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

DepositToRewardingFundBuilder is the struct to build DepositToRewardingFund

func (*DepositToRewardingFundBuilder) Build added in v2.0.6

Build builds a new deposit to rewarding fund action

func (*DepositToRewardingFundBuilder) SetAmount added in v2.0.6

SetAmount sets the amount to deposit

func (*DepositToRewardingFundBuilder) SetData added in v2.0.6

SetData sets the additional data

type DepositToStake

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

DepositToStake defines the action of stake add deposit

func NewDepositToStake

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

NewDepositToStake returns a DepositToStake instance

func NewDepositToStakeFromABIBinary

func NewDepositToStakeFromABIBinary(data []byte) (*DepositToStake, error)

NewDepositToStakeFromABIBinary decodes data into depositToStake action

func (*DepositToStake) Amount

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

Amount returns the amount

func (*DepositToStake) BucketIndex

func (ds *DepositToStake) BucketIndex() uint64

BucketIndex returns bucket indexs

func (*DepositToStake) Cost added in v2.0.6

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

Cost returns the total cost of a DepositToStake

func (*DepositToStake) EncodeABIBinary added in v2.0.6

func (ds *DepositToStake) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*DepositToStake) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a DepositToStake

func (*DepositToStake) LoadProto

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

LoadProto converts a protobuf's Action to DepositToStake

func (*DepositToStake) Payload

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

Payload returns the payload bytes

func (*DepositToStake) Proto

Proto converts to protobuf DepositToStake Action

func (*DepositToStake) SanityCheck

func (ds *DepositToStake) SanityCheck() error

SanityCheck validates the variables in the action

func (*DepositToStake) Serialize

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

Serialize returns a raw byte stream of the DepositToStake struct

func (*DepositToStake) ToEthTx added in v2.0.6

func (ds *DepositToStake) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type Deserializer

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

Deserializer de-serializes an action

It's a wrapper to set certain parameters in order to correctly de-serialize an action Currently the parameter is EVM network ID for tx in web3 format, it is called like

act, err := (&Deserializer{}).SetEvmNetworkID(id).ActionToSealedEnvelope(pbAction)

func (*Deserializer) ActionToSealedEnvelope

func (ad *Deserializer) ActionToSealedEnvelope(pbAct *iotextypes.Action) (*SealedEnvelope, error)

ActionToSealedEnvelope converts protobuf to SealedEnvelope

func (*Deserializer) SetEvmNetworkID

func (ad *Deserializer) SetEvmNetworkID(id uint32) *Deserializer

SetEvmNetworkID sets the evm network ID for web3 actions

type Envelope

type Envelope interface {
	Version() uint32
	Nonce() uint64
	ChainID() uint32
	GasLimit() uint64
	GasPrice() *big.Int
	GasTipCap() *big.Int
	GasFeeCap() *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)
	SetChainID(chainID uint32)
}

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

type EnvelopeBuilder

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

EnvelopeBuilder is the builder to build Envelope. TODO: change envelope to *envelope

func (*EnvelopeBuilder) Build

func (b *EnvelopeBuilder) Build() Envelope

Build builds a new action.

func (*EnvelopeBuilder) BuildExecution

func (b *EnvelopeBuilder) BuildExecution(tx *types.Transaction) (Envelope, error)

BuildExecution loads executino action into envelope

func (*EnvelopeBuilder) BuildRewardingAction

func (b *EnvelopeBuilder) BuildRewardingAction(tx *types.Transaction) (Envelope, error)

BuildRewardingAction loads rewarding action into envelope from abi-encoded data

func (*EnvelopeBuilder) BuildStakingAction

func (b *EnvelopeBuilder) BuildStakingAction(tx *types.Transaction) (Envelope, error)

BuildStakingAction loads staking action into envelope from abi-encoded data

func (*EnvelopeBuilder) BuildTransfer

func (b *EnvelopeBuilder) BuildTransfer(tx *types.Transaction) (Envelope, error)

BuildTransfer loads transfer action into envelope

func (*EnvelopeBuilder) SetAction

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

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

func (*EnvelopeBuilder) SetChainID

func (b *EnvelopeBuilder) SetChainID(chainID uint32) *EnvelopeBuilder

SetChainID sets action's chainID.

func (*EnvelopeBuilder) SetGasLimit

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

SetGasLimit sets action's gas limit.

func (*EnvelopeBuilder) SetGasPrice

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

SetGasPrice sets action's gas price.

func (*EnvelopeBuilder) SetGasPriceByBytes

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

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

func (*EnvelopeBuilder) SetNonce

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

SetNonce sets action's nonce.

func (*EnvelopeBuilder) SetVersion

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

SetVersion sets action's version.

type EthCompatibleAction

type EthCompatibleAction interface {
	ToEthTx(uint32) (*types.Transaction, error)
}

EthCompatibleAction is the action which is compatible to be converted to eth tx

type EvmTransaction added in v2.0.6

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

EvmTransaction represents an action to be executed by EVM protocol as of now 3 types of transactions are supported: 1. Legacy transaction 2. EIP-2930 access list transaction 3. EIP-4844 shard blob transaction

func NewEvmTx added in v2.0.6

func NewEvmTx(a Action) *EvmTransaction

func (*EvmTransaction) AccessList added in v2.0.6

func (tx *EvmTransaction) AccessList() types.AccessList

func (*EvmTransaction) Data added in v2.0.6

func (tx *EvmTransaction) Data() []byte

func (*EvmTransaction) Gas added in v2.0.6

func (tx *EvmTransaction) Gas() uint64

func (*EvmTransaction) GasPrice added in v2.0.6

func (tx *EvmTransaction) GasPrice() *big.Int

func (*EvmTransaction) Nonce added in v2.0.6

func (tx *EvmTransaction) Nonce() uint64

func (*EvmTransaction) To added in v2.0.6

func (tx *EvmTransaction) To() *common.Address

func (*EvmTransaction) Value added in v2.0.6

func (tx *EvmTransaction) Value() *big.Int

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 an Execution instance (w/o access list)

func NewExecutionWithAccessList added in v2.0.6

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

NewExecutionWithAccessList returns an Execution instance with access list

func (*Execution) AccessList added in v2.0.6

func (ex *Execution) AccessList() types.AccessList

AccessList returns the access list

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 added in v2.0.6

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

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

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

func (ex *Execution) Recipient() string

Recipient is same as Contract()

func (*Execution) SanityCheck

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) To

func (ex *Execution) To() *common.Address

To returns the contract address pointer nil indicates a contract-creation transaction

func (*Execution) ToEthTx added in v2.0.6

func (ex *Execution) ToEthTx(evmNetworkID uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

func (*Execution) TotalSize added in v2.0.6

func (ex *Execution) TotalSize() uint32

TotalSize returns the total size of this Execution

type GrantReward

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 v2.0.6

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

Cost returns the total cost of a grant reward action

func (*GrantReward) EncodeABIBinary added in v2.0.6

func (g *GrantReward) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*GrantReward) Height

func (g *GrantReward) Height() uint64

Height returns the block height to grant reward

func (*GrantReward) IntrinsicGas

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

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

func (*GrantReward) LoadProto

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

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

func (*GrantReward) Proto

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

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

func (*GrantReward) RewardType

func (g *GrantReward) RewardType() int

RewardType returns the grant reward type

func (*GrantReward) Serialize

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

Serialize returns a raw byte stream of a grant reward action

func (*GrantReward) ToEthTx added in v2.0.6

func (g *GrantReward) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts a grant reward action to an ethereum transaction

type GrantRewardBuilder added in v2.0.6

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

GrantRewardBuilder is the struct to build GrantReward

func (*GrantRewardBuilder) Build added in v2.0.6

func (b *GrantRewardBuilder) Build() GrantReward

Build builds a new grant reward action

func (*GrantRewardBuilder) SetHeight added in v2.0.6

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

SetHeight sets the grant reward block height

func (*GrantRewardBuilder) SetRewardType added in v2.0.6

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, TxIndex     uint32
	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 MigrateStake

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

func NewMigrateStake

func NewMigrateStake(
	nonce uint64,
	index uint64,
	gasLimit uint64,
	gasPrice *big.Int,
) (*MigrateStake, error)

NewMigrateStake returns a MigrateStake instance

func NewMigrateStakeFromABIBinary

func NewMigrateStakeFromABIBinary(data []byte) (*MigrateStake, error)

NewMigrateStakeFromABIBinary decodes data into MigrateStake

func (*MigrateStake) BucketIndex

func (ms *MigrateStake) BucketIndex() uint64

BucketIndex returns bucket index

func (*MigrateStake) Cost added in v2.0.6

func (ms *MigrateStake) Cost() (*big.Int, error)

Cost returns the total cost of a MigrateStake

func (*MigrateStake) IntrinsicGas

func (ms *MigrateStake) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a Restake

func (*MigrateStake) LoadProto

func (ms *MigrateStake) LoadProto(pbAct *iotextypes.StakeMigrate) error

LoadProto converts a protobuf's Action to Restake

func (*MigrateStake) Proto

func (ms *MigrateStake) Proto() *iotextypes.StakeMigrate

Proto converts to protobuf Restake Action

func (*MigrateStake) Serialize

func (ms *MigrateStake) Serialize() []byte

Serialize returns a raw byte stream of the Stake again struct

func (*MigrateStake) ToEthTx added in v2.0.6

func (ms *MigrateStake) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type PutPollResult

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

PutPollResult represents put the poll result from gravity chain.

func NewPutPollResult

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

NewPutPollResult instantiates a putting poll result action struct.

func (*PutPollResult) Candidates

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

Candidates returns the list of candidates.

func (*PutPollResult) Cost added in v2.0.6

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

Cost returns the total cost of a put poll result action

func (*PutPollResult) Height

func (r *PutPollResult) Height() uint64

Height returns put poll result height.

func (*PutPollResult) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a put poll result action

func (*PutPollResult) LoadProto

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

LoadProto converts a proto message into put block action.

func (*PutPollResult) Proto

Proto converts put poll result action into a proto message.

func (*PutPollResult) Serialize

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
	TxIndex         uint32
	// contains filtered or unexported fields
}

Receipt represents the result of a contract

func (*Receipt) AddLogs

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

AddLogs add log to receipt and filter out nil log.

func (*Receipt) AddTransactionLogs

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

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

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

SetExecutionRevertMsg sets executionerrorlogs to receipt.

func (*Receipt) TransactionLogs

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

TransactionLogs returns the list of transaction logs stored in receipt

func (*Receipt) UpdateIndex

func (receipt *Receipt) UpdateIndex(txIndex, logIndex uint32) uint32

UpdateIndex updates the index of receipt and logs, and returns the next log index

type Restake

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

Restake defines the action of stake again

func NewRestake

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 NewRestakeFromABIBinary

func NewRestakeFromABIBinary(data []byte) (*Restake, error)

NewRestakeFromABIBinary decodes data into Restake action

func (*Restake) AutoStake

func (rs *Restake) AutoStake() bool

AutoStake returns the autoStake boolean

func (*Restake) BucketIndex

func (rs *Restake) BucketIndex() uint64

BucketIndex returns bucket index

func (*Restake) Cost added in v2.0.6

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

Cost returns the total cost of a Restake

func (*Restake) Duration

func (rs *Restake) Duration() uint32

Duration returns the updated duration

func (*Restake) EncodeABIBinary added in v2.0.6

func (rs *Restake) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*Restake) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a Restake

func (*Restake) LoadProto

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

LoadProto converts a protobuf's Action to Restake

func (*Restake) Payload

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

Payload returns the payload bytes

func (*Restake) Proto

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

Proto converts to protobuf Restake Action

func (*Restake) Serialize

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

Serialize returns a raw byte stream of the Stake again struct

func (*Restake) ToEthTx added in v2.0.6

func (rs *Restake) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type SealedEnvelope

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

SealedEnvelope is a signed action envelope.

func AssembleSealedEnvelope

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

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

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

func Sign

func Sign(act Envelope, sk crypto.PrivateKey) (*SealedEnvelope, error)

Sign signs the action using sender's private key

func SignedCandidateActivate

func SignedCandidateActivate(
	nonce uint64,
	bucketIndex uint64,
	gasLimit uint64,
	gasPrice *big.Int,
	registererPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedCandidateActivate returns a signed candidate selfstake

func SignedCandidateEndorsement

func SignedCandidateEndorsement(
	nonce uint64,
	bucketIndex uint64,
	op CandidateEndorsementOp,
	gasLimit uint64,
	gasPrice *big.Int,
	registererPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedCandidateEndorsement returns a signed candidate endorsement

func SignedCandidateEndorsementLegacy

func SignedCandidateEndorsementLegacy(
	nonce uint64,
	bucketIndex uint64,
	endorse bool,
	gasLimit uint64,
	gasPrice *big.Int,
	registererPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedCandidateEndorsementLegacy returns a signed candidate endorsement

func SignedCandidateRegister

func SignedCandidateRegister(
	nonce uint64,
	name, operatorAddrStr, rewardAddrStr, ownerAddrStr, amountStr string,
	duration uint32,
	autoStake bool,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	registererPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedCandidateRegister returns a signed candidate register

func SignedCandidateTransferOwnership

func SignedCandidateTransferOwnership(
	nonce uint64,
	ownerAddrStr string,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	senderPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedCandidateTransferOwnership returns a signed candidate transfer ownership

func SignedCandidateUpdate

func SignedCandidateUpdate(
	nonce uint64,
	name, operatorAddrStr, rewardAddrStr string,
	gasLimit uint64,
	gasPrice *big.Int,
	registererPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedCandidateUpdate returns a signed candidate update

func SignedChangeCandidate

func SignedChangeCandidate(
	nonce uint64,
	candName string,
	bucketIndex uint64,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	stakerPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedChangeCandidate returns a signed change candidate

func SignedClaimReward

func SignedClaimReward(
	nonce uint64,
	gasLimit uint64,
	gasPrice *big.Int,
	senderPriKey crypto.PrivateKey,
	amount *big.Int,
	payload []byte,
	address address.Address,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

func SignedClaimRewardLegacy

func SignedClaimRewardLegacy(
	nonce uint64,
	gasLimit uint64,
	gasPrice *big.Int,
	senderPriKey crypto.PrivateKey,
	amount *big.Int,
	payload []byte,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

func SignedCreateStake

func SignedCreateStake(nonce uint64,
	candidateName, amount string,
	duration uint32,
	autoStake bool,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	stakerPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedCreateStake returns a signed create stake

func SignedDepositToStake

func SignedDepositToStake(
	nonce uint64,
	index uint64,
	amount string,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	depositorPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedDepositToStake returns a signed deposit to stake

func SignedExecution

func SignedExecution(contractAddr string, executorPriKey crypto.PrivateKey, nonce uint64, amount *big.Int, gasLimit uint64, gasPrice *big.Int, data []byte, options ...SignedActionOption) (*SealedEnvelope, error)

SignedExecution return a signed execution

func SignedMigrateStake

func SignedMigrateStake(
	nonce uint64,
	bucketIndex uint64,
	gasLimit uint64,
	gasPrice *big.Int,
	senderPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

func SignedReclaimStake

func SignedReclaimStake(
	withdraw bool,
	nonce uint64,
	bucketIndex uint64,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	reclaimerPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedReclaimStake returns a signed unstake or withdraw stake

func SignedRestake

func SignedRestake(
	nonce uint64,
	index uint64,
	duration uint32,
	autoStake bool,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	restakerPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedRestake returns a signed restake

func SignedTransfer

func SignedTransfer(recipientAddr string, senderPriKey crypto.PrivateKey, nonce uint64, amount *big.Int, payload []byte, gasLimit uint64, gasPrice *big.Int, options ...SignedActionOption) (*SealedEnvelope, error)

SignedTransfer return a signed transfer

func SignedTransferStake

func SignedTransferStake(
	nonce uint64,
	voterAddress string,
	bucketIndex uint64,
	payload []byte,
	gasLimit uint64,
	gasPrice *big.Int,
	stakerPriKey crypto.PrivateKey,
	options ...SignedActionOption,
) (*SealedEnvelope, error)

SignedTransferStake returns a signed transfer stake

func (*SealedEnvelope) Encoding

func (sealed *SealedEnvelope) Encoding() uint32

Encoding returns the encoding

func (*SealedEnvelope) Hash

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

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

func (*SealedEnvelope) Proto

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

Proto converts it to it's proto scheme.

func (*SealedEnvelope) SenderAddress

func (sealed *SealedEnvelope) SenderAddress() address.Address

SenderAddress returns address of the source public key

func (*SealedEnvelope) Signature

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

Signature returns signature bytes

func (*SealedEnvelope) SrcPubkey

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

SrcPubkey returns the source public key

func (*SealedEnvelope) VerifySignature

func (sealed *SealedEnvelope) VerifySignature() error

VerifySignature verifies the action using sender's public key

type SealedEnvelopeValidator

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 SignedActionOption

type SignedActionOption func(*EnvelopeBuilder)

func WithChainID

func WithChainID(chainID uint32) SignedActionOption

type Topics

type Topics []hash.Hash256

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

type TransactionLog

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 added in v2.0.6

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

Cost returns the total cost of a transfer

func (*Transfer) Destination

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

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) ToEthTx added in v2.0.6

func (tsf *Transfer) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

func (*Transfer) TotalSize added in v2.0.6

func (tsf *Transfer) TotalSize() uint32

TotalSize returns the total size of this Transfer

type TransferStake

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

TransferStake defines the action of transfering stake ownership ts the other

func NewTransferStake

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

NewTransferStake returns a TransferStake instance

func NewTransferStakeFromABIBinary

func NewTransferStakeFromABIBinary(data []byte) (*TransferStake, error)

NewTransferStakeFromABIBinary decodes data into TransferStake action

func (*TransferStake) BucketIndex

func (ts *TransferStake) BucketIndex() uint64

BucketIndex returns bucket index

func (*TransferStake) Cost added in v2.0.6

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

Cost returns the tstal cost of a TransferStake

func (*TransferStake) EncodeABIBinary added in v2.0.6

func (ts *TransferStake) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*TransferStake) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a TransferStake

func (*TransferStake) LoadProto

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

LoadProto loads transfer stake protobuf

func (*TransferStake) Payload

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

Payload returns the payload bytes

func (*TransferStake) Proto

Proto converts transfer stake to protobuf

func (*TransferStake) Serialize

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

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

func (*TransferStake) ToEthTx added in v2.0.6

func (ts *TransferStake) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

func (*TransferStake) VoterAddress

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

VoterAddress returns the address of recipient

type TxContainer

type TxContainer interface {
	Unfold(*SealedEnvelope, context.Context, func(context.Context, *common.Address) (bool, bool, bool, error)) error // unfold the tx inside the container
}

type TxData

type TxData interface {
	Nonce() uint64
	GasLimit() uint64
	GasPrice() *big.Int
	Amount() *big.Int
	To() *common.Address
	Data() []byte
	AccessList() types.AccessList
}

type Unstake

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

Unstake defines the action of unstake

func NewUnstake

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

NewUnstake returns a Unstake instance

func NewUnstakeFromABIBinary

func NewUnstakeFromABIBinary(data []byte) (*Unstake, error)

NewUnstakeFromABIBinary decodes data into WithdrawStake action

func (*Unstake) BucketIndex

func (sr *Unstake) BucketIndex() uint64

BucketIndex returns bucket index

func (*Unstake) Cost added in v2.0.6

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

Cost returns the total cost of a Unstake

func (*Unstake) EncodeABIBinary added in v2.0.6

func (su *Unstake) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*Unstake) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a Unstake

func (*Unstake) LoadProto

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

LoadProto converts a protobuf's Action to reclaimStake

func (*Unstake) Payload

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

Payload returns the payload bytes

func (*Unstake) Proto

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

Proto converts to protobuf stake reclaim action struct

func (*Unstake) Serialize

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

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

func (*Unstake) ToEthTx added in v2.0.6

func (su *Unstake) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

type WithdrawStake

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

WithdrawStake defines the action of stake withdraw

func NewWithdrawStake

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

NewWithdrawStake returns a WithdrawStake instance

func NewWithdrawStakeFromABIBinary

func NewWithdrawStakeFromABIBinary(data []byte) (*WithdrawStake, error)

NewWithdrawStakeFromABIBinary decodes data into WithdrawStake action

func (*WithdrawStake) BucketIndex

func (sr *WithdrawStake) BucketIndex() uint64

BucketIndex returns bucket index

func (*WithdrawStake) Cost added in v2.0.6

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

Cost returns the total cost of a WithdrawStake

func (*WithdrawStake) EncodeABIBinary added in v2.0.6

func (sw *WithdrawStake) EncodeABIBinary() ([]byte, error)

EncodeABIBinary encodes data in abi encoding

func (*WithdrawStake) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a WithdrawStake

func (*WithdrawStake) LoadProto

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

LoadProto converts a protobuf's Action to reclaimStake

func (*WithdrawStake) Payload

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

Payload returns the payload bytes

func (*WithdrawStake) Proto

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

Proto converts to protobuf stake reclaim action struct

func (*WithdrawStake) Serialize

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

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

func (*WithdrawStake) ToEthTx added in v2.0.6

func (sw *WithdrawStake) ToEthTx(_ uint32) (*types.Transaction, error)

ToEthTx converts action to eth-compatible tx

Directories

Path Synopsis
Package protocol is a generated GoMock package.
Package protocol is a generated GoMock package.
staking
Package staking is a generated GoMock package.
Package staking is a generated GoMock package.

Jump to

Keyboard shortcuts

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