action

package
v1.14.0 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2024 License: Apache-2.0 Imports: 24 Imported by: 74

Documentation

Index

Constants

View Source
const (
	// CandidateRegisterPayloadGas represents the CandidateRegister payload gas per uint
	CandidateRegisterPayloadGas = uint64(100)
	// CandidateRegisterBaseIntrinsicGas represents the base intrinsic gas for CandidateRegister
	CandidateRegisterBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	EmptyAddress                     = ""
	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 (
	// 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")
)
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 added in v1.6.4

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

CalculateIntrinsicGas returns the intrinsic gas of an action

func DecodeEtherTx added in v1.13.0

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

DecodeEtherTx decodes raw data string into eth tx

func DecodeRawTx added in v1.6.3

func DecodeRawTx(rawData string, chainID uint32) (tx *types.Transaction, sig []byte, pubkey crypto.PublicKey, err error)

DecodeRawTx decodes raw data string into eth tx

func ExtractTypeSigPubkey added in v1.13.0

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

ExtractTypeSigPubkey extracts tx type, signature, and pubkey

func IsSystemAction added in v1.8.1

func IsSystemAction(act *SealedEnvelope) bool

IsSystemAction determine whether input action belongs to system action

func IsValidCandidateName added in v1.10.0

func IsValidCandidateName(s string) bool

IsValidCandidateName check if a candidate name string is valid.

func LoadErrorDescription added in v1.6.1

func LoadErrorDescription(err error) string

LoadErrorDescription loads corresponding description related to the error

func MsgHash added in v1.1.0

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

MsgHash calculate the hash of msg

func NewConsignJSON added in v1.1.0

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

NewConsignJSON creates a consignment JSON from inputs

func NewConsignMsg added in v1.1.0

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

NewConsignMsg creates a consignment message from inputs

func NewEthSigner added in v1.12.1

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

NewEthSigner returns the proper signer for Eth-compatible tx

func RawTxToSignedTx added in v1.12.1

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

RawTxToSignedTx converts the raw tx to corresponding signed tx

func RecoverPubkeyFromEccSig added in v1.1.0

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 added in v1.6.3

func (act *AbstractAction) ChainID() uint32

ChainID returns the chainID

func (*AbstractAction) GasLimit

func (act *AbstractAction) GasLimit() uint64

GasLimit returns the gas limit

func (*AbstractAction) GasPrice

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

GasPrice returns the gas price

func (*AbstractAction) Nonce

func (act *AbstractAction) Nonce() uint64

Nonce returns the nonce

func (*AbstractAction) SanityCheck added in v1.0.0

func (act *AbstractAction) SanityCheck() error

SanityCheck validates the variables in the action

func (*AbstractAction) SetEnvelopeContext added in v0.4.4

func (act *AbstractAction) SetEnvelopeContext(elp Envelope)

SetEnvelopeContext sets the struct according to input

func (*AbstractAction) SetGasLimit added in v1.6.4

func (act *AbstractAction) SetGasLimit(val uint64)

SetGasLimit sets gaslimit

func (*AbstractAction) SetGasPrice added in v1.6.4

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

SetGasPrice sets gaslimit

func (*AbstractAction) SetNonce added in v1.6.4

func (act *AbstractAction) SetNonce(val uint64)

SetNonce sets gaslimit

func (*AbstractAction) Version

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

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

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

func (*Builder) SetNonce

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

SetNonce sets action's nonce.

func (*Builder) SetVersion

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

SetVersion sets action's version.

type CandidateActivate added in v1.13.0

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

CandidateActivate is the action to update a candidate's bucket

func NewCandidateActivate added in v1.13.0

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

NewCandidateActivate returns a CandidateActivate action

func NewCandidateActivateFromABIBinary added in v1.14.0

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

NewCandidateActivateFromABIBinary parses the smart contract input and creates an action

func (*CandidateActivate) BucketID added in v1.13.0

func (cr *CandidateActivate) BucketID() uint64

BucketID returns the bucket index want to be changed to

func (*CandidateActivate) Cost added in v1.13.0

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

Cost returns the total cost of a CandidateRegister

func (*CandidateActivate) IntrinsicGas added in v1.13.0

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

IntrinsicGas returns the intrinsic gas of a CandidateRegister

func (*CandidateActivate) LoadProto added in v1.14.0

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

LoadProto converts a protobuf's Action to CandidateActivate

func (*CandidateActivate) Proto added in v1.14.0

Proto converts CandidateActivate to protobuf's Action

func (*CandidateActivate) ToEthTx added in v1.14.0

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

ToEthTx returns an Ethereum transaction which corresponds to this action

type CandidateEndorsement added in v1.14.0

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

CandidateEndorsement is the action to endorse or unendorse a candidate

func NewCandidateEndorsement added in v1.14.0

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

NewCandidateEndorsement returns a CandidateEndorsement action

func NewCandidateEndorsementFromABIBinary added in v1.14.0

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

NewCandidateEndorsementFromABIBinary parses the smart contract input and creates an action

func (*CandidateEndorsement) BucketIndex added in v1.14.0

func (act *CandidateEndorsement) BucketIndex() uint64

BucketIndex returns the bucket index of the action

func (*CandidateEndorsement) Cost added in v1.14.0

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

Cost returns the total cost of a CandidateEndorsement

func (*CandidateEndorsement) IntrinsicGas added in v1.14.0

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

IntrinsicGas returns the intrinsic gas of a CandidateEndorsement

func (*CandidateEndorsement) IsEndorse added in v1.14.0

func (act *CandidateEndorsement) IsEndorse() bool

IsEndorse returns true if the action is to endorse a candidate

func (*CandidateEndorsement) LoadProto added in v1.14.0

LoadProto converts a protobuf's Action to CandidateEndorsement

func (*CandidateEndorsement) Proto added in v1.14.0

Proto converts CandidateEndorsement to protobuf's Action

func (*CandidateEndorsement) ToEthTx added in v1.14.0

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

ToEthTx returns an Ethereum transaction which corresponds to this action

type CandidateRegister added in v0.11.0

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

CandidateRegister is the action to register a candidate

func NewCandidateRegister added in v0.11.0

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

NewCandidateRegister creates a CandidateRegister instance

func NewCandidateRegisterFromABIBinary added in v1.7.1

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

NewCandidateRegisterFromABIBinary decodes data into CandidateRegister action

func (*CandidateRegister) Amount added in v0.11.0

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

Amount returns the amount

func (*CandidateRegister) AutoStake added in v0.11.0

func (cr *CandidateRegister) AutoStake() bool

AutoStake returns the if staking is auth stake

func (*CandidateRegister) Cost added in v0.11.0

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

Cost returns the total cost of a CandidateRegister

func (*CandidateRegister) Duration added in v0.11.0

func (cr *CandidateRegister) Duration() uint32

Duration returns the self-stake duration

func (*CandidateRegister) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*CandidateRegister) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a CandidateRegister

func (*CandidateRegister) LoadProto added in v0.11.0

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

LoadProto converts a protobuf's Action to CandidateRegister

func (*CandidateRegister) Name added in v0.11.0

func (cr *CandidateRegister) Name() string

Name returns candidate name to register

func (*CandidateRegister) OperatorAddress added in v0.11.0

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

OperatorAddress returns candidate operatorAddress to register

func (*CandidateRegister) OwnerAddress added in v0.11.0

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

OwnerAddress returns candidate ownerAddress to register

func (*CandidateRegister) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*CandidateRegister) Proto added in v0.11.0

Proto converts to protobuf CandidateRegister Action

func (*CandidateRegister) RewardAddress added in v0.11.0

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

RewardAddress returns candidate rewardAddress to register

func (*CandidateRegister) SanityCheck added in v1.0.0

func (cr *CandidateRegister) SanityCheck() error

SanityCheck validates the variables in the action

func (*CandidateRegister) Serialize added in v0.11.0

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

Serialize returns a raw byte stream of the CandidateRegister struct

func (*CandidateRegister) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

type CandidateUpdate added in v0.11.0

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

CandidateUpdate is the action to update a candidate

func NewCandidateUpdate added in v0.11.0

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

NewCandidateUpdate creates a CandidateUpdate instance

func NewCandidateUpdateFromABIBinary added in v1.7.1

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

NewCandidateUpdateFromABIBinary decodes data into CandidateUpdate action

func (*CandidateUpdate) Cost added in v0.11.0

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

Cost returns the total cost of a CandidateUpdate

func (*CandidateUpdate) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*CandidateUpdate) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a CandidateUpdate

func (*CandidateUpdate) LoadProto added in v0.11.0

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

LoadProto converts a protobuf's Action to CandidateUpdate

func (*CandidateUpdate) Name added in v0.11.0

func (cu *CandidateUpdate) Name() string

Name returns candidate name to update

func (*CandidateUpdate) OperatorAddress added in v0.11.0

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

OperatorAddress returns candidate operatorAddress to update

func (*CandidateUpdate) Proto added in v0.11.0

Proto converts to protobuf CandidateUpdate Action

func (*CandidateUpdate) RewardAddress added in v0.11.0

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

RewardAddress returns candidate rewardAddress to update

func (*CandidateUpdate) SanityCheck added in v1.10.0

func (cu *CandidateUpdate) SanityCheck() error

SanityCheck validates the variables in the action

func (*CandidateUpdate) Serialize added in v0.11.0

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

Serialize returns a raw byte stream of the CandidateUpdate struct

func (*CandidateUpdate) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

type ChangeCandidate added in v0.11.0

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

ChangeCandidate defines the action of changing stake candidate ts the other

func NewChangeCandidate added in v0.11.0

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

NewChangeCandidate returns a ChangeCandidate instance

func NewChangeCandidateFromABIBinary added in v1.7.1

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

NewChangeCandidateFromABIBinary decodes data into ChangeCandidate action

func (*ChangeCandidate) BucketIndex added in v0.11.0

func (cc *ChangeCandidate) BucketIndex() uint64

BucketIndex returns bucket index

func (*ChangeCandidate) Candidate added in v0.11.0

func (cc *ChangeCandidate) Candidate() string

Candidate returns the address of recipient

func (*ChangeCandidate) Cost added in v0.11.0

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

Cost returns the tstal cost of a ChangeCandidate

func (*ChangeCandidate) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*ChangeCandidate) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a ChangeCandidate

func (*ChangeCandidate) LoadProto added in v0.11.0

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

LoadProto loads change candidate from protobuf

func (*ChangeCandidate) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*ChangeCandidate) Proto added in v0.11.0

Proto converts change candidate to protobuf

func (*ChangeCandidate) SanityCheck added in v1.10.0

func (cc *ChangeCandidate) SanityCheck() error

SanityCheck validates the variables in the action

func (*ChangeCandidate) Serialize added in v0.11.0

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

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

func (*ChangeCandidate) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

type ClaimFromRewardingFund added in v0.5.0

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

ClaimFromRewardingFund is the action to claim reward from the rewarding fund

func NewClaimFromRewardingFundFromABIBinary added in v1.10.0

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

NewClaimFromRewardingFundFromABIBinary decodes data into action

func (*ClaimFromRewardingFund) Amount added in v0.5.0

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

Amount returns the amount to claim

func (*ClaimFromRewardingFund) Cost added in v0.5.0

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

Cost returns the total cost of a claim action

func (*ClaimFromRewardingFund) Data added in v0.5.0

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

Data returns the additional data

func (*ClaimFromRewardingFund) IntrinsicGas added in v0.5.0

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

IntrinsicGas returns the intrinsic gas of a claim action

func (*ClaimFromRewardingFund) LoadProto added in v0.5.0

LoadProto converts a claim action protobuf to a claim action struct

func (*ClaimFromRewardingFund) Proto added in v0.5.0

Proto converts a claim action struct to a claim action protobuf

func (*ClaimFromRewardingFund) SanityCheck added in v1.0.0

func (c *ClaimFromRewardingFund) SanityCheck() error

SanityCheck validates the variables in the action

func (*ClaimFromRewardingFund) Serialize added in v0.7.1

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

Serialize returns a raw byte stream of a claim action

func (*ClaimFromRewardingFund) ToEthTx added in v1.10.0

ToEthTx converts action to eth-compatible tx

type ClaimFromRewardingFundBuilder added in v0.5.0

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

ClaimFromRewardingFundBuilder is the struct to build ClaimFromRewardingFund

func (*ClaimFromRewardingFundBuilder) Build added in v0.5.0

Build builds a new claim from rewarding fund action

func (*ClaimFromRewardingFundBuilder) SetAmount added in v0.5.0

SetAmount sets the amount to claim

func (*ClaimFromRewardingFundBuilder) SetData added in v0.5.0

SetData sets the additional data

type ConsignJSON added in v1.1.0

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

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

type ConsignMsgEther added in v1.1.0

type ConsignMsgEther struct {
	BucketIdx 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 added in v1.1.0

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

Consignment represents a consignment

func NewConsignment added in v1.1.0

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

NewConsignment creates a consignment from data

type CreateStake added in v0.11.0

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

CreateStake defines the action of CreateStake creation

func NewCreateStake added in v0.11.0

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

NewCreateStake returns a CreateStake instance

func NewCreateStakeFromABIBinary added in v1.7.1

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

NewCreateStakeFromABIBinary decodes data into createStake action

func (*CreateStake) Amount added in v0.11.0

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

Amount returns the amount

func (*CreateStake) AutoStake added in v0.11.0

func (cs *CreateStake) AutoStake() bool

AutoStake returns the flag of AutoStake s

func (*CreateStake) Candidate added in v0.11.0

func (cs *CreateStake) Candidate() string

Candidate returns the candidate name

func (*CreateStake) Cost added in v0.11.0

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

Cost returns the total cost of a CreateStake

func (*CreateStake) Duration added in v0.11.0

func (cs *CreateStake) Duration() uint32

Duration returns the CreateStaked duration

func (*CreateStake) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*CreateStake) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a CreateStake

func (*CreateStake) LoadProto added in v0.11.0

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

LoadProto converts a protobuf's Action to CreateStake

func (*CreateStake) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*CreateStake) Proto added in v0.11.0

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

Proto converts to protobuf CreateStake Action

func (*CreateStake) SanityCheck added in v1.0.0

func (cs *CreateStake) SanityCheck() error

SanityCheck validates the variables in the action

func (*CreateStake) Serialize added in v0.11.0

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

Serialize returns a raw byte stream of the CreateStake struct

func (*CreateStake) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

type DepositToRewardingFund added in v0.5.0

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

DepositToRewardingFund is the action to deposit to the rewarding fund

func NewDepositToRewardingFundFromABIBinary added in v1.10.0

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

NewDepositToRewardingFundFromABIBinary decodes data into action

func (*DepositToRewardingFund) Amount added in v0.5.0

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

Amount returns the amount to deposit

func (*DepositToRewardingFund) Cost added in v0.5.0

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

Cost returns the total cost of a deposit action

func (*DepositToRewardingFund) Data added in v0.5.0

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

Data returns the additional data

func (*DepositToRewardingFund) IntrinsicGas added in v0.5.0

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

IntrinsicGas returns the intrinsic gas of a deposit action

func (*DepositToRewardingFund) LoadProto added in v0.5.0

LoadProto converts a deposit action protobuf to a deposit action struct

func (*DepositToRewardingFund) Proto added in v0.5.0

Proto converts a deposit action struct to a deposit action protobuf

func (*DepositToRewardingFund) SanityCheck added in v1.0.0

func (d *DepositToRewardingFund) SanityCheck() error

SanityCheck validates the variables in the action

func (*DepositToRewardingFund) Serialize added in v0.7.1

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

Serialize returns a raw byte stream of a deposit action

func (*DepositToRewardingFund) ToEthTx added in v1.10.0

ToEthTx converts action to eth-compatible tx

type DepositToRewardingFundBuilder added in v0.5.0

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

DepositToRewardingFundBuilder is the struct to build DepositToRewardingFund

func (*DepositToRewardingFundBuilder) Build added in v0.5.0

Build builds a new deposit to rewarding fund action

func (*DepositToRewardingFundBuilder) SetAmount added in v0.5.0

SetAmount sets the amount to deposit

func (*DepositToRewardingFundBuilder) SetData added in v0.5.0

SetData sets the additional data

type DepositToStake added in v0.11.0

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

DepositToStake defines the action of stake add deposit

func NewDepositToStake added in v0.11.0

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

NewDepositToStake returns a DepositToStake instance

func NewDepositToStakeFromABIBinary added in v1.7.1

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

NewDepositToStakeFromABIBinary decodes data into depositToStake action

func (*DepositToStake) Amount added in v0.11.0

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

Amount returns the amount

func (*DepositToStake) BucketIndex added in v0.11.0

func (ds *DepositToStake) BucketIndex() uint64

BucketIndex returns bucket indexs

func (*DepositToStake) Cost added in v0.11.0

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

Cost returns the total cost of a DepositToStake

func (*DepositToStake) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*DepositToStake) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a DepositToStake

func (*DepositToStake) LoadProto added in v0.11.0

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

LoadProto converts a protobuf's Action to DepositToStake

func (*DepositToStake) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*DepositToStake) Proto added in v0.11.0

Proto converts to protobuf DepositToStake Action

func (*DepositToStake) SanityCheck added in v1.0.0

func (ds *DepositToStake) SanityCheck() error

SanityCheck validates the variables in the action

func (*DepositToStake) Serialize added in v0.11.0

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

Serialize returns a raw byte stream of the DepositToStake struct

func (*DepositToStake) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

type Deserializer added in v1.8.0

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 added in v1.8.0

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

ActionToSealedEnvelope converts protobuf to SealedEnvelope

func (*Deserializer) SetEvmNetworkID added in v1.8.2

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

SetEvmNetworkID sets the evm network ID for web3 actions

type Envelope added in v0.4.4

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

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

type EnvelopeBuilder added in v0.4.4

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

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

func (*EnvelopeBuilder) Build added in v0.4.4

func (b *EnvelopeBuilder) Build() Envelope

Build builds a new action.

func (*EnvelopeBuilder) BuildExecution added in v1.8.0

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

BuildExecution loads executino action into envelope

func (*EnvelopeBuilder) BuildRewardingAction added in v1.10.0

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

BuildRewardingAction loads rewarding action into envelope from abi-encoded data

func (*EnvelopeBuilder) BuildStakingAction added in v1.8.0

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

BuildStakingAction loads staking action into envelope from abi-encoded data

func (*EnvelopeBuilder) BuildTransfer added in v1.8.0

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

BuildTransfer loads transfer action into envelope

func (*EnvelopeBuilder) SetAction added in v0.4.4

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

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

func (*EnvelopeBuilder) SetChainID added in v1.6.3

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

SetChainID sets action's chainID.

func (*EnvelopeBuilder) SetGasLimit added in v0.4.4

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

SetGasLimit sets action's gas limit.

func (*EnvelopeBuilder) SetGasPrice added in v0.4.4

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

SetGasPrice sets action's gas price.

func (*EnvelopeBuilder) SetGasPriceByBytes added in v0.4.4

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

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

func (*EnvelopeBuilder) SetNonce added in v0.4.4

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

SetNonce sets action's nonce.

func (*EnvelopeBuilder) SetVersion added in v0.4.4

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

SetVersion sets action's version.

type EthCompatibleAction added in v1.8.0

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

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

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 v1.8.2

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 v1.7.1

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

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

Cost returns the cost of an execution

func (*Execution) Data

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

Data returns the data bytes

func (*Execution) Destination added in v0.5.0

func (ex *Execution) Destination() string

Destination returns a contract address

func (*Execution) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of an execution

func (*Execution) LoadProto

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

LoadProto converts a protobuf's Execution to Execution

func (*Execution) Payload added in v1.2.0

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

Payload is same as Data()

func (*Execution) Proto

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

Proto converts Execution to protobuf's Execution

func (*Execution) Recipient added in v1.2.0

func (ex *Execution) Recipient() string

Recipient is same as Contract()

func (*Execution) SanityCheck added in v1.0.0

func (ex *Execution) SanityCheck() error

SanityCheck validates the variables in the action

func (*Execution) Serialize

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

Serialize returns a raw byte stream of this Transfer

func (*Execution) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

func (*Execution) TotalSize

func (ex *Execution) TotalSize() uint32

TotalSize returns the total size of this Execution

type GrantReward added in v0.5.0

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

GrantReward is the action to grant either block or epoch reward

func (*GrantReward) Cost added in v0.5.0

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

Cost returns the total cost of a grant reward action

func (*GrantReward) Height added in v0.5.0

func (g *GrantReward) Height() uint64

Height returns the block height to grant reward

func (*GrantReward) IntrinsicGas added in v0.5.0

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

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

func (*GrantReward) LoadProto added in v0.5.0

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

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

func (*GrantReward) Proto added in v0.5.0

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

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

func (*GrantReward) RewardType added in v0.5.0

func (g *GrantReward) RewardType() int

RewardType returns the grant reward type

func (*GrantReward) Serialize added in v0.7.1

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

Serialize returns a raw byte stream of a grant reward action

type GrantRewardBuilder added in v0.5.0

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

GrantRewardBuilder is the struct to build GrantReward

func (*GrantRewardBuilder) Build added in v0.5.0

func (b *GrantRewardBuilder) Build() GrantReward

Build builds a new grant reward action

func (*GrantRewardBuilder) SetHeight added in v0.5.0

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

SetHeight sets the grant reward block height

func (*GrantRewardBuilder) SetRewardType added in v0.5.0

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

SetRewardType sets the grant reward type

type Log

type Log struct {
	Address            string
	Topics             Topics
	Data               []byte
	BlockHeight        uint64
	ActionHash         hash.Hash256
	Index, 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 PutPollResult added in v0.5.0

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

PutPollResult represents put the poll result from gravity chain.

func NewPutPollResult added in v0.5.0

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

NewPutPollResult instantiates a putting poll result action struct.

func (*PutPollResult) Candidates added in v0.5.0

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

Candidates returns the list of candidates.

func (*PutPollResult) Cost added in v0.5.0

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

Cost returns the total cost of a put poll result action

func (*PutPollResult) Height added in v0.5.0

func (r *PutPollResult) Height() uint64

Height returns put poll result height.

func (*PutPollResult) IntrinsicGas added in v0.5.0

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

IntrinsicGas returns the intrinsic gas of a put poll result action

func (*PutPollResult) LoadProto added in v0.5.0

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

LoadProto converts a proto message into put block action.

func (*PutPollResult) Proto added in v0.5.0

Proto converts put poll result action into a proto message.

func (*PutPollResult) Serialize added in v0.7.1

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

Serialize returns the byte representation of put poll result action.

type Receipt

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

Receipt represents the result of a contract

func (*Receipt) AddLogs added in v1.1.0

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

AddLogs add log to receipt and filter out nil log.

func (*Receipt) AddTransactionLogs added in v1.1.0

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

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

func (*Receipt) ConvertFromReceiptPb

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

ConvertFromReceiptPb converts a protobuf's Receipt to Receipt

func (*Receipt) ConvertToReceiptPb

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

ConvertToReceiptPb converts a Receipt to protobuf's Receipt

func (*Receipt) Deserialize

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

Deserialize parse the byte stream into Receipt

func (*Receipt) ExecutionRevertMsg added in v1.1.4

func (receipt *Receipt) ExecutionRevertMsg() string

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

func (*Receipt) Hash

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

Hash returns the hash of receipt

func (*Receipt) Logs

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

Logs returns the list of logs stored in receipt

func (*Receipt) Serialize

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

Serialize returns a serialized byte stream for the Receipt

func (*Receipt) SetExecutionRevertMsg added in v1.1.4

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

SetExecutionRevertMsg sets executionerrorlogs to receipt.

func (*Receipt) TransactionLogs added in v1.1.0

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

TransactionLogs returns the list of transaction logs stored in receipt

func (*Receipt) UpdateIndex added in v1.7.0

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

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

type Restake added in v0.11.0

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

Restake defines the action of stake again

func NewRestake added in v0.11.0

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

NewRestake returns a Restake instance

func NewRestakeFromABIBinary added in v1.7.1

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

NewRestakeFromABIBinary decodes data into Restake action

func (*Restake) AutoStake added in v0.11.0

func (rs *Restake) AutoStake() bool

AutoStake returns the autoStake boolean

func (*Restake) BucketIndex added in v0.11.0

func (rs *Restake) BucketIndex() uint64

BucketIndex returns bucket index

func (*Restake) Cost added in v0.11.0

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

Cost returns the total cost of a Restake

func (*Restake) Duration added in v0.11.0

func (rs *Restake) Duration() uint32

Duration returns the updated duration

func (*Restake) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*Restake) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a Restake

func (*Restake) LoadProto added in v0.11.0

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

LoadProto converts a protobuf's Action to Restake

func (*Restake) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*Restake) Proto added in v0.11.0

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

Proto converts to protobuf Restake Action

func (*Restake) Serialize added in v0.11.0

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

Serialize returns a raw byte stream of the Stake again struct

func (*Restake) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

type SealedEnvelope added in v0.4.4

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

SealedEnvelope is a signed action envelope.

func AssembleSealedEnvelope added in v0.4.4

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

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

func FakeSeal added in v0.4.4

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

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

func Sign

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

Sign signs the action using sender's private key

func SignedCandidateActivate added in v1.14.0

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

SignedCandidateActivate returns a signed candidate selfstake

func SignedCandidateEndorsement added in v1.14.0

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

SignedCandidateEndorsement returns a signed candidate endorsement

func SignedCandidateRegister added in v1.2.1

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

SignedCandidateRegister returns a signed candidate register

func SignedCandidateUpdate added in v1.2.1

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

SignedCandidateUpdate returns a signed candidate update

func SignedChangeCandidate added in v1.2.1

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

SignedChangeCandidate returns a signed change candidate

func SignedCreateStake added in v1.2.1

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

SignedCreateStake returns a signed create stake

func SignedDepositToStake added in v1.2.1

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

SignedDepositToStake returns a signed deposit to stake

func SignedExecution added in v1.2.1

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

SignedExecution return a signed execution

func SignedReclaimStake added in v1.2.1

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

SignedReclaimStake returns a signed unstake or withdraw stake

func SignedRestake added in v1.2.1

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

SignedRestake returns a signed restake

func SignedTransfer added in v1.2.1

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

SignedTransfer return a signed transfer

func SignedTransferStake added in v1.2.1

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

SignedTransferStake returns a signed transfer stake

func (*SealedEnvelope) Encoding added in v1.2.0

func (sealed *SealedEnvelope) Encoding() uint32

Encoding returns the encoding

func (*SealedEnvelope) Hash added in v0.4.4

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

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

func (*SealedEnvelope) Proto added in v0.4.4

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

Proto converts it to it's proto scheme.

func (*SealedEnvelope) SenderAddress added in v1.8.2

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

SenderAddress returns address of the source public key

func (*SealedEnvelope) Signature added in v0.4.4

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

Signature returns signature bytes

func (*SealedEnvelope) SrcPubkey added in v0.4.4

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

SrcPubkey returns the source public key

func (*SealedEnvelope) VerifySignature added in v1.8.0

func (sealed *SealedEnvelope) VerifySignature() error

VerifySignature verifies the action using sender's public key

type SealedEnvelopeValidator added in v0.11.0

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

SealedEnvelopeValidator is the interface of validating an SealedEnvelope action

type Topics added in v1.0.0

type Topics []hash.Hash256

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

type TransactionLog added in v1.1.0

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

TransactionLog stores a transaction event

type Transfer

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

Transfer defines the struct of account-based transfer

func NewTransfer

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

NewTransfer returns a Transfer instance

func (*Transfer) Amount

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

Amount returns the amount

func (*Transfer) Cost

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

Cost returns the total cost of a transfer

func (*Transfer) Destination added in v0.5.0

func (tsf *Transfer) Destination() string

Destination returns the recipient address as destination.

func (*Transfer) IntrinsicGas

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

IntrinsicGas returns the intrinsic gas of a transfer

func (*Transfer) LoadProto

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

LoadProto converts a protobuf's Action to Transfer

func (*Transfer) Payload

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

Payload returns the payload bytes

func (*Transfer) Proto

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

Proto converts Transfer to protobuf's Action

func (*Transfer) Recipient

func (tsf *Transfer) Recipient() string

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

func (*Transfer) SanityCheck added in v1.0.0

func (tsf *Transfer) SanityCheck() error

SanityCheck validates the variables in the action

func (*Transfer) Serialize

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

Serialize returns a raw byte stream of this Transfer

func (*Transfer) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

func (*Transfer) TotalSize

func (tsf *Transfer) TotalSize() uint32

TotalSize returns the total size of this Transfer

type TransferStake added in v0.11.0

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

TransferStake defines the action of transfering stake ownership ts the other

func NewTransferStake added in v0.11.0

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

NewTransferStake returns a TransferStake instance

func NewTransferStakeFromABIBinary added in v1.7.1

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

NewTransferStakeFromABIBinary decodes data into TransferStake action

func (*TransferStake) BucketIndex added in v0.11.0

func (ts *TransferStake) BucketIndex() uint64

BucketIndex returns bucket index

func (*TransferStake) Cost added in v0.11.0

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

Cost returns the tstal cost of a TransferStake

func (*TransferStake) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*TransferStake) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a TransferStake

func (*TransferStake) LoadProto added in v0.11.0

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

LoadProto loads transfer stake protobuf

func (*TransferStake) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*TransferStake) Proto added in v0.11.0

Proto converts transfer stake to protobuf

func (*TransferStake) Serialize added in v0.11.0

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

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

func (*TransferStake) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

func (*TransferStake) VoterAddress added in v0.11.0

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

VoterAddress returns the address of recipient

type Unstake added in v0.11.0

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

Unstake defines the action of unstake

func NewUnstake added in v0.11.0

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

NewUnstake returns a Unstake instance

func NewUnstakeFromABIBinary added in v1.7.1

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

NewUnstakeFromABIBinary decodes data into WithdrawStake action

func (*Unstake) BucketIndex added in v0.11.0

func (sr *Unstake) BucketIndex() uint64

BucketIndex returns bucket index

func (*Unstake) Cost added in v0.11.0

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

Cost returns the total cost of a Unstake

func (*Unstake) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*Unstake) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a Unstake

func (*Unstake) LoadProto added in v0.11.0

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

LoadProto converts a protobuf's Action to reclaimStake

func (*Unstake) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*Unstake) Proto added in v0.11.0

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

Proto converts to protobuf stake reclaim action struct

func (*Unstake) Serialize added in v0.11.0

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

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

func (*Unstake) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

type WithdrawStake added in v0.11.0

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

WithdrawStake defines the action of stake withdraw

func NewWithdrawStake added in v0.11.0

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

NewWithdrawStake returns a WithdrawStake instance

func NewWithdrawStakeFromABIBinary added in v1.7.1

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

NewWithdrawStakeFromABIBinary decodes data into WithdrawStake action

func (*WithdrawStake) BucketIndex added in v0.11.0

func (sr *WithdrawStake) BucketIndex() uint64

BucketIndex returns bucket index

func (*WithdrawStake) Cost added in v0.11.0

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

Cost returns the total cost of a WithdrawStake

func (*WithdrawStake) EncodeABIBinary added in v1.7.1

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

EncodeABIBinary encodes data in abi encoding

func (*WithdrawStake) IntrinsicGas added in v0.11.0

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

IntrinsicGas returns the intrinsic gas of a WithdrawStake

func (*WithdrawStake) LoadProto added in v0.11.0

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

LoadProto converts a protobuf's Action to reclaimStake

func (*WithdrawStake) Payload added in v0.11.0

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

Payload returns the payload bytes

func (*WithdrawStake) Proto added in v0.11.0

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

Proto converts to protobuf stake reclaim action struct

func (*WithdrawStake) Serialize added in v0.11.0

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

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

func (*WithdrawStake) ToEthTx added in v1.8.0

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

ToEthTx converts action to eth-compatible tx

Jump to

Keyboard shortcuts

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