action

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation ¶

Index ¶

Constants ¶

View Source
const (
	// EmptyAddress is the empty string
	EmptyAddress = ""
	// ExecutionDataGas represents the execution data gas per uint
	ExecutionDataGas = uint64(100)
	// ExecutionBaseIntrinsicGas represents the base intrinsic gas for execution
	ExecutionBaseIntrinsicGas = uint64(10000)
)
View Source
const (
	// BlockReward indicates that the action is to grant block reward
	BlockReward = iota
	// EpochReward indicates that the action is to grant epoch reward
	EpochReward
)
View Source
const (
	// FailureReceiptStatus is the status that contract execution failed
	FailureReceiptStatus = uint64(0)
	// SuccessReceiptStatus is the status that contract execution success
	SuccessReceiptStatus = uint64(1)
)
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 (
	// CreateDepositIntrinsicGas represents the intrinsic gas for the deposit action
	CreateDepositIntrinsicGas = uint64(10000)
)
View Source
const PutBlockIntrinsicGas = uint64(1000)

PutBlockIntrinsicGas is the instrinsic gas for put block action.

View Source
const (
	// SettleDepositIntrinsicGas represents the intrinsic gas for the deposit action
	SettleDepositIntrinsicGas = uint64(10000)
)
View Source
const SignatureLength = 65

SignatureLength indicates the length of signature generated by SECP256K1 crypto library

View Source
const (
	// StartSubChainIntrinsicGas is the instrinsic gas for start sub chain action
	StartSubChainIntrinsicGas = uint64(1000)
)
View Source
const (
	// StopSubChainIntrinsicGas is the instrinsic gas for stop sub chain action
	StopSubChainIntrinsicGas = uint64(1000)
)
View Source
const (
	// VoteIntrinsicGas represents the intrinsic gas for vote
	VoteIntrinsicGas = uint64(10000)
)

Variables ¶

View Source
var (
	// ErrAction indicates error for an action
	ErrAction = errors.New("action error")
	// ErrAddress indicates error of address
	ErrAddress = errors.New("address error")
)
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 (
	// ErrActPool indicates the error of actpool
	ErrActPool = errors.New("invalid actpool")
	// ErrHitGasLimit is the error when hit gas limit
	ErrHitGasLimit = errors.New("Hit Gas Limit")
	// ErrInsufficientBalanceForGas is the error that the balance in executor account is lower than gas
	ErrInsufficientBalanceForGas = errors.New("Insufficient balance for gas")
	// ErrOutOfGas is the error when running out of gas
	ErrOutOfGas = errors.New("Out of gas")
	// ErrGasHigherThanLimit indicates the error of gas value
	ErrGasHigherThanLimit = errors.New("invalid gas for action")
	// ErrTransfer indicates the error of transfer
	ErrTransfer = errors.New("invalid transfer")
	// ErrNonce indicates the error of nonce
	ErrNonce = errors.New("invalid nonce")
	// ErrBalance indicates the error of balance
	ErrBalance = errors.New("invalid balance")
	// ErrGasPrice indicates the error of gas price
	ErrGasPrice = errors.New("invalid gas price")
	// ErrVotee indicates the error of votee
	ErrVotee = errors.New("votee is not a candidate")
	// ErrHash indicates the error of action's hash
	ErrHash = errors.New("invalid hash")
)
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)
)

Functions ¶

func ClassifyActions ¶

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

ClassifyActions classfies actions

func IsExperimentalAction ¶

func IsExperimentalAction(action Action) bool

IsExperimentalAction test it the action is experimental

func Verify ¶

func Verify(sealed SealedEnvelope) error

Verify verifies the action using sender's public key

Types ¶

type AbstractAction ¶

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

AbstractAction is an abstract implementation of Action interface

func (*AbstractAction) BasicActionSize ¶

func (act *AbstractAction) BasicActionSize() uint32

BasicActionSize returns the basic size of action

func (*AbstractAction) GasLimit ¶

func (act *AbstractAction) GasLimit() uint64

GasLimit returns the gas limit

func (*AbstractAction) GasPrice ¶

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

GasPrice returns the gas price

func (*AbstractAction) Hash ¶

func (act *AbstractAction) Hash() hash.Hash256

Hash returns the hash value of referred SealedActionEnvelope hash.

func (*AbstractAction) Nonce ¶

func (act *AbstractAction) Nonce() uint64

Nonce returns the nonce

func (*AbstractAction) SetEnvelopeContext ¶

func (act *AbstractAction) SetEnvelopeContext(selp SealedEnvelope)

SetEnvelopeContext sets the SealedEnvelope context to action context.

func (*AbstractAction) SrcPubkey ¶

func (act *AbstractAction) SrcPubkey() keypair.PublicKey

SrcPubkey returns the source public key

func (*AbstractAction) Version ¶

func (act *AbstractAction) Version() uint32

Version returns the version

type Action ¶

type Action interface {
	SetEnvelopeContext(SealedEnvelope)
}

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

type Builder ¶

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

Builder is used to build an action.

func (*Builder) Build ¶

func (b *Builder) Build() AbstractAction

Build builds a new action.

func (*Builder) SetGasLimit ¶

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

SetGasLimit sets action's gas limit.

func (*Builder) SetGasPrice ¶

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

SetGasPrice sets action's gas price.

func (*Builder) SetGasPriceByBytes ¶

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

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

func (*Builder) SetNonce ¶

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

SetNonce sets action's nonce.

func (*Builder) SetSourcePublicKey ¶

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

SetSourcePublicKey sets action's source's public key.

func (*Builder) SetVersion ¶

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

SetVersion sets action's version.

type ClaimFromRewardingFund ¶

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

ClaimFromRewardingFund is the action to claim reward from the rewarding fund

func (*ClaimFromRewardingFund) Amount ¶

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

Amount returns the amount to claim

func (*ClaimFromRewardingFund) ByteStream ¶

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

ByteStream returns a raw byte stream of a claim action

func (*ClaimFromRewardingFund) Cost ¶

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

Cost returns the total cost of a claim action

func (*ClaimFromRewardingFund) Data ¶

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

Data returns the additional data

func (*ClaimFromRewardingFund) IntrinsicGas ¶

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

IntrinsicGas returns the intrinsic gas of a claim action

func (*ClaimFromRewardingFund) LoadProto ¶

LoadProto converts a claim action protobuf to a claim action struct

func (*ClaimFromRewardingFund) Proto ¶

Proto converts a claim action struct to a claim action protobuf

type ClaimFromRewardingFundBuilder ¶

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

ClaimFromRewardingFundBuilder is the struct to build ClaimFromRewardingFund

func (*ClaimFromRewardingFundBuilder) Build ¶

Build builds a new claim from rewarding fund action

func (*ClaimFromRewardingFundBuilder) SetAmount ¶

SetAmount sets the amount to claim

func (*ClaimFromRewardingFundBuilder) SetData ¶

SetData sets the additional data

type CreateDeposit ¶

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

CreateDeposit represents the action to deposit the token from main-chain to sub-chain. The recipient address must be a sub-chain address, but it doesn'rewardType need to be owned by the sender.

func NewCreateDeposit ¶

func NewCreateDeposit(
	nonce uint64,
	chainID uint32,
	amount *big.Int,
	recipient string,
	gasLimit uint64,
	gasPrice *big.Int,
) *CreateDeposit

NewCreateDeposit instantiates a deposit creation to sub-chain action struct

func (*CreateDeposit) Amount ¶

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

Amount returns the amount

func (*CreateDeposit) ByteStream ¶

func (d *CreateDeposit) ByteStream() []byte

ByteStream returns a raw byte stream of the deposit action

func (*CreateDeposit) ChainID ¶

func (d *CreateDeposit) ChainID() uint32

ChainID returns chain ID

func (*CreateDeposit) Cost ¶

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

Cost returns the total cost of a create deposit

func (*CreateDeposit) Destination ¶

func (d *CreateDeposit) Destination() string

Destination returns the recipient address. The recipient should be an address on the sub-chain

func (*CreateDeposit) IntrinsicGas ¶

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

IntrinsicGas returns the intrinsic gas of a create deposit

func (*CreateDeposit) LoadProto ¶

func (d *CreateDeposit) LoadProto(pbDpst *iotextypes.CreateDeposit) error

LoadProto converts a protobuf's ActionPb to CreateDeposit

func (*CreateDeposit) Proto ¶

Proto converts CreateDeposit to protobuf's ActionPb

func (*CreateDeposit) Recipient ¶

func (d *CreateDeposit) Recipient() string

Recipient returns the recipient address. The recipient should be an address on the sub-chain

func (*CreateDeposit) SenderPublicKey ¶

func (d *CreateDeposit) SenderPublicKey() keypair.PublicKey

SenderPublicKey returns the sender public key. It's the wrapper of Action.SrcPubkey

type DepositToRewardingFund ¶

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

DepositToRewardingFund is the action to deposit to the rewarding fund

func (*DepositToRewardingFund) Amount ¶

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

Amount returns the amount to deposit

func (*DepositToRewardingFund) ByteStream ¶

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

ByteStream returns a raw byte stream of a deposit action

func (*DepositToRewardingFund) Cost ¶

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

Cost returns the total cost of a deposit action

func (*DepositToRewardingFund) Data ¶

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

Data returns the additional data

func (*DepositToRewardingFund) IntrinsicGas ¶

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

IntrinsicGas returns the intrinsic gas of a deposit action

func (*DepositToRewardingFund) LoadProto ¶

LoadProto converts a deposit action protobuf to a deposit action struct

func (*DepositToRewardingFund) Proto ¶

Proto converts a deposit action struct to a deposit action protobuf

type DepositToRewardingFundBuilder ¶

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

DepositToRewardingFundBuilder is the struct to build DepositToRewardingFund

func (*DepositToRewardingFundBuilder) Build ¶

Build builds a new deposit to rewarding fund action

func (*DepositToRewardingFundBuilder) SetAmount ¶

SetAmount sets the amount to deposit

func (*DepositToRewardingFundBuilder) SetData ¶

SetData sets the additional data

type Envelope ¶

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

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

func (*Envelope) Action ¶

func (elp *Envelope) Action() Action

Action returns the action payload.

func (*Envelope) ByteStream ¶

func (elp *Envelope) ByteStream() []byte

ByteStream returns encoded binary.

func (*Envelope) Cost ¶

func (elp *Envelope) Cost() (*big.Int, error)

Cost returns cost of actions

func (*Envelope) Destination ¶

func (elp *Envelope) Destination() (string, bool)

Destination returns the destination address

func (*Envelope) GasLimit ¶

func (elp *Envelope) GasLimit() uint64

GasLimit returns the gas limit

func (*Envelope) GasPrice ¶

func (elp *Envelope) GasPrice() *big.Int

GasPrice returns the gas price

func (*Envelope) Hash ¶

func (elp *Envelope) Hash() hash.Hash256

Hash returns the hash value of SealedEnvelope.

func (*Envelope) IntrinsicGas ¶

func (elp *Envelope) IntrinsicGas() (uint64, error)

IntrinsicGas returns intrinsic gas of action.

func (*Envelope) LoadProto ¶

func (elp *Envelope) LoadProto(pbAct *iotextypes.ActionCore) error

LoadProto loads fields from protobuf format.

func (*Envelope) Nonce ¶

func (elp *Envelope) Nonce() uint64

Nonce returns the nonce

func (*Envelope) Proto ¶

func (elp *Envelope) Proto() *iotextypes.ActionCore

Proto convert Envelope to protobuf format.

func (*Envelope) Version ¶

func (elp *Envelope) Version() uint32

Version returns the version

type EnvelopeBuilder ¶

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

EnvelopeBuilder is the builder to build Envelope.

func (*EnvelopeBuilder) Build ¶

func (b *EnvelopeBuilder) Build() Envelope

Build builds a new action.

func (*EnvelopeBuilder) SetAction ¶

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

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

func (*EnvelopeBuilder) SetGasLimit ¶

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

SetGasLimit sets action's gas limit.

func (*EnvelopeBuilder) SetGasPrice ¶

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

SetGasPrice sets action's gas price.

func (*EnvelopeBuilder) SetGasPriceByBytes ¶

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

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

func (*EnvelopeBuilder) SetNonce ¶

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

SetNonce sets action's nonce.

func (*EnvelopeBuilder) SetVersion ¶

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

SetVersion sets action's version.

type Execution ¶

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

Execution defines the struct of account-based contract execution

func NewExecution ¶

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

NewExecution returns a Execution instance

func (*Execution) Amount ¶

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

Amount returns the amount

func (*Execution) ByteStream ¶

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

ByteStream returns a raw byte stream of this Transfer

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 ¶

func (ex *Execution) Destination() string

Destination returns a contract address

func (*Execution) ExecutorPublicKey ¶

func (ex *Execution) ExecutorPublicKey() keypair.PublicKey

ExecutorPublicKey returns the executor's public key

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

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

Proto converts Execution to protobuf's Execution

func (*Execution) TotalSize ¶

func (ex *Execution) TotalSize() uint32

TotalSize returns the total size of this Execution

type GrantReward ¶

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

GrantReward is the action to grant either block or epoch reward

func (*GrantReward) ByteStream ¶

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

ByteStream returns a raw byte stream of a grant reward action

func (*GrantReward) Cost ¶

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

Cost returns the total cost of a grant reward action

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

type GrantRewardBuilder ¶

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

GrantRewardBuilder is the struct to build GrantReward

func (*GrantRewardBuilder) Build ¶

func (b *GrantRewardBuilder) Build() GrantReward

Build builds a new grant reward action

func (*GrantRewardBuilder) SetHeight ¶

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

SetHeight sets the grant reward block height

func (*GrantRewardBuilder) SetRewardType ¶

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

SetRewardType sets the grant reward type

type Log ¶

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

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 PutBlock ¶

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

PutBlock represents put a sub-chain block message.

func NewPutBlock ¶

func NewPutBlock(
	nonce uint64,
	subChainAddress string,
	height uint64,
	roots map[string]hash.Hash256,
	gasLimit uint64,
	gasPrice *big.Int,
) *PutBlock

NewPutBlock instantiates a putting sub-chain block action struct.

func (*PutBlock) ByteStream ¶

func (pb *PutBlock) ByteStream() []byte

ByteStream returns the byte representation of put block action.

func (*PutBlock) Cost ¶

func (pb *PutBlock) Cost() (*big.Int, error)

Cost returns the total cost of a put block action

func (*PutBlock) Destination ¶

func (pb *PutBlock) Destination() string

Destination returns sub chain address.

func (*PutBlock) Height ¶

func (pb *PutBlock) Height() uint64

Height returns put block height.

func (*PutBlock) IntrinsicGas ¶

func (pb *PutBlock) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a put block action

func (*PutBlock) LoadProto ¶

func (pb *PutBlock) LoadProto(putBlockPb *iotextypes.PutBlock) error

LoadProto converts a proto message into put block action.

func (*PutBlock) ProducerPublicKey ¶

func (pb *PutBlock) ProducerPublicKey() keypair.PublicKey

ProducerPublicKey return producer public key.

func (*PutBlock) Proto ¶

func (pb *PutBlock) Proto() *iotextypes.PutBlock

Proto converts put sub-chain block action into a proto message.

func (*PutBlock) Roots ¶

func (pb *PutBlock) Roots() map[string]hash.Hash256

Roots return merkel roots put in.

func (*PutBlock) SubChainAddress ¶

func (pb *PutBlock) SubChainAddress() string

SubChainAddress returns sub chain address.

type PutPollResult ¶

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

PutPollResult represents put the poll result from gravity chain.

func NewPutPollResult ¶

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

NewPutPollResult instantiates a putting poll result action struct.

func (*PutPollResult) ByteStream ¶

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

ByteStream returns the byte representation of put poll result action.

func (*PutPollResult) Candidates ¶

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

Candidates returns the list of candidates.

func (*PutPollResult) Cost ¶

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

Cost returns the total cost of a put poll result action

func (*PutPollResult) Height ¶

func (r *PutPollResult) Height() uint64

Height returns put poll result height.

func (*PutPollResult) IntrinsicGas ¶

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

IntrinsicGas returns the intrinsic gas of a put poll result action

func (*PutPollResult) LoadProto ¶

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

LoadProto converts a proto message into put block action.

func (*PutPollResult) ProducerPublicKey ¶

func (r *PutPollResult) ProducerPublicKey() keypair.PublicKey

ProducerPublicKey return producer public key.

func (*PutPollResult) Proto ¶

Proto converts put poll result action into a proto message.

type Receipt ¶

type Receipt struct {
	Status          uint64
	BlockHeight     uint64
	ActionHash      hash.Hash256
	GasConsumed     uint64
	ContractAddress string
	Logs            []*Log
}

Receipt represents the result of a contract

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

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

Hash returns the hash of receipt

func (*Receipt) Serialize ¶

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

Serialize returns a serialized byte stream for the Receipt

type SealedEnvelope ¶

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

SealedEnvelope is a signed action envelope.

func AssembleSealedEnvelope ¶

func AssembleSealedEnvelope(act Envelope, pk keypair.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 keypair.PublicKey) SealedEnvelope

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

func Sign ¶

Sign signs the action using sender's private key

func (*SealedEnvelope) Hash ¶

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

Hash returns the hash value of SealedEnvelope.

func (*SealedEnvelope) LoadProto ¶

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

LoadProto loads from proto scheme.

func (SealedEnvelope) Proto ¶

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

Proto converts it to it's proto scheme.

func (*SealedEnvelope) Signature ¶

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

Signature returns signature bytes

func (*SealedEnvelope) SrcPubkey ¶

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

SrcPubkey returns the source public key

type SettleDeposit ¶

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

SettleDeposit represents the action to settle a deposit on the sub-chain

func NewSettleDeposit ¶

func NewSettleDeposit(
	nonce uint64,
	amount *big.Int,
	index uint64,
	recipient string,
	gasLimit uint64,
	gasPrice *big.Int,
) *SettleDeposit

NewSettleDeposit instantiates a deposit settlement to sub-chain action struct

func (*SettleDeposit) Amount ¶

func (sd *SettleDeposit) Amount() *big.Int

Amount returns the amount

func (*SettleDeposit) ByteStream ¶

func (sd *SettleDeposit) ByteStream() []byte

ByteStream returns a raw byte stream of the settle deposit action

func (*SettleDeposit) Cost ¶

func (sd *SettleDeposit) Cost() (*big.Int, error)

Cost returns the total cost of a settle deposit

func (*SettleDeposit) Destination ¶

func (sd *SettleDeposit) Destination() string

Destination returns the recipient address. The recipient should be an address on the sub-chain

func (*SettleDeposit) Index ¶

func (sd *SettleDeposit) Index() uint64

Index returns the index of the deposit on main-chain's sub-chain account

func (*SettleDeposit) IntrinsicGas ¶

func (sd *SettleDeposit) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a settle deposit

func (*SettleDeposit) LoadProto ¶

func (sd *SettleDeposit) LoadProto(pbDpst *iotextypes.SettleDeposit) error

LoadProto converts a protobuf's Action to SettleDeposit

func (*SettleDeposit) Proto ¶

func (sd *SettleDeposit) Proto() *iotextypes.SettleDeposit

Proto converts SettleDeposit to protobuf's Action

func (*SettleDeposit) Recipient ¶

func (sd *SettleDeposit) Recipient() string

Recipient returns the recipient address. The recipient should be an address on the sub-chain

func (*SettleDeposit) SenderPublicKey ¶

func (sd *SettleDeposit) SenderPublicKey() keypair.PublicKey

SenderPublicKey returns the sender public key. It's the wrapper of Action.SrcPubkey

type StartSubChain ¶

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

StartSubChain represents start sub-chain message

func NewStartSubChain ¶

func NewStartSubChain(
	nonce uint64,
	chainID uint32,
	securityDeposit *big.Int,
	operationDeposit *big.Int,
	startHeight uint64,
	parentHeightOffset uint64,
	gasLimit uint64,
	gasPrice *big.Int,
) *StartSubChain

NewStartSubChain instantiates a start sub-chain action struct

func (*StartSubChain) ByteStream ¶

func (start *StartSubChain) ByteStream() []byte

ByteStream returns the byte representation of sub-chain action

func (*StartSubChain) ChainID ¶

func (start *StartSubChain) ChainID() uint32

ChainID returns chain ID

func (*StartSubChain) Cost ¶

func (start *StartSubChain) Cost() (*big.Int, error)

Cost returns the total cost of a start sub-chain action

func (*StartSubChain) IntrinsicGas ¶

func (start *StartSubChain) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a start sub-chain action

func (*StartSubChain) LoadProto ¶

func (start *StartSubChain) LoadProto(startPb *iotextypes.StartSubChain) error

LoadProto converts a proto message into start sub-chain action

func (*StartSubChain) OperationDeposit ¶

func (start *StartSubChain) OperationDeposit() *big.Int

OperationDeposit returns operation deposit

func (*StartSubChain) OwnerPublicKey ¶

func (start *StartSubChain) OwnerPublicKey() keypair.PublicKey

OwnerPublicKey returns the owner public key, which is the wrapper of SrcPubkey

func (*StartSubChain) ParentHeightOffset ¶

func (start *StartSubChain) ParentHeightOffset() uint64

ParentHeightOffset returns parent height offset

func (*StartSubChain) Proto ¶

func (start *StartSubChain) Proto() *iotextypes.StartSubChain

Proto converts start sub-chain action into a proto message

func (*StartSubChain) SecurityDeposit ¶

func (start *StartSubChain) SecurityDeposit() *big.Int

SecurityDeposit returns security deposit

func (*StartSubChain) StartHeight ¶

func (start *StartSubChain) StartHeight() uint64

StartHeight returns start height

type StopSubChain ¶

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

StopSubChain defines the action to stop sub chain

func NewStopSubChain ¶

func NewStopSubChain(
	nonce uint64,
	chainAddress string,
	stopHeight uint64,
	gasLimit uint64,
	gasPrice *big.Int,
) *StopSubChain

NewStopSubChain returns a StopSubChain instance

func (*StopSubChain) ByteStream ¶

func (ssc *StopSubChain) ByteStream() []byte

ByteStream returns a raw byte stream of this instance

func (*StopSubChain) ChainAddress ¶

func (ssc *StopSubChain) ChainAddress() string

ChainAddress returns the address of the sub chain

func (*StopSubChain) Cost ¶

func (ssc *StopSubChain) Cost() (*big.Int, error)

Cost returns the total cost of a StopSubChain

func (*StopSubChain) Destination ¶

func (ssc *StopSubChain) Destination() string

Destination returns the address of the sub chain

func (*StopSubChain) IntrinsicGas ¶

func (ssc *StopSubChain) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a StopSubChain

func (*StopSubChain) LoadProto ¶

func (ssc *StopSubChain) LoadProto(pbSSC *iotextypes.StopSubChain) error

LoadProto converts a protobuf's Action to StopSubChain

func (*StopSubChain) Proto ¶

func (ssc *StopSubChain) Proto() *iotextypes.StopSubChain

Proto converts StopSubChain to protobuf's Action

func (*StopSubChain) StopHeight ¶

func (ssc *StopSubChain) StopHeight() uint64

StopHeight returns the height to stop the sub chain

func (*StopSubChain) TotalSize ¶

func (ssc *StopSubChain) TotalSize() uint32

TotalSize returns the total size of this instance

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

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

ByteStream returns a raw byte stream of this Transfer

func (*Transfer) Cost ¶

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

Cost returns the total cost of a transfer

func (*Transfer) Destination ¶

func (tsf *Transfer) Destination() string

Destination returns the recipient address as destination.

func (*Transfer) IntrinsicGas ¶

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

IntrinsicGas returns the intrinsic gas of a transfer

func (*Transfer) LoadProto ¶

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

LoadProto converts a protobuf's Action to Transfer

func (*Transfer) Payload ¶

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

Payload returns the payload bytes

func (*Transfer) Proto ¶

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

Proto converts Transfer to protobuf's Action

func (*Transfer) Recipient ¶

func (tsf *Transfer) Recipient() string

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

func (*Transfer) SenderPublicKey ¶

func (tsf *Transfer) SenderPublicKey() keypair.PublicKey

SenderPublicKey returns the sender public key. It's the wrapper of Action.SrcPubkey

func (*Transfer) TotalSize ¶

func (tsf *Transfer) TotalSize() uint32

TotalSize returns the total size of this Transfer

type Vote ¶

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

Vote defines the struct of account-based vote

func NewVote ¶

func NewVote(nonce uint64, voteeAddress string, gasLimit uint64, gasPrice *big.Int) (*Vote, error)

NewVote returns a Vote instance

func (*Vote) ByteStream ¶

func (v *Vote) ByteStream() []byte

ByteStream returns a raw byte stream of this Transfer

func (*Vote) Cost ¶

func (v *Vote) Cost() (*big.Int, error)

Cost returns the total cost of a vote

func (*Vote) Destination ¶

func (v *Vote) Destination() string

Destination returns the votee's address

func (*Vote) IntrinsicGas ¶

func (v *Vote) IntrinsicGas() (uint64, error)

IntrinsicGas returns the intrinsic gas of a vote

func (*Vote) LoadProto ¶

func (v *Vote) LoadProto(pbAct *iotextypes.Vote) error

LoadProto converts a protobuf's Action to Vote

func (*Vote) Proto ¶

func (v *Vote) Proto() *iotextypes.Vote

Proto converts Vote to protobuf's Action

func (*Vote) TotalSize ¶

func (v *Vote) TotalSize() uint32

TotalSize returns the total size of this Vote

func (*Vote) Votee ¶

func (v *Vote) Votee() string

Votee returns the votee's address

func (*Vote) VoterPublicKey ¶

func (v *Vote) VoterPublicKey() keypair.PublicKey

VoterPublicKey returns the voter's public key

Jump to

Keyboard shortcuts

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