Documentation ¶
Index ¶
- Variables
- func IntrinsicGas(tx types.Transaction) (uint64, error)
- type Config
- type Pool
- func (p *Pool) AddTx(ctx context.Context, tx types.Transaction, ip string) error
- func (p *Pool) CountPendingTransactions(ctx context.Context) (uint64, error)
- func (p *Pool) DeleteReorgedTransactions(ctx context.Context, transactions []*types.Transaction) error
- func (p *Pool) GetGasPrice(ctx context.Context) (uint64, error)
- func (p *Pool) GetNonWIPPendingTxs(ctx context.Context, isClaims bool, limit uint64) ([]Transaction, error)
- func (p *Pool) GetPendingTxHashesSince(ctx context.Context, since time.Time) ([]common.Hash, error)
- func (p *Pool) GetPendingTxs(ctx context.Context, isClaims bool, limit uint64) ([]Transaction, error)
- func (p *Pool) GetSelectedTxs(ctx context.Context, limit uint64) ([]Transaction, error)
- func (p *Pool) IsTxPending(ctx context.Context, hash common.Hash) (bool, error)
- func (p *Pool) PreExecuteTx(ctx context.Context, tx types.Transaction) (state.ZKCounters, error, bool)
- func (p *Pool) SetGasPrice(ctx context.Context, gasPrice uint64) error
- func (p *Pool) StoreTx(ctx context.Context, tx types.Transaction, ip string) error
- func (p *Pool) UpdateTxStatus(ctx context.Context, hash common.Hash, newStatus TxStatus, isWIP bool) error
- func (p *Pool) UpdateTxWIPStatus(ctx context.Context, hash common.Hash, isWIP bool) error
- type Transaction
- type TxStatus
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidChainID is returned when the transaction has a different chain id // than the chain id of the network ErrInvalidChainID = errors.New("invalid chain id") // ErrTxTypeNotSupported is returned if a transaction is not supported in the // current network configuration. ErrTxTypeNotSupported = types.ErrTxTypeNotSupported // 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") // ErrNegativeValue is a sanity error to ensure no one is able to specify a // transaction with a negative value. ErrNegativeValue = errors.New("negative value") // 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") // 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") // ErrIntrinsicGas is returned if the transaction is specified to use less gas // than required to start the invocation. ErrIntrinsicGas = errors.New("intrinsic gas too low") // ErrGasUintOverflow is returned when calculating gas usage. ErrGasUintOverflow = errors.New("gas uint64 overflow") )
var ( // ErrAlreadyKnown is returned if the transactions is already contained // within the pool. ErrAlreadyKnown = errors.New("already known") // 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") )
Functions ¶
func IntrinsicGas ¶
func IntrinsicGas(tx types.Transaction) (uint64, error)
IntrinsicGas computes the 'intrinsic gas' for a given transaction.
Types ¶
type Config ¶
type Config struct { // FreeClaimGasLimit is the max gas allowed use to do a free claim FreeClaimGasLimit uint64 `mapstructure:"FreeClaimGasLimit"` DB db.Config `mapstructure:"DB"` }
Config is the pool configuration
type Pool ¶
type Pool struct {
// contains filtered or unexported fields
}
Pool is an implementation of the Pool interface that uses a postgres database to store the data
func NewPool ¶
func NewPool(cfg Config, s storage, st stateInterface, l2BridgeAddr common.Address, chainID uint64) *Pool
NewPool creates and initializes an instance of Pool
func (*Pool) CountPendingTransactions ¶
CountPendingTransactions get number of pending transactions used in bench tests
func (*Pool) DeleteReorgedTransactions ¶
func (p *Pool) DeleteReorgedTransactions(ctx context.Context, transactions []*types.Transaction) error
DeleteReorgedTransactions deletes transactions from the pool
func (*Pool) GetGasPrice ¶
GetGasPrice returns the current gas price
func (*Pool) GetNonWIPPendingTxs ¶
func (p *Pool) GetNonWIPPendingTxs(ctx context.Context, isClaims bool, limit uint64) ([]Transaction, error)
GetNonWIPPendingTxs from the pool limit parameter is used to limit amount of pending txs from the db, if limit = 0, then there is no limit
func (*Pool) GetPendingTxHashesSince ¶
GetPendingTxHashesSince returns the hashes of pending tx since the given date.
func (*Pool) GetPendingTxs ¶
func (p *Pool) GetPendingTxs(ctx context.Context, isClaims bool, limit uint64) ([]Transaction, error)
GetPendingTxs from the pool limit parameter is used to limit amount of pending txs from the db, if limit = 0, then there is no limit
func (*Pool) GetSelectedTxs ¶
GetSelectedTxs gets selected txs from the pool db
func (*Pool) IsTxPending ¶
IsTxPending check if tx is still pending
func (*Pool) PreExecuteTx ¶
func (p *Pool) PreExecuteTx(ctx context.Context, tx types.Transaction) (state.ZKCounters, error, bool)
PreExecuteTx executes a transaction to calculate its zkCounters
func (*Pool) SetGasPrice ¶
SetGasPrice allows an external component to define the gas price
type Transaction ¶
type Transaction struct { types.Transaction Status TxStatus IsClaims bool state.ZKCounters ReceivedAt time.Time PreprocessedStateRoot common.Hash IsWIP bool IP string }
Transaction represents a pool tx
type TxStatus ¶
type TxStatus string
TxStatus represents the state of a tx
const ( // TxStatusPending represents a tx that has not been processed TxStatusPending TxStatus = "pending" // TxStatusInvalid represents an invalid tx TxStatusInvalid TxStatus = "invalid" // TxStatusSelected represents a tx that has been selected TxStatusSelected TxStatus = "selected" // TxStatusFailed represents a tx that has been failed after processing, but can be processed in the future TxStatusFailed TxStatus = "failed" )