action

package
v2.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LegacyTxType     = 0
	AccessListTxType = 1
	DynamicFeeTxType = 2
	BlobTxType       = 3
)
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 (
	DefaultBaseFeeChangeDenominator = 8             // Bounds the amount the base fee can change between blocks.
	DefaultElasticityMultiplier     = 2             // Bounds the maximum gas limit an EIP-1559 block may have.
	InitialBaseFee                  = 1000000000000 // Initial base fee for EIP-1559 blocks.
)

constants for EIP-1559 dynamic fee

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")
	ErrGasFeeCapTooLow    = errors.New("fee cap less than base fee")
	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")
	ErrInvalidProto       = errors.New("invalid 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")
	ErrGasTipOverFeeCap   = errors.New("tip cap is greater than fee cap")
	ErrMissRequiredField  = errors.New("missing required field")
	ErrValueVeryHigh      = errors.New("value is very high")
	ErrSpecialAddress     = errors.New("special address not allowed")
)

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

func CheckSpecialAddress(act Action) bool

func CheckTransferAddress added in v2.0.6

func CheckTransferAddress(act Action) error

func DecodeEtherTx

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

DecodeEtherTx decodes raw data string into eth tx

func EffectiveGasTip

func EffectiveGasTip(tx TxDynamicGas, baseFee *big.Int) (*big.Int, error)

EffectiveGas returns the effective gas

func EthRawToContainer

func EthRawToContainer(chainID uint32, rawString string) (*iotextypes.ActionCore, error)

func ExtractTypeSigPubkey

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

ExtractTypeSigPubkey extracts tx type, signature, and pubkey

func FromProtoBlobTxSideCar

func FromProtoBlobTxSideCar(pb *iotextypes.BlobTxSidecar) (*types.BlobTxSidecar, error)

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

func ToProtoSideCar

func ToProtoSideCar(sidecar *types.BlobTxSidecar) *iotextypes.BlobTxSidecar

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

func (act *AbstractAction) Gas() uint64

Gas returns the gas limit

func (*AbstractAction) GasFeeCap

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

GasFeeCap returns the gas fee cap

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

type AccessListTx

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

AccessListTx represents EIP-2930 access list transaction

func NewAccessListTx

func NewAccessListTx(chainID uint32, nonce uint64, gasLimit uint64, gasPrice *big.Int, accessList types.AccessList) *AccessListTx

NewAccessListTx creates a new access list transaction

func (*AccessListTx) AccessList

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

func (*AccessListTx) BlobGas

func (tx *AccessListTx) BlobGas() uint64

func (*AccessListTx) BlobGasFeeCap

func (tx *AccessListTx) BlobGasFeeCap() *big.Int

func (*AccessListTx) BlobHashes

func (tx *AccessListTx) BlobHashes() []common.Hash

func (*AccessListTx) BlobTxSidecar

func (tx *AccessListTx) BlobTxSidecar() *types.BlobTxSidecar

func (*AccessListTx) ChainID

func (tx *AccessListTx) ChainID() uint32

func (*AccessListTx) EffectiveGasPrice

func (tx *AccessListTx) EffectiveGasPrice(_ *big.Int) *big.Int

func (*AccessListTx) Gas

func (tx *AccessListTx) Gas() uint64

func (*AccessListTx) GasFeeCap

func (tx *AccessListTx) GasFeeCap() *big.Int

func (*AccessListTx) GasPrice

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

func (*AccessListTx) GasTipCap

func (tx *AccessListTx) GasTipCap() *big.Int

func (*AccessListTx) Nonce

func (tx *AccessListTx) Nonce() uint64

func (*AccessListTx) SanityCheck

func (tx *AccessListTx) SanityCheck() error

func (*AccessListTx) TxType

func (tx *AccessListTx) TxType() uint32

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 BlobTx

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

BlobTx represents EIP-4844 blob transaction

func NewBlobTx

func NewBlobTx(
	chainID uint32,
	nonce uint64,
	gasLimit uint64,
	gasTipCap *big.Int,
	gasFeeCap *big.Int,
	accessList types.AccessList,
	blobData *BlobTxData,
) *BlobTx

NewBlobTx creates a new blob transaction

func (*BlobTx) AccessList

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

func (*BlobTx) BlobGas

func (tx *BlobTx) BlobGas() uint64

func (*BlobTx) BlobGasFeeCap

func (tx *BlobTx) BlobGasFeeCap() *big.Int

func (*BlobTx) BlobHashes

func (tx *BlobTx) BlobHashes() []common.Hash

func (*BlobTx) BlobTxSidecar

func (tx *BlobTx) BlobTxSidecar() *types.BlobTxSidecar

func (*BlobTx) ChainID

func (tx *BlobTx) ChainID() uint32

func (*BlobTx) EffectiveGasPrice

func (tx *BlobTx) EffectiveGasPrice(baseFee *big.Int) *big.Int

func (*BlobTx) Gas

func (tx *BlobTx) Gas() uint64

func (*BlobTx) GasFeeCap

func (tx *BlobTx) GasFeeCap() *big.Int

func (*BlobTx) GasPrice

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

func (*BlobTx) GasTipCap

func (tx *BlobTx) GasTipCap() *big.Int

func (*BlobTx) Nonce

func (tx *BlobTx) Nonce() uint64

func (*BlobTx) ProtoForRawHash

func (tx *BlobTx) ProtoForRawHash() *iotextypes.ActionCore

func (*BlobTx) SanityCheck

func (tx *BlobTx) SanityCheck() error

func (*BlobTx) TxType

func (tx *BlobTx) TxType() uint32

func (*BlobTx) ValidateSidecar

func (tx *BlobTx) ValidateSidecar() error

type BlobTxData

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

BlobTxData represents an EIP-4844 transaction

func NewBlobTxData

func NewBlobTxData(blobFeeCap *uint256.Int, blobHashes []common.Hash, sidecar *types.BlobTxSidecar) *BlobTxData

func (*BlobTxData) SanityCheck

func (tx *BlobTxData) SanityCheck() error

func (*BlobTxData) ValidateSidecar

func (tx *BlobTxData) ValidateSidecar() error

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

CandidateActivate is the action to update a candidate's bucket

func NewCandidateActivate

func NewCandidateActivate(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) EthData

func (cr *CandidateActivate) EthData() ([]byte, error)

EthData returns the ABI-encoded data for converting to eth tx

func (CandidateActivate) EthTo

func (CandidateActivate) EthTo() (*common.Address, error)

func (*CandidateActivate) FillAction

func (cr *CandidateActivate) FillAction(act *iotextypes.ActionCore)

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

func (cr *CandidateActivate) SanityCheck() error

func (CandidateActivate) Value

func (CandidateActivate) Value() *big.Int

type CandidateEndorsement

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

CandidateEndorsement is the action to endorse or unendorse a candidate

func NewCandidateEndorsement

func NewCandidateEndorsement(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(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) EthData

func (act *CandidateEndorsement) EthData() ([]byte, error)

EthData returns the ABI-encoded data for converting to eth tx

func (CandidateEndorsement) EthTo

func (CandidateEndorsement) EthTo() (*common.Address, error)

func (*CandidateEndorsement) FillAction

func (act *CandidateEndorsement) FillAction(core *iotextypes.ActionCore)

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

func (act *CandidateEndorsement) SanityCheck() error

func (CandidateEndorsement) Value

func (CandidateEndorsement) Value() *big.Int

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

CandidateRegister is the action to register a candidate

func NewCandidateRegister

func NewCandidateRegister(
	name, operatorAddrStr, rewardAddrStr, ownerAddrStr, amountStr string,
	duration uint32,
	autoStake bool,
	payload []byte,
) (*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) Duration

func (cr *CandidateRegister) Duration() uint32

Duration returns the self-stake duration

func (*CandidateRegister) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (CandidateRegister) EthTo

func (CandidateRegister) EthTo() (*common.Address, error)

func (*CandidateRegister) FillAction

func (act *CandidateRegister) FillAction(core *iotextypes.ActionCore)

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

func (CandidateRegister) Value() *big.Int

type CandidateTransferOwnership

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

CandidateTransferOwnership is the action to transfer ownership of a candidate

func NewCandidateTransferOwnership

func NewCandidateTransferOwnership(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) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (CandidateTransferOwnership) EthTo

func (CandidateTransferOwnership) EthTo() (*common.Address, error)

func (*CandidateTransferOwnership) FillAction

func (act *CandidateTransferOwnership) FillAction(core *iotextypes.ActionCore)

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

func (CandidateTransferOwnership) Value() *big.Int

type CandidateUpdate

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

CandidateUpdate is the action to update a candidate

func NewCandidateUpdate

func NewCandidateUpdate(name, operatorAddrStr, rewardAddrStr string) (*CandidateUpdate, error)

NewCandidateUpdate creates a CandidateUpdate instance

func NewCandidateUpdateFromABIBinary

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

NewCandidateUpdateFromABIBinary decodes data into CandidateUpdate action

func (*CandidateUpdate) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (CandidateUpdate) EthTo

func (CandidateUpdate) EthTo() (*common.Address, error)

func (*CandidateUpdate) FillAction

func (act *CandidateUpdate) FillAction(core *iotextypes.ActionCore)

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

func (CandidateUpdate) Value() *big.Int

type ChangeCandidate

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

ChangeCandidate defines the action of changing stake candidate ts the other

func NewChangeCandidate

func NewChangeCandidate(
	candName string,
	bucketIndex uint64,
	payload []byte,
) *ChangeCandidate

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

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

EthData returns the ABI-encoded data for converting to eth tx

func (ChangeCandidate) EthTo

func (ChangeCandidate) EthTo() (*common.Address, error)

func (*ChangeCandidate) FillAction

func (act *ChangeCandidate) FillAction(core *iotextypes.ActionCore)

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

func (ChangeCandidate) Value() *big.Int

type ClaimFromRewardingFund

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

ClaimFromRewardingFund is the action to claim reward from the rewarding fund

func NewClaimFromRewardingFund

func NewClaimFromRewardingFund(amount *big.Int,
	address address.Address,
	data []byte) *ClaimFromRewardingFund

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

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

ClaimAmount returns the amount to claim note that this amount won't be charged/deducted from sender

func (*ClaimFromRewardingFund) Data

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

Data returns the additional data

func (*ClaimFromRewardingFund) EthData

func (c *ClaimFromRewardingFund) EthData() ([]byte, error)

EthData returns the ABI-encoded data for converting to eth tx

func (ClaimFromRewardingFund) EthTo

func (ClaimFromRewardingFund) EthTo() (*common.Address, error)

func (*ClaimFromRewardingFund) FillAction

func (act *ClaimFromRewardingFund) FillAction(core *iotextypes.ActionCore)

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

func (ClaimFromRewardingFund) Value() *big.Int

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

CreateStake defines the action of CreateStake creation

func NewCreateStake

func NewCreateStake(
	candidateName, amount string,
	duration uint32,
	autoStake bool,
	payload []byte,
) (*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) Duration

func (cs *CreateStake) Duration() uint32

Duration returns the CreateStaked duration

func (*CreateStake) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (CreateStake) EthTo

func (CreateStake) EthTo() (*common.Address, error)

func (*CreateStake) FillAction

func (act *CreateStake) FillAction(core *iotextypes.ActionCore)

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

func (CreateStake) Value() *big.Int

type DepositToRewardingFund

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

DepositToRewardingFund is the action to deposit to the rewarding fund

func NewDepositToRewardingFund

func NewDepositToRewardingFund(amount *big.Int, data []byte) *DepositToRewardingFund

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

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

Data returns the additional data

func (*DepositToRewardingFund) EthData

func (d *DepositToRewardingFund) EthData() ([]byte, error)

EthData returns the ABI-encoded data for converting to eth tx

func (DepositToRewardingFund) EthTo

func (DepositToRewardingFund) EthTo() (*common.Address, error)

func (*DepositToRewardingFund) FillAction

func (act *DepositToRewardingFund) FillAction(core *iotextypes.ActionCore)

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

func (DepositToRewardingFund) Value() *big.Int

type DepositToStake

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

DepositToStake defines the action of stake add deposit

func NewDepositToStake

func NewDepositToStake(
	index uint64,
	amount string,
	payload []byte,
) (*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) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (DepositToStake) EthTo

func (DepositToStake) EthTo() (*common.Address, error)

func (*DepositToStake) FillAction

func (act *DepositToStake) FillAction(core *iotextypes.ActionCore)

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

func (DepositToStake) Value() *big.Int

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 DynamicFeeTx

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

DynamicFeeTx is a transaction type with dynamic fee cap and tip cap

func NewDynamicFeeTx

func NewDynamicFeeTx(chainID uint32, nonce uint64, gasLimit uint64, gasFeeCap, gasTipCap *big.Int, accessList types.AccessList) *DynamicFeeTx

NewDynamicFeeTx creates a new dynamic fee transaction

func (*DynamicFeeTx) AccessList

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

func (*DynamicFeeTx) BlobGas

func (tx *DynamicFeeTx) BlobGas() uint64

func (*DynamicFeeTx) BlobGasFeeCap

func (tx *DynamicFeeTx) BlobGasFeeCap() *big.Int

func (*DynamicFeeTx) BlobHashes

func (tx *DynamicFeeTx) BlobHashes() []common.Hash

func (*DynamicFeeTx) BlobTxSidecar

func (tx *DynamicFeeTx) BlobTxSidecar() *types.BlobTxSidecar

func (*DynamicFeeTx) ChainID

func (tx *DynamicFeeTx) ChainID() uint32

func (*DynamicFeeTx) EffectiveGasPrice

func (tx *DynamicFeeTx) EffectiveGasPrice(baseFee *big.Int) *big.Int

func (*DynamicFeeTx) Gas

func (tx *DynamicFeeTx) Gas() uint64

func (*DynamicFeeTx) GasFeeCap

func (tx *DynamicFeeTx) GasFeeCap() *big.Int

func (*DynamicFeeTx) GasPrice

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

func (*DynamicFeeTx) GasTipCap

func (tx *DynamicFeeTx) GasTipCap() *big.Int

func (*DynamicFeeTx) Nonce

func (tx *DynamicFeeTx) Nonce() uint64

func (*DynamicFeeTx) SanityCheck

func (tx *DynamicFeeTx) SanityCheck() error

func (*DynamicFeeTx) TxType

func (tx *DynamicFeeTx) TxType() uint32

type Envelope

type Envelope interface {
	TxData
	TxType() uint32
	ChainID() uint32
	Destination() (string, bool)
	Cost() (*big.Int, error)
	IntrinsicGas() (uint64, error)
	Size() uint32
	Action() Action
	ToEthTx(uint32, iotextypes.Encoding) (*types.Transaction, error)
	Proto() *iotextypes.ActionCore
	ProtoForHash() *iotextypes.ActionCore
	LoadProto(*iotextypes.ActionCore) error
	SetNonce(uint64)
	SetGas(uint64)
	SetChainID(uint32)
	SanityCheck() error
	ValidateSidecar() error
}

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

func NewEnvelope

func NewEnvelope(common TxCommonInternal, payload actionPayload) Envelope

NewEnvelope creates a new envelope

func StakingRewardingTxToEnvelope

func StakingRewardingTxToEnvelope(chainID uint32, tx *types.Transaction) (Envelope, error)

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

func (b *EnvelopeBuilder) SetAccessList(acl types.AccessList) *EnvelopeBuilder

func (*EnvelopeBuilder) SetAction

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

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

func (*EnvelopeBuilder) SetBlobTxData

func (b *EnvelopeBuilder) SetBlobTxData(
	feeCap *uint256.Int, hashes []common.Hash, sc *types.BlobTxSidecar) *EnvelopeBuilder

func (*EnvelopeBuilder) SetChainID

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

SetChainID sets action's chainID.

func (*EnvelopeBuilder) SetDynamicGas

func (b *EnvelopeBuilder) SetDynamicGas(feeCap, tipCap *big.Int) *EnvelopeBuilder

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

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

func (*EnvelopeBuilder) SetVersion

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

SetVersion sets action's version.

type EthCompatibleAction

type EthCompatibleAction interface {
	EthTo() (*common.Address, error)
	Value() *big.Int
	EthData() ([]byte, error)
}

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

type Execution

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

Execution defines the struct of account-based contract execution

func NewExecution

func NewExecution(contract string, amount *big.Int, data []byte) *Execution

NewExecution returns an Execution instance (w/o 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) 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) EthData

func (ex *Execution) EthData() ([]byte, error)

EthData returns the data for converting to eth tx

func (*Execution) EthTo

func (ex *Execution) EthTo() (*common.Address, error)

EthTo returns the address for converting to eth tx

func (*Execution) FillAction

func (act *Execution) FillAction(core *iotextypes.ActionCore)

func (*Execution) GasLimitForCost

func (ex *Execution) GasLimitForCost()

GasLimitForCost is an empty func to indicate that gas limit should be used to calculate action's cost

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

func (ex *Execution) Size() uint32

Size returns the size of this Execution

func (*Execution) To

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

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

func (*Execution) Value

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

Value returns the value for converting to eth tx

type GrantReward

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

GrantReward is the action to grant either block or epoch reward

func NewGrantReward

func NewGrantReward(rewardType int, height uint64) *GrantReward

func (*GrantReward) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (GrantReward) EthTo

func (GrantReward) EthTo() (*common.Address, error)

func (*GrantReward) FillAction

func (act *GrantReward) FillAction(core *iotextypes.ActionCore)

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

func (*GrantReward) SanityCheck() error

func (*GrantReward) Serialize

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

Serialize returns a raw byte stream of a grant reward action

func (GrantReward) Value

func (GrantReward) Value() *big.Int

type LegacyTx

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

LegacyTx is the legacy transaction

func NewLegacyTx

func NewLegacyTx(chainID uint32, nonce uint64, gasLimit uint64, gasPrice *big.Int) *LegacyTx

NewLegacyTx creates a new legacy transaction

func (*LegacyTx) AccessList

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

func (*LegacyTx) BlobGas

func (tx *LegacyTx) BlobGas() uint64

func (*LegacyTx) BlobGasFeeCap

func (tx *LegacyTx) BlobGasFeeCap() *big.Int

func (*LegacyTx) BlobHashes

func (tx *LegacyTx) BlobHashes() []common.Hash

func (*LegacyTx) BlobTxSidecar

func (tx *LegacyTx) BlobTxSidecar() *types.BlobTxSidecar

func (*LegacyTx) ChainID

func (tx *LegacyTx) ChainID() uint32

func (*LegacyTx) EffectiveGasPrice

func (tx *LegacyTx) EffectiveGasPrice(_ *big.Int) *big.Int

func (*LegacyTx) Gas

func (tx *LegacyTx) Gas() uint64

func (*LegacyTx) GasFeeCap

func (tx *LegacyTx) GasFeeCap() *big.Int

func (*LegacyTx) GasPrice

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

func (*LegacyTx) GasTipCap

func (tx *LegacyTx) GasTipCap() *big.Int

func (*LegacyTx) Nonce

func (tx *LegacyTx) Nonce() uint64

func (*LegacyTx) SanityCheck

func (tx *LegacyTx) SanityCheck() error

func (*LegacyTx) TxType

func (tx *LegacyTx) TxType() uint32

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

func NewMigrateStake

func NewMigrateStake(index uint64) *MigrateStake

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

func (ms *MigrateStake) EthData() ([]byte, error)

EthData returns the ABI-encoded data for converting to eth tx

func (MigrateStake) EthTo

func (MigrateStake) EthTo() (*common.Address, error)

func (*MigrateStake) FillAction

func (act *MigrateStake) FillAction(core *iotextypes.ActionCore)

func (*MigrateStake) GasLimitForCost

func (ms *MigrateStake) GasLimitForCost()

GasLimitForCost is an empty func to indicate that gas limit should be used to calculate action's cost

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

func (*MigrateStake) SanityCheck() error

func (*MigrateStake) Serialize

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

Serialize returns a raw byte stream of the Stake again struct

func (MigrateStake) Value

func (MigrateStake) Value() *big.Int

type PutPollResult

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

PutPollResult represents put the poll result from gravity chain.

func NewPutPollResult

func NewPutPollResult(
	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) FillAction

func (act *PutPollResult) FillAction(core *iotextypes.ActionCore)

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

func (r *PutPollResult) SanityCheck() error

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
	BlobGasUsed       uint64
	BlobGasPrice      *big.Int
	ContractAddress   string
	TxIndex           uint32
	EffectiveGasPrice *big.Int
	// 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) PriorityFee

func (receipt *Receipt) PriorityFee() *big.Int

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

Restake defines the action of stake again

func NewRestake

func NewRestake(
	index uint64,
	duration uint32,
	autoStake bool,
	payload []byte,
) *Restake

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

func (rs *Restake) Duration() uint32

Duration returns the updated duration

func (*Restake) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (Restake) EthTo

func (Restake) EthTo() (*common.Address, error)

func (*Restake) FillAction

func (act *Restake) FillAction(core *iotextypes.ActionCore)

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

func (rs *Restake) SanityCheck() error

func (*Restake) Serialize

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

Serialize returns a raw byte stream of the Stake again struct

func (Restake) Value

func (Restake) Value() *big.Int

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

func (sealed *SealedEnvelope) ToEthTx() (*types.Transaction, error)

ToEthTx converts to Ethereum tx

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

Transfer defines the struct of account-based transfer

func NewTransfer

func NewTransfer(
	amount *big.Int,
	recipient string,
	payload []byte,
) *Transfer

NewTransfer returns a Transfer instance

func (*Transfer) Amount

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

Amount returns the amount

func (*Transfer) Destination

func (tsf *Transfer) Destination() string

Destination returns the recipient address as destination.

func (*Transfer) EthData

func (tsf *Transfer) EthData() ([]byte, error)

EthData returns the data for converting to eth tx

func (*Transfer) EthTo

func (tsf *Transfer) EthTo() (*common.Address, error)

EthTo returns the address for converting to eth tx

func (*Transfer) FillAction

func (tsf *Transfer) FillAction(act *iotextypes.ActionCore)

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

func (tsf *Transfer) Size() uint32

Size returns the total size of this Transfer

func (*Transfer) Value

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

Value returns the value for converting to eth tx

type TransferStake

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

TransferStake defines the action of transfering stake ownership ts the other

func NewTransferStake

func NewTransferStake(
	voterAddress string,
	bucketIndex uint64,
	payload []byte,
) (*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) EthData

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

EthData returns the ABI-encoded data for converting to eth tx

func (TransferStake) EthTo

func (TransferStake) EthTo() (*common.Address, error)

func (*TransferStake) FillAction

func (act *TransferStake) FillAction(core *iotextypes.ActionCore)

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

func (ts *TransferStake) SanityCheck() error

func (*TransferStake) Serialize

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

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

func (TransferStake) Value

func (TransferStake) Value() *big.Int

func (*TransferStake) VoterAddress

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

VoterAddress returns the address of recipient

type TxBlob

type TxBlob interface {
	BlobGas() uint64
	BlobGasFeeCap() *big.Int
	BlobHashes() []common.Hash
	BlobTxSidecar() *types.BlobTxSidecar
}

type TxCommon

type TxCommon interface {
	Nonce() uint64
	Gas() uint64
	GasPrice() *big.Int
	EffectiveGasPrice(*big.Int) *big.Int
	TxDynamicGas
	AccessList() types.AccessList
	TxBlob
}

type TxCommonInternal

type TxCommonInternal interface {
	TxCommon
	TxType() uint32
	ChainID() uint32
	SanityCheck() error
	// contains filtered or unexported methods
}

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 {
	TxCommon
	Value() *big.Int
	To() *common.Address
	Data() []byte
}

TxData is the interface required to execute a transaction by EVM It follows the same-name interface in go-ethereum

type TxDataForSimulation

type TxDataForSimulation interface {
	TxData
	SanityCheck() error
	Proto() *iotextypes.ActionCore
}

TxDataForSimulation is the interface to run a simulation

type TxDynamicGas

type TxDynamicGas interface {
	GasTipCap() *big.Int
	GasFeeCap() *big.Int
}

type Unstake

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

Unstake defines the action of unstake

func NewUnstake

func NewUnstake(bucketIndex uint64, payload []byte) *Unstake

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

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

EthData returns the ABI-encoded data for converting to eth tx

func (*Unstake) FillAction

func (act *Unstake) FillAction(core *iotextypes.ActionCore)

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

func (sr *Unstake) SanityCheck() error

func (*Unstake) Serialize

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

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

type WithdrawStake

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

WithdrawStake defines the action of stake withdraw

func NewWithdrawStake

func NewWithdrawStake(bucketIndex uint64, payload []byte) *WithdrawStake

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

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

EthData returns the ABI-encoded data for converting to eth tx

func (*WithdrawStake) FillAction

func (act *WithdrawStake) FillAction(core *iotextypes.ActionCore)

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

func (sr *WithdrawStake) SanityCheck() error

func (*WithdrawStake) Serialize

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

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

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