mempool

package
v0.2.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2021 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrorAccountNotOnMempool = errors.New("the account is not being tracked by the memppol")
)

Functions

This section is empty.

Types

type ActionMempool

type ActionMempool interface {
	// Notifiers
	NotifyIllegalVotes(slashing *primitives.VoteSlashing)
	NewTip(_ *chainindex.BlockRow, _ *primitives.Block, _ state.State, _ []*primitives.EpochReceipt)
	ProposerSlashingConditionViolated(slashing *primitives.ProposerSlashing)

	// Remove on block
	RemoveByBlock(b *primitives.Block, tipState state.State)

	// Adders
	AddDeposit(deposit *primitives.Deposit) error
	AddGovernanceVote(vote *primitives.GovernanceVote, state state.State) error
	AddExit(exit *primitives.Exit) error
	AddProof(p *burnproof.CoinsProofSerializable) error
	AddPartialExit(p *primitives.PartialExit) error

	// Getters
	GetDeposits(num int, withState state.State) ([]*primitives.Deposit, state.State, error)
	GetProposerSlashings(num int, state state.State) ([]*primitives.ProposerSlashing, error)
	GetExits(num int, state state.State) ([]*primitives.Exit, error)
	GetVoteSlashings(num int, state state.State) ([]*primitives.VoteSlashing, error)
	GetRANDAOSlashings(num int, state state.State) ([]*primitives.RANDAOSlashing, error)
	GetGovernanceVotes(num int, state state.State) ([]*primitives.GovernanceVote, error)
	GetProofs(num int, state state.State) ([]*burnproof.CoinsProofSerializable, error)
	GetPartialExits(num int, state state.State) ([]*primitives.PartialExit, error)
}

ActioMempool is the interface dor actionMempool

func NewActionMempool

func NewActionMempool(blockchain chain.Blockchain, hostnode hostnode.HostNode) (ActionMempool, error)

NewActionMempool constructs a new action mempool.

type CoinsMempool

type CoinsMempool interface {
	Add(item *primitives.Tx) error
	RemoveByBlock(b *primitives.Block)
	Get(maxTransactions uint64, s state.State, feeRedeemAccount [20]byte) ([]*primitives.Tx, state.State)
	GetWithoutApply() []*primitives.Tx
	GetMempoolNonce(pkh [20]byte) (uint64, error)
	AddMulti(item *primitives.TxMulti) error
	GetMulti(maxTransactions uint64, s state.State) []*primitives.TxMulti
}

CoinsMempool is an interface for coinMempool

func NewCoinsMempool

func NewCoinsMempool(ch chain.Blockchain, hostNode hostnode.HostNode) (CoinsMempool, error)

NewCoinsMempool constructs a new coins mempool.

type CoinsNotifee

type CoinsNotifee interface {
	NotifyTx(tx *primitives.Tx)
}

type VoteMempool

type VoteMempool interface {
	AddValidate(vote *primitives.MultiValidatorVote, s state.State) error
	Add(vote *primitives.MultiValidatorVote)
	Get(slot uint64, s state.State, proposerIndex uint64) ([]*primitives.MultiValidatorVote, error)
	Remove(b *primitives.Block)
	Notify(notifee VoteSlashingNotifee)
}

VoteMempool is the interface of the voteMempool

func NewVoteMempool

func NewVoteMempool(ch chain.Blockchain, hostnode hostnode.HostNode, manager actionmanager.LastActionManager) (VoteMempool, error)

NewVoteMempool creates a new mempool.

type VoteSlashingNotifee

type VoteSlashingNotifee interface {
	NotifyIllegalVotes(slashing *primitives.VoteSlashing)
}

VoteSlashingNotifee is notified when an illegal vote occurs.

Jump to

Keyboard shortcuts

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