Documentation ¶
Overview ¶
Package txspool is a generated GoMock package.
Index ¶
- Variables
- func CheckTransactionSanity(tx *modules.Transaction) error
- func IsCoinBase(tx *modules.Transaction) bool
- type ErrorCode
- type ITxPool
- type IValidator
- type MockITxPool
- func (m *MockITxPool) AddLocal(tx *modules.Transaction) error
- func (m *MockITxPool) AddLocals(txs []*modules.Transaction) []error
- func (m *MockITxPool) AddRemote(tx *modules.Transaction) error
- func (m *MockITxPool) AddRemotes(arg0 []*modules.Transaction) []error
- func (m *MockITxPool) AddSequenTx(tx *modules.Transaction) error
- func (m *MockITxPool) AddSequenTxs(txs []*modules.Transaction) error
- func (m *MockITxPool) AllHashs() []*common.Hash
- func (m *MockITxPool) AllTxpoolTxs() map[common.Hash]*TxPoolTransaction
- func (m *MockITxPool) Content() (map[common.Hash]*TxPoolTransaction, map[common.Hash]*TxPoolTransaction)
- func (m *MockITxPool) DiscardTxs(hashs []common.Hash) error
- func (m *MockITxPool) EXPECT() *MockITxPoolMockRecorder
- func (m *MockITxPool) Get(hash common.Hash) (*TxPoolTransaction, common.Hash)
- func (m *MockITxPool) GetPoolTxsByAddr(addr string) ([]*TxPoolTransaction, error)
- func (m *MockITxPool) GetSortedTxs(hash common.Hash, index uint64) ([]*TxPoolTransaction, common.StorageSize)
- func (m *MockITxPool) GetTxFee(tx *modules.Transaction) (*modules.AmountAsset, error)
- func (m *MockITxPool) GetUnpackedTxsByAddr(addr string) ([]*TxPoolTransaction, error)
- func (m *MockITxPool) GetUtxoEntry(outpoint *modules.OutPoint) (*modules.Utxo, error)
- func (m *MockITxPool) OutPointIsSpend(outPoint *modules.OutPoint) (bool, error)
- func (m *MockITxPool) Pending() (map[common.Hash][]*TxPoolTransaction, error)
- func (m *MockITxPool) ProcessTransaction(tx *modules.Transaction, allowOrphan, rateLimit bool, tag Tag) ([]*TxDesc, error)
- func (m *MockITxPool) Queued() ([]*TxPoolTransaction, error)
- func (m *MockITxPool) ResetPendingTxs(txs []*modules.Transaction) error
- func (m *MockITxPool) SendStoredTxs(hashs []common.Hash) error
- func (m *MockITxPool) SetPendingTxs(unit_hash common.Hash, num uint64, txs []*modules.Transaction) error
- func (m *MockITxPool) Stats() (int, int, int)
- func (m *MockITxPool) Stop()
- func (m *MockITxPool) SubscribeTxPreEvent(arg0 chan<- modules.TxPreEvent) event.Subscription
- func (m *MockITxPool) ValidateOrphanTx(tx *modules.Transaction) (bool, error)
- type MockITxPoolMockRecorder
- func (mr *MockITxPoolMockRecorder) AddLocal(tx interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) AddLocals(txs interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) AddRemote(tx interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) AddRemotes(arg0 interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) AddSequenTx(tx interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) AddSequenTxs(txs interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) AllHashs() *gomock.Call
- func (mr *MockITxPoolMockRecorder) AllTxpoolTxs() *gomock.Call
- func (mr *MockITxPoolMockRecorder) Content() *gomock.Call
- func (mr *MockITxPoolMockRecorder) DiscardTxs(hashs interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) Get(hash interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) GetPoolTxsByAddr(addr interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) GetSortedTxs(hash, index interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) GetTxFee(tx interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) GetUnpackedTxsByAddr(addr interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) GetUtxoEntry(outpoint interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) OutPointIsSpend(outPoint interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) Pending() *gomock.Call
- func (mr *MockITxPoolMockRecorder) ProcessTransaction(tx, allowOrphan, rateLimit, tag interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) Queued() *gomock.Call
- func (mr *MockITxPoolMockRecorder) ResetPendingTxs(txs interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) SendStoredTxs(hashs interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) SetPendingTxs(unit_hash, num, txs interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) Stats() *gomock.Call
- func (mr *MockITxPoolMockRecorder) Stop() *gomock.Call
- func (mr *MockITxPoolMockRecorder) SubscribeTxPreEvent(arg0 interface{}) *gomock.Call
- func (mr *MockITxPoolMockRecorder) ValidateOrphanTx(tx interface{}) *gomock.Call
- type RejectCode
- type RuleError
- type SequeueTxPoolTxs
- type Tag
- type TxByCreationDate
- type TxByPrice
- type TxByPriority
- type TxDesc
- type TxPool
- func (pool *TxPool) AddLocal(tx *modules.Transaction) error
- func (pool *TxPool) AddLocals(txs []*modules.Transaction) []error
- func (pool *TxPool) AddRemote(tx *modules.Transaction) error
- func (pool *TxPool) AddRemotes(txs []*modules.Transaction) []error
- func (pool *TxPool) AddSequenTx(tx *modules.Transaction) error
- func (pool *TxPool) AddSequenTxs(txs []*modules.Transaction) error
- func (pool *TxPool) AllHashs() []*common.Hash
- func (pool *TxPool) AllLength() int
- func (pool *TxPool) AllOrphanTxs() map[common.Hash]*TxPoolTransaction
- func (pool *TxPool) AllTxpoolTxs() map[common.Hash]*TxPoolTransaction
- func (pool *TxPool) AllTxs() []*modules.Transaction
- func (pool *TxPool) CheckSpend(output modules.OutPoint) *modules.Transaction
- func (pool *TxPool) Content() (map[common.Hash]*TxPoolTransaction, map[common.Hash]*TxPoolTransaction)
- func (pool *TxPool) Count() int
- func (pool *TxPool) DeleteTx() error
- func (pool *TxPool) DeleteTxByHash(hash common.Hash) error
- func (pool *TxPool) DiscardTx(hash common.Hash) error
- func (pool *TxPool) DiscardTxs(hashs []common.Hash) error
- func (pool *TxPool) FetchInputUtxos(tx *modules.Transaction) (*UtxoViewpoint, error)
- func (pool *TxPool) Get(hash common.Hash) (*TxPoolTransaction, common.Hash)
- func (pool *TxPool) GetPoolTxsByAddr(addr string) ([]*TxPoolTransaction, error)
- func (pool *TxPool) GetSequenTxs() []*TxPoolTransaction
- func (pool *TxPool) GetSortedTxs(hash common.Hash, index uint64) ([]*TxPoolTransaction, common.StorageSize)
- func (pool *TxPool) GetStxoEntry(outpoint *modules.OutPoint) (*modules.Stxo, error)
- func (pool *TxPool) GetTxFee(tx *modules.Transaction) (*modules.AmountAsset, error)
- func (pool *TxPool) GetTxOutput(outpoint *modules.OutPoint) (*modules.Utxo, error)
- func (pool *TxPool) GetUnpackedTxsByAddr(addr string) ([]*TxPoolTransaction, error)
- func (pool *TxPool) GetUtxoEntry(outpoint *modules.OutPoint) (*modules.Utxo, error)
- func (pool *TxPool) GetUtxoView(tx *modules.Transaction) (*UtxoViewpoint, error)
- func (pool *TxPool) IsOrphanInPool(hash common.Hash) bool
- func (pool *TxPool) IsTransactionInPool(hash common.Hash) bool
- func (pool *TxPool) OutPointIsSpend(outPoint *modules.OutPoint) (bool, error)
- func (pool *TxPool) Pending() (map[common.Hash][]*TxPoolTransaction, error)
- func (pool *TxPool) ProcessTransaction(tx *modules.Transaction, allowOrphan bool, rateLimit bool, tag Tag) ([]*TxDesc, error)
- func (pool *TxPool) Queued() ([]*TxPoolTransaction, error)
- func (pool *TxPool) RemoveDoubleSpends(tx *modules.Transaction)
- func (pool *TxPool) RemoveOrphan(tx *TxPoolTransaction)
- func (pool *TxPool) RemoveTransaction(hash common.Hash, removeRedeemers bool)
- func (pool *TxPool) RemoveTxs(hashs []common.Hash)
- func (pool *TxPool) ResetPendingTxs(txs []*modules.Transaction) error
- func (pool *TxPool) SendStoredTxs(hashs []common.Hash) error
- func (pool *TxPool) SetPendingTxs(unit_hash common.Hash, num uint64, txs []*modules.Transaction) error
- func (pool *TxPool) Stats() (int, int, int)
- func (pool *TxPool) Status(hashes []common.Hash) []TxStatus
- func (pool *TxPool) Stop()
- func (pool *TxPool) SubscribeTxPreEvent(ch chan<- modules.TxPreEvent) event.Subscription
- func (pool *TxPool) ValidateOrphanTx(tx *modules.Transaction) (bool, error)
- type TxPoolConfig
- type TxPoolTransaction
- func (pooltx *TxPoolTransaction) DecodeRLP(s *rlp.Stream) error
- func (pooltx *TxPoolTransaction) EncodeRLP(w io.Writer) error
- func (tx *TxPoolTransaction) GetPriorityLvl() string
- func (tx *TxPoolTransaction) GetPriorityfloat64() float64
- func (tx *TxPoolTransaction) GetTxFee() *big.Int
- func (tx *TxPoolTransaction) Less(otherTx interface{}) bool
- func (tx *TxPoolTransaction) SetPriorityLvl(priority float64)
- type TxPoolTxs
- type TxRuleError
- type TxStatus
- type UtxoViewpoint
- func (view *UtxoViewpoint) AddTxOut(tx *modules.Transaction, msgIdx, txoutIdx uint32)
- func (view *UtxoViewpoint) AddTxOuts(tx *modules.Transaction)
- func (view *UtxoViewpoint) AddUtxo(key modules.OutPoint, utxo *modules.Utxo)
- func (view *UtxoViewpoint) BestHash() *common.Hash
- func (view *UtxoViewpoint) Entries() map[modules.OutPoint]*modules.Utxo
- func (view *UtxoViewpoint) FetchUnitUtxos(db utxoBaseGetOp, unit *modules.Unit) error
- func (view *UtxoViewpoint) FetchUtxos(db utxoBaseGetOp, outpoints map[modules.OutPoint]struct{}) error
- func (view *UtxoViewpoint) LookupUtxo(outpoint modules.OutPoint) *modules.Utxo
- func (view *UtxoViewpoint) RemoveUtxo(outpoint modules.OutPoint)
- func (view *UtxoViewpoint) SetBestHash(hash *common.Hash)
- func (view *UtxoViewpoint) SetEntries(key modules.OutPoint, utxo *modules.Utxo)
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidSender is returned if the transaction contains an invalid signature. ErrInvalidSender = errors.New("invalid sender") // ErrNonceTooLow is returned if the nonce of a transaction is lower than the // one present in the local chain. ErrNonceTooLow = errors.New("nonce too low") // ErrTxFeeTooLow is returned if a transaction's tx_fee is below the value of TXFEE. ErrTxFeeTooLow = errors.New("txfee too low") // ErrUnderpriced is returned if a transaction's gas price is below the minimum // configured for the transaction pool. ErrUnderpriced = errors.New("transaction underpriced") // ErrReplaceUnderpriced is returned if a transaction is attempted to be replaced // with a different one without the required price bump. ErrReplaceUnderpriced = errors.New("replacement transaction underpriced") // ErrInsufficientFunds is returned if the total cost of executing a transaction // is higher than the balance of the user's account. ErrInsufficientFunds = errors.New("insufficient funds for gas * price + value") // ErrNegativeValue is a sanity error to ensure noone is able to specify a // transaction with a negative value. ErrNegativeValue = errors.New("negative value") // ErrOversizedData is returned if the input data of a transaction is greater // than some meaningful limit a user might use. This is not a consensus error // making the transaction invalid, rather a DOS protection. ErrOversizedData = errors.New("oversized data") )
var DefaultTxPoolConfig = TxPoolConfig{ NoLocals: false, Journal: "transactions.rlp", Rejournal: time.Hour, FeeLimit: 1, PriceBump: 10, GlobalSlots: 48192, GlobalQueue: 12048, Lifetime: 3 * time.Hour, Removetime: 30 * time.Minute, OrphanTTL: 20 * time.Minute, MaxOrphanTxs: 10000, MaxOrphanTxSize: 2000000, }
DefaultTxPoolConfig contains the default configurations for the transaction pool.
Functions ¶
func CheckTransactionSanity ¶
func CheckTransactionSanity(tx *modules.Transaction) error
func IsCoinBase ¶
func IsCoinBase(tx *modules.Transaction) bool
Types ¶
type ITxPool ¶
type ITxPool interface { Stop() AddLocal(tx *modules.Transaction) error AddLocals(txs []*modules.Transaction) []error AddSequenTx(tx *modules.Transaction) error AddSequenTxs(txs []*modules.Transaction) error AllHashs() []*common.Hash AllTxpoolTxs() map[common.Hash]*TxPoolTransaction // AddRemotes should add the given transactions to the pool. AddRemote(tx *modules.Transaction) error AddRemotes([]*modules.Transaction) []error ProcessTransaction(tx *modules.Transaction, allowOrphan bool, rateLimit bool, tag Tag) ([]*TxDesc, error) Pending() (map[common.Hash][]*TxPoolTransaction, error) Queued() ([]*TxPoolTransaction, error) SetPendingTxs(unit_hash common.Hash, num uint64, txs []*modules.Transaction) error ResetPendingTxs(txs []*modules.Transaction) error SendStoredTxs(hashs []common.Hash) error DiscardTxs(hashs []common.Hash) error GetUtxoEntry(outpoint *modules.OutPoint) (*modules.Utxo, error) SubscribeTxPreEvent(chan<- modules.TxPreEvent) event.Subscription GetSortedTxs(hash common.Hash, index uint64) ([]*TxPoolTransaction, common.StorageSize) Get(hash common.Hash) (*TxPoolTransaction, common.Hash) GetPoolTxsByAddr(addr string) ([]*TxPoolTransaction, error) //获得一个地址的未打包的交易 GetUnpackedTxsByAddr(addr string) ([]*TxPoolTransaction, error) Stats() (int, int, int) Content() (map[common.Hash]*TxPoolTransaction, map[common.Hash]*TxPoolTransaction) GetTxFee(tx *modules.Transaction) (*modules.AmountAsset, error) OutPointIsSpend(outPoint *modules.OutPoint) (bool, error) ValidateOrphanTx(tx *modules.Transaction) (bool, error) }
type IValidator ¶
type IValidator interface {
ValidateTx(tx *modules.Transaction, isFullTx bool) ([]*modules.Addition, validator.ValidationCode, error)
}
type MockITxPool ¶
type MockITxPool struct {
// contains filtered or unexported fields
}
MockITxPool is a mock of ITxPool interface
func NewMockITxPool ¶
func NewMockITxPool(ctrl *gomock.Controller) *MockITxPool
NewMockITxPool creates a new mock instance
func (*MockITxPool) AddLocal ¶
func (m *MockITxPool) AddLocal(tx *modules.Transaction) error
AddLocal mocks base method
func (*MockITxPool) AddLocals ¶
func (m *MockITxPool) AddLocals(txs []*modules.Transaction) []error
AddLocals mocks base method
func (*MockITxPool) AddRemote ¶
func (m *MockITxPool) AddRemote(tx *modules.Transaction) error
AddRemote mocks base method
func (*MockITxPool) AddRemotes ¶
func (m *MockITxPool) AddRemotes(arg0 []*modules.Transaction) []error
AddRemotes mocks base method
func (*MockITxPool) AddSequenTx ¶
func (m *MockITxPool) AddSequenTx(tx *modules.Transaction) error
AddSequenTx mocks base method
func (*MockITxPool) AddSequenTxs ¶
func (m *MockITxPool) AddSequenTxs(txs []*modules.Transaction) error
AddSequenTxs mocks base method
func (*MockITxPool) AllHashs ¶
func (m *MockITxPool) AllHashs() []*common.Hash
AllHashs mocks base method
func (*MockITxPool) AllTxpoolTxs ¶
func (m *MockITxPool) AllTxpoolTxs() map[common.Hash]*TxPoolTransaction
AllTxpoolTxs mocks base method
func (*MockITxPool) Content ¶
func (m *MockITxPool) Content() (map[common.Hash]*TxPoolTransaction, map[common.Hash]*TxPoolTransaction)
Content mocks base method
func (*MockITxPool) DiscardTxs ¶
func (m *MockITxPool) DiscardTxs(hashs []common.Hash) error
DiscardTxs mocks base method
func (*MockITxPool) EXPECT ¶
func (m *MockITxPool) EXPECT() *MockITxPoolMockRecorder
EXPECT returns an object that allows the caller to indicate expected use
func (*MockITxPool) Get ¶
func (m *MockITxPool) Get(hash common.Hash) (*TxPoolTransaction, common.Hash)
Get mocks base method
func (*MockITxPool) GetPoolTxsByAddr ¶
func (m *MockITxPool) GetPoolTxsByAddr(addr string) ([]*TxPoolTransaction, error)
GetPoolTxsByAddr mocks base method
func (*MockITxPool) GetSortedTxs ¶
func (m *MockITxPool) GetSortedTxs(hash common.Hash, index uint64) ([]*TxPoolTransaction, common.StorageSize)
GetSortedTxs mocks base method
func (*MockITxPool) GetTxFee ¶
func (m *MockITxPool) GetTxFee(tx *modules.Transaction) (*modules.AmountAsset, error)
GetTxFee mocks base method
func (*MockITxPool) GetUnpackedTxsByAddr ¶ added in v1.0.6
func (m *MockITxPool) GetUnpackedTxsByAddr(addr string) ([]*TxPoolTransaction, error)
GetUnpackedTxsByAddr mocks base method
func (*MockITxPool) GetUtxoEntry ¶
GetUtxoEntry mocks base method
func (*MockITxPool) OutPointIsSpend ¶
func (m *MockITxPool) OutPointIsSpend(outPoint *modules.OutPoint) (bool, error)
OutPointIsSpend mocks base method
func (*MockITxPool) Pending ¶
func (m *MockITxPool) Pending() (map[common.Hash][]*TxPoolTransaction, error)
Pending mocks base method
func (*MockITxPool) ProcessTransaction ¶
func (m *MockITxPool) ProcessTransaction(tx *modules.Transaction, allowOrphan, rateLimit bool, tag Tag) ([]*TxDesc, error)
ProcessTransaction mocks base method
func (*MockITxPool) Queued ¶
func (m *MockITxPool) Queued() ([]*TxPoolTransaction, error)
Queued mocks base method
func (*MockITxPool) ResetPendingTxs ¶
func (m *MockITxPool) ResetPendingTxs(txs []*modules.Transaction) error
ResetPendingTxs mocks base method
func (*MockITxPool) SendStoredTxs ¶
func (m *MockITxPool) SendStoredTxs(hashs []common.Hash) error
SendStoredTxs mocks base method
func (*MockITxPool) SetPendingTxs ¶
func (m *MockITxPool) SetPendingTxs(unit_hash common.Hash, num uint64, txs []*modules.Transaction) error
SetPendingTxs mocks base method
func (*MockITxPool) SubscribeTxPreEvent ¶
func (m *MockITxPool) SubscribeTxPreEvent(arg0 chan<- modules.TxPreEvent) event.Subscription
SubscribeTxPreEvent mocks base method
func (*MockITxPool) ValidateOrphanTx ¶
func (m *MockITxPool) ValidateOrphanTx(tx *modules.Transaction) (bool, error)
ValidateOrphanTx mocks base method
type MockITxPoolMockRecorder ¶
type MockITxPoolMockRecorder struct {
// contains filtered or unexported fields
}
MockITxPoolMockRecorder is the mock recorder for MockITxPool
func (*MockITxPoolMockRecorder) AddLocal ¶
func (mr *MockITxPoolMockRecorder) AddLocal(tx interface{}) *gomock.Call
AddLocal indicates an expected call of AddLocal
func (*MockITxPoolMockRecorder) AddLocals ¶
func (mr *MockITxPoolMockRecorder) AddLocals(txs interface{}) *gomock.Call
AddLocals indicates an expected call of AddLocals
func (*MockITxPoolMockRecorder) AddRemote ¶
func (mr *MockITxPoolMockRecorder) AddRemote(tx interface{}) *gomock.Call
AddRemote indicates an expected call of AddRemote
func (*MockITxPoolMockRecorder) AddRemotes ¶
func (mr *MockITxPoolMockRecorder) AddRemotes(arg0 interface{}) *gomock.Call
AddRemotes indicates an expected call of AddRemotes
func (*MockITxPoolMockRecorder) AddSequenTx ¶
func (mr *MockITxPoolMockRecorder) AddSequenTx(tx interface{}) *gomock.Call
AddSequenTx indicates an expected call of AddSequenTx
func (*MockITxPoolMockRecorder) AddSequenTxs ¶
func (mr *MockITxPoolMockRecorder) AddSequenTxs(txs interface{}) *gomock.Call
AddSequenTxs indicates an expected call of AddSequenTxs
func (*MockITxPoolMockRecorder) AllHashs ¶
func (mr *MockITxPoolMockRecorder) AllHashs() *gomock.Call
AllHashs indicates an expected call of AllHashs
func (*MockITxPoolMockRecorder) AllTxpoolTxs ¶
func (mr *MockITxPoolMockRecorder) AllTxpoolTxs() *gomock.Call
AllTxpoolTxs indicates an expected call of AllTxpoolTxs
func (*MockITxPoolMockRecorder) Content ¶
func (mr *MockITxPoolMockRecorder) Content() *gomock.Call
Content indicates an expected call of Content
func (*MockITxPoolMockRecorder) DiscardTxs ¶
func (mr *MockITxPoolMockRecorder) DiscardTxs(hashs interface{}) *gomock.Call
DiscardTxs indicates an expected call of DiscardTxs
func (*MockITxPoolMockRecorder) Get ¶
func (mr *MockITxPoolMockRecorder) Get(hash interface{}) *gomock.Call
Get indicates an expected call of Get
func (*MockITxPoolMockRecorder) GetPoolTxsByAddr ¶
func (mr *MockITxPoolMockRecorder) GetPoolTxsByAddr(addr interface{}) *gomock.Call
GetPoolTxsByAddr indicates an expected call of GetPoolTxsByAddr
func (*MockITxPoolMockRecorder) GetSortedTxs ¶
func (mr *MockITxPoolMockRecorder) GetSortedTxs(hash, index interface{}) *gomock.Call
GetSortedTxs indicates an expected call of GetSortedTxs
func (*MockITxPoolMockRecorder) GetTxFee ¶
func (mr *MockITxPoolMockRecorder) GetTxFee(tx interface{}) *gomock.Call
GetTxFee indicates an expected call of GetTxFee
func (*MockITxPoolMockRecorder) GetUnpackedTxsByAddr ¶ added in v1.0.6
func (mr *MockITxPoolMockRecorder) GetUnpackedTxsByAddr(addr interface{}) *gomock.Call
GetUnpackedTxsByAddr indicates an expected call of GetUnpackedTxsByAddr
func (*MockITxPoolMockRecorder) GetUtxoEntry ¶
func (mr *MockITxPoolMockRecorder) GetUtxoEntry(outpoint interface{}) *gomock.Call
GetUtxoEntry indicates an expected call of GetUtxoEntry
func (*MockITxPoolMockRecorder) OutPointIsSpend ¶
func (mr *MockITxPoolMockRecorder) OutPointIsSpend(outPoint interface{}) *gomock.Call
OutPointIsSpend indicates an expected call of OutPointIsSpend
func (*MockITxPoolMockRecorder) Pending ¶
func (mr *MockITxPoolMockRecorder) Pending() *gomock.Call
Pending indicates an expected call of Pending
func (*MockITxPoolMockRecorder) ProcessTransaction ¶
func (mr *MockITxPoolMockRecorder) ProcessTransaction(tx, allowOrphan, rateLimit, tag interface{}) *gomock.Call
ProcessTransaction indicates an expected call of ProcessTransaction
func (*MockITxPoolMockRecorder) Queued ¶
func (mr *MockITxPoolMockRecorder) Queued() *gomock.Call
Queued indicates an expected call of Queued
func (*MockITxPoolMockRecorder) ResetPendingTxs ¶
func (mr *MockITxPoolMockRecorder) ResetPendingTxs(txs interface{}) *gomock.Call
ResetPendingTxs indicates an expected call of ResetPendingTxs
func (*MockITxPoolMockRecorder) SendStoredTxs ¶
func (mr *MockITxPoolMockRecorder) SendStoredTxs(hashs interface{}) *gomock.Call
SendStoredTxs indicates an expected call of SendStoredTxs
func (*MockITxPoolMockRecorder) SetPendingTxs ¶
func (mr *MockITxPoolMockRecorder) SetPendingTxs(unit_hash, num, txs interface{}) *gomock.Call
SetPendingTxs indicates an expected call of SetPendingTxs
func (*MockITxPoolMockRecorder) Stats ¶
func (mr *MockITxPoolMockRecorder) Stats() *gomock.Call
Stats indicates an expected call of Stats
func (*MockITxPoolMockRecorder) Stop ¶
func (mr *MockITxPoolMockRecorder) Stop() *gomock.Call
Stop indicates an expected call of Stop
func (*MockITxPoolMockRecorder) SubscribeTxPreEvent ¶
func (mr *MockITxPoolMockRecorder) SubscribeTxPreEvent(arg0 interface{}) *gomock.Call
SubscribeTxPreEvent indicates an expected call of SubscribeTxPreEvent
func (*MockITxPoolMockRecorder) ValidateOrphanTx ¶
func (mr *MockITxPoolMockRecorder) ValidateOrphanTx(tx interface{}) *gomock.Call
ValidateOrphanTx indicates an expected call of ValidateOrphanTx
type RejectCode ¶
type RejectCode uint8
const ( RejectMalformed RejectCode = 0x01 RejectInvalid RejectCode = 0x10 RejectObsolete RejectCode = 0x11 RejectDuplicate RejectCode = 0x12 RejectNonstandard RejectCode = 0x40 RejectDust RejectCode = 0x41 RejectInsufficientFee RejectCode = 0x42 RejectCheckpoint RejectCode = 0x43 )
These constants define the various supported reject codes.
type RuleError ¶
type RuleError struct { ErrorCode RejectCode // Describes the kind of error Description string // Human readable description of the issue }
RuleError identifies a rule violation. It is used to indicate that processing of a block or transaction failed due to one of the many validation rules. The caller can use type assertions to determine if a failure was specifically due to a rule violation and access the ErrorCode field to ascertain the specific reason for the rule violation.
type RuleError struct { ErrorCode ErrorCode // Describes the kind of error Description string // Human readable description of the issue }
type SequeueTxPoolTxs ¶
type SequeueTxPoolTxs struct {
// contains filtered or unexported fields
}
func (*SequeueTxPoolTxs) Add ¶
func (seqTxs *SequeueTxPoolTxs) Add(newPoolTx *TxPoolTransaction)
func (*SequeueTxPoolTxs) AddPriority ¶
func (seqTxs *SequeueTxPoolTxs) AddPriority(newPoolTx *TxPoolTransaction)
add priority
type TxByCreationDate ¶
type TxByCreationDate []*TxPoolTransaction
func (TxByCreationDate) Len ¶
func (tc TxByCreationDate) Len() int
func (TxByCreationDate) Less ¶
func (tc TxByCreationDate) Less(i, j int) bool
func (TxByCreationDate) Swap ¶
func (tc TxByCreationDate) Swap(i, j int)
type TxByPrice ¶
type TxByPrice TxPoolTxs
TxByPrice implements both the sort and the heap interface, making it useful for all at once sorting as well as individually adding and removing elements.
type TxByPriority ¶
type TxByPriority []*TxPoolTransaction
func (TxByPriority) Len ¶
func (s TxByPriority) Len() int
func (TxByPriority) Less ¶
func (s TxByPriority) Less(i, j int) bool
func (*TxByPriority) Pop ¶
func (s *TxByPriority) Pop() interface{}
func (*TxByPriority) Push ¶
func (s *TxByPriority) Push(x interface{})
func (TxByPriority) Swap ¶
func (s TxByPriority) Swap(i, j int)
type TxDesc ¶
type TxDesc struct { // StartingPriority is the priority of the transaction when it was added // to the pool. StartingPriority float64 // contains filtered or unexported fields }
TxDesc is a descriptor containing a transaction in the mempool along with additional metadata.
type TxPool ¶
type TxPool struct {
// contains filtered or unexported fields
}
func NewTxPool ¶
func NewTxPool(config TxPoolConfig, cachedb palletcache.ICache, unit dags) *TxPool
NewTxPool creates a new transaction pool to gather, sort and filter inbound transactions from the network.
func NewTxPool4DI ¶
func NewTxPool4DI(config TxPoolConfig, cachedb palletcache.ICache, unit dags, tokenEngine tokenengine.ITokenEngine, validator IValidator) *TxPool
构造函数的依赖注入,主要用于UT
func (*TxPool) AddLocal ¶
func (pool *TxPool) AddLocal(tx *modules.Transaction) error
AddLocal enqueues a single transaction into the pool if it is valid, marking the sender as a local one in the mean time, ensuring it goes around the local pricing constraints.
func (*TxPool) AddLocals ¶
func (pool *TxPool) AddLocals(txs []*modules.Transaction) []error
AddLocals enqueues a batch of transactions into the pool if they are valid, marking the senders as a local ones in the mean time, ensuring they go around the local pricing constraints.
func (*TxPool) AddRemote ¶
func (pool *TxPool) AddRemote(tx *modules.Transaction) error
AddRemote enqueues a single transaction into the pool if it is valid. If the sender is not among the locally tracked ones, full pricing constraints will apply.
func (*TxPool) AddRemotes ¶
func (pool *TxPool) AddRemotes(txs []*modules.Transaction) []error
AddRemotes enqueues a batch of transactions into the pool if they are valid. If the senders are not among the locally tracked ones, full pricing constraints will apply.
func (*TxPool) AddSequenTx ¶
func (pool *TxPool) AddSequenTx(tx *modules.Transaction) error
func (*TxPool) AddSequenTxs ¶
func (pool *TxPool) AddSequenTxs(txs []*modules.Transaction) error
func (*TxPool) AllHashs ¶
AllHashs returns a slice of hashes for all of the transactions in the txpool.
func (*TxPool) AllOrphanTxs ¶
func (pool *TxPool) AllOrphanTxs() map[common.Hash]*TxPoolTransaction
func (*TxPool) AllTxpoolTxs ¶
func (pool *TxPool) AllTxpoolTxs() map[common.Hash]*TxPoolTransaction
func (*TxPool) AllTxs ¶
func (pool *TxPool) AllTxs() []*modules.Transaction
func (*TxPool) CheckSpend ¶
func (pool *TxPool) CheckSpend(output modules.OutPoint) *modules.Transaction
CheckSpend checks whether the passed outpoint is already spent by a transaction in the txpool
func (*TxPool) Content ¶
func (pool *TxPool) Content() (map[common.Hash]*TxPoolTransaction, map[common.Hash]*TxPoolTransaction)
Content retrieves the data content of the transaction pool, returning all the pending as well as queued transactions, grouped by account and sorted by nonce.
func (*TxPool) DiscardTxs ¶
打包后的没有被最终确认的交易,废弃处理
func (*TxPool) FetchInputUtxos ¶
func (pool *TxPool) FetchInputUtxos(tx *modules.Transaction) (*UtxoViewpoint, error)
func (*TxPool) GetPoolTxsByAddr ¶
func (pool *TxPool) GetPoolTxsByAddr(addr string) ([]*TxPoolTransaction, error)
GetUnpackedTxsByAddr returns all tx by addr.
func (*TxPool) GetSequenTxs ¶
func (pool *TxPool) GetSequenTxs() []*TxPoolTransaction
func (*TxPool) GetSortedTxs ¶
func (pool *TxPool) GetSortedTxs(hash common.Hash, index uint64) ([]*TxPoolTransaction, common.StorageSize)
***** end utxoSet **** GetSortedTxs returns 根据优先级返回list
func (*TxPool) GetStxoEntry ¶
return a stxo by the outpoint in txpool
func (*TxPool) GetTxFee ¶
func (pool *TxPool) GetTxFee(tx *modules.Transaction) (*modules.AmountAsset, error)
func (*TxPool) GetTxOutput ¶ added in v1.0.6
func (*TxPool) GetUnpackedTxsByAddr ¶ added in v1.0.6
func (pool *TxPool) GetUnpackedTxsByAddr(addr string) ([]*TxPoolTransaction, error)
func (*TxPool) GetUtxoEntry ¶
return a utxo by the outpoint in txpool
func (*TxPool) GetUtxoView ¶
func (pool *TxPool) GetUtxoView(tx *modules.Transaction) (*UtxoViewpoint, error)
func (*TxPool) IsTransactionInPool ¶
IsTransactionInPool returns whether or not the passed transaction already exists in the main pool.
func (*TxPool) OutPointIsSpend ¶
func (*TxPool) Pending ¶
func (pool *TxPool) Pending() (map[common.Hash][]*TxPoolTransaction, error)
Pending retrieves all currently processable transactions, groupped by origin account and sorted by priority level. The returned transaction set is a copy and can be freely modified by calling code.
func (*TxPool) ProcessTransaction ¶
func (*TxPool) RemoveDoubleSpends ¶
func (pool *TxPool) RemoveDoubleSpends(tx *modules.Transaction)
RemoveDoubleSpends removes all transactions whitch spend outpoints spent by the passed transaction from the memory pool. Removing those transactions then leads to removing all transaction whitch rely on them, recursively. This is necessary when a blocks is connected to the main chain because the block may contain transactions whitch were previously unknow to the memory pool.
func (*TxPool) RemoveOrphan ¶
func (pool *TxPool) RemoveOrphan(tx *TxPoolTransaction)
This function is safe for concurrent access.
func (*TxPool) RemoveTransaction ¶
func (*TxPool) ResetPendingTxs ¶
func (pool *TxPool) ResetPendingTxs(txs []*modules.Transaction) error
func (*TxPool) SetPendingTxs ¶
func (*TxPool) Stats ¶
Stats retrieves the current pool stats, namely the number of pending and the number of queued (non-executable) transactions.
func (*TxPool) Status ¶
Status returns the status (unknown/pending/queued) of a batch of transactions identified by their hashes.
func (*TxPool) SubscribeTxPreEvent ¶
func (pool *TxPool) SubscribeTxPreEvent(ch chan<- modules.TxPreEvent) event.Subscription
SubscribeTxPreEvent registers a subscription of TxPreEvent and starts sending event to the given channel.
func (*TxPool) ValidateOrphanTx ¶
func (pool *TxPool) ValidateOrphanTx(tx *modules.Transaction) (bool, error)
validate tx is an orphanTx or not.
type TxPoolConfig ¶
type TxPoolConfig struct { NoLocals bool // Whether local transaction handling should be disabled Journal string // Journal of local transactions to survive node restarts Rejournal time.Duration // Time interval to regenerate the local transaction journal FeeLimit uint64 // Minimum tx's fee to enforce for acceptance into the pool PriceBump uint64 // Minimum price bump percentage to replace an already existing transaction (nonce) GlobalSlots uint64 // Maximum number of executable transaction slots for all accounts GlobalQueue uint64 // Maximum number of non-executable transaction slots for all accounts Lifetime time.Duration // Maximum amount of time non-executable transaction are queued Removetime time.Duration // Maximum amount of time txpool transaction are removed OrphanTTL time.Duration // Orpthan expiration // MaxOrphanTxs is the maximum number of orphan transactions // that can be queued. MaxOrphanTxs int // MaxOrphanTxSize is the maximum size allowed for orphan transactions. // This helps prevent memory exhaustion attacks from sending a lot of // of big orphans. MaxOrphanTxSize int }
TxPoolConfig are the configuration parameters of the transaction pool.
type TxPoolTransaction ¶
type TxPoolTransaction struct { Tx *modules.Transaction From []*modules.OutPoint CreationDate time.Time `json:"creation_date"` Priority_lvl string `json:"priority_lvl"` // 打包的优先级 UnitHash common.Hash UnitIndex uint64 Pending bool //in unit Confirmed bool //in unit and stable IsOrphan bool Discarded bool // will remove TxFee []*modules.Addition `json:"tx_fee"` Index uint64 `json:"index"` // index 是该Unit位置。 Extra []byte Tag uint64 Expiration time.Time //该Tx依赖于哪些TxId作为先决条件 DependOnTxs []common.Hash }
func TxtoTxpoolTx ¶
func TxtoTxpoolTx(tx *modules.Transaction) *TxPoolTransaction
交易池缓存时需要将tx转化为PoolTx
func (*TxPoolTransaction) DecodeRLP ¶ added in v1.0.4
func (pooltx *TxPoolTransaction) DecodeRLP(s *rlp.Stream) error
func (*TxPoolTransaction) EncodeRLP ¶ added in v1.0.4
func (pooltx *TxPoolTransaction) EncodeRLP(w io.Writer) error
func (*TxPoolTransaction) GetPriorityLvl ¶
func (tx *TxPoolTransaction) GetPriorityLvl() string
func (*TxPoolTransaction) GetPriorityfloat64 ¶
func (tx *TxPoolTransaction) GetPriorityfloat64() float64
func (*TxPoolTransaction) GetTxFee ¶
func (tx *TxPoolTransaction) GetTxFee() *big.Int
func (*TxPoolTransaction) Less ¶
func (tx *TxPoolTransaction) Less(otherTx interface{}) bool
func (*TxPoolTransaction) SetPriorityLvl ¶
func (tx *TxPoolTransaction) SetPriorityLvl(priority float64)
type TxRuleError ¶
type TxRuleError struct { RejectCode RejectCode // The code to send with reject messages Description string // Human readable description of the issue }
TxRuleError identifies a rule violation. It is used to indicate that processing of a transaction failed due to one of the many validation rules. The caller can use type assertions to determine if a failure was specifically due to a rule violation and access the ErrorCode field to ascertain the specific reason for the rule violation.
type UtxoViewpoint ¶
type UtxoViewpoint struct {
// contains filtered or unexported fields
}
UtxoViewpoint
func NewUtxoViewpoint ¶
func NewUtxoViewpoint() *UtxoViewpoint
func (*UtxoViewpoint) AddTxOut ¶
func (view *UtxoViewpoint) AddTxOut(tx *modules.Transaction, msgIdx, txoutIdx uint32)
func (*UtxoViewpoint) AddTxOuts ¶
func (view *UtxoViewpoint) AddTxOuts(tx *modules.Transaction)
func (*UtxoViewpoint) AddUtxo ¶
func (view *UtxoViewpoint) AddUtxo(key modules.OutPoint, utxo *modules.Utxo)
func (*UtxoViewpoint) BestHash ¶
func (view *UtxoViewpoint) BestHash() *common.Hash
func (*UtxoViewpoint) Entries ¶
func (view *UtxoViewpoint) Entries() map[modules.OutPoint]*modules.Utxo
func (*UtxoViewpoint) FetchUnitUtxos ¶
func (view *UtxoViewpoint) FetchUnitUtxos(db utxoBaseGetOp, unit *modules.Unit) error
func (view *UtxoViewpoint) SpentUtxo(db utxoBaseOp, outpoints map[modules.OutPoint]struct{}) error { if len(outpoints) == 0 { return nil } for outpoint := range outpoints { item := new(modules.OutPoint) item.TxHash = outpoint.TxHash item.MessageIndex = outpoint.MessageIndex item.OutIndex = outpoint.OutIndex if utxo, has := view.entries[outpoint]; has { utxo.Spend() db.SaveUtxoEntity(item, utxo) } else { utxo, err := db.GetUtxoEntry(item) if err == nil { utxo.Spend() db.SaveUtxoEntity(item, utxo) } } delete(view.entries, outpoint) } return nil }
func (*UtxoViewpoint) FetchUtxos ¶
func (view *UtxoViewpoint) FetchUtxos(db utxoBaseGetOp, outpoints map[modules.OutPoint]struct{}) error
func (*UtxoViewpoint) LookupUtxo ¶
func (view *UtxoViewpoint) LookupUtxo(outpoint modules.OutPoint) *modules.Utxo
func (*UtxoViewpoint) RemoveUtxo ¶
func (view *UtxoViewpoint) RemoveUtxo(outpoint modules.OutPoint)
func (*UtxoViewpoint) SetBestHash ¶
func (view *UtxoViewpoint) SetBestHash(hash *common.Hash)
func (*UtxoViewpoint) SetEntries ¶
func (view *UtxoViewpoint) SetEntries(key modules.OutPoint, utxo *modules.Utxo)