Documentation ¶
Index ¶
- Constants
- Variables
- func DbEthTxAttemptStateToTxAttemptState(state string) txmgrtypes.TxAttemptState
- func DbReceiptFromEvmReceipt(evmReceipt *evmtypes.Receipt) dbReceipt
- func DbReceiptToEvmReceipt(receipt *dbReceipt) *evmtypes.Receipt
- func GetGethSignedTx(signedRawTx []byte) (*types.Transaction, error)
- func MakeTestConfigs(t *testing.T) (*MockConfig, *TestDatabaseConfig, *TestEvmConfig)
- func NewEvmTxAttemptBuilder(chainID big.Int, feeConfig evmTxAttemptBuilderFeeConfig, ...) *evmTxAttemptBuilder
- func NewEvmTxmClient(c client.Client) *evmTxmClient
- func NewEvmTxmConfig(c ChainConfig) *evmTxmConfig
- func NewEvmTxmFeeConfig(c FeeConfig) *evmTxmFeeConfig
- func NewTxStore(db *sqlx.DB, lggr logger.Logger, cfg pg.QConfig) *evmTxStore
- type Broadcaster
- type ChainConfig
- type ChainReceipt
- type CheckerFactory
- type Confirmer
- type DatabaseConfig
- type DbEthTx
- type DbEthTxAttempt
- type EvmBroadcasterConfig
- type EvmConfirmerConfig
- type EvmReaperConfig
- type EvmResenderConfig
- type EvmTxStore
- type EvmTxmConfig
- type EvmTxmFeeConfig
- type FeeConfig
- type FwdMgr
- type KeyStore
- type ListenerConfig
- type MockConfig
- func (c *MockConfig) ChainType() commonconfig.ChainType
- func (c *MockConfig) EVM() evmconfig.EVM
- func (c *MockConfig) FinalityDepth() uint32
- func (c *MockConfig) FinalityTagEnabled() bool
- func (c *MockConfig) NonceAutoSync() bool
- func (c *MockConfig) RPCDefaultBatchSize() uint32
- func (c *MockConfig) SetFinalityDepth(fd uint32)
- type NonceSyncer
- type NullTxManager
- type Reaper
- type Receipt
- type ReceiptPlus
- type Resender
- type SimulateChecker
- type TestBlockHistoryConfig
- type TestDatabaseConfig
- type TestEvmConfig
- type TestEvmTxStore
- type TestGasEstimatorConfig
- func (g *TestGasEstimatorConfig) BlockHistory() evmconfig.BlockHistory
- func (g *TestGasEstimatorConfig) BumpMin() *assets.Wei
- func (g *TestGasEstimatorConfig) BumpPercent() uint16
- func (g *TestGasEstimatorConfig) BumpThreshold() uint64
- func (g *TestGasEstimatorConfig) BumpTxDepth() uint32
- func (g *TestGasEstimatorConfig) EIP1559DynamicFees() bool
- func (g *TestGasEstimatorConfig) FeeCapDefault() *assets.Wei
- func (g *TestGasEstimatorConfig) LimitDefault() uint32
- func (g *TestGasEstimatorConfig) LimitJobType() evmconfig.LimitJobType
- func (g *TestGasEstimatorConfig) LimitMax() uint32
- func (g *TestGasEstimatorConfig) LimitMultiplier() float32
- func (g *TestGasEstimatorConfig) LimitTransfer() uint32
- func (g *TestGasEstimatorConfig) Mode() string
- func (g *TestGasEstimatorConfig) PriceDefault() *assets.Wei
- func (g *TestGasEstimatorConfig) PriceMax() *assets.Wei
- func (g *TestGasEstimatorConfig) PriceMaxKey(addr common.Address) *assets.Wei
- func (g *TestGasEstimatorConfig) PriceMin() *assets.Wei
- func (g *TestGasEstimatorConfig) TipCapDefault() *assets.Wei
- func (g *TestGasEstimatorConfig) TipCapMin() *assets.Wei
- type TestLimitJobTypeConfig
- type TestListenerConfig
- type Tracker
- type TransactionClient
- type TransactionStore
- type TransmitChecker
- type TransmitCheckerFactory
- type TransmitCheckerSpec
- type Tx
- type TxAttempt
- type TxAttemptBuilder
- type TxAttemptSigner
- type TxManager
- type TxMeta
- type TxRequest
- type TxStore
- type TxStoreWebApi
- type Txm
- type TxmClient
- type VRFV2Checker
Constants ¶
const ( // TransmitCheckerTypeSimulate is a checker that simulates the transaction before executing on // chain. TransmitCheckerTypeSimulate = txmgrtypes.TransmitCheckerType("simulate") // TransmitCheckerTypeVRFV1 is a checker that will not submit VRF V1 fulfillment requests that // have already been fulfilled. This could happen if the request was fulfilled by another node. TransmitCheckerTypeVRFV1 = txmgrtypes.TransmitCheckerType("vrf_v1") // TransmitCheckerTypeVRFV2 is a checker that will not submit VRF V2 fulfillment requests that // have already been fulfilled. This could happen if the request was fulfilled by another node. TransmitCheckerTypeVRFV2 = txmgrtypes.TransmitCheckerType("vrf_v2") // TransmitCheckerTypeVRFV2Plus is a checker that will not submit VRF V2 plus fulfillment requests that // have already been fulfilled. This could happen if the request was fulfilled by another node. TransmitCheckerTypeVRFV2Plus = txmgrtypes.TransmitCheckerType("vrf_v2plus") )
Variables ¶
var ( ErrKeyNotUpdated = errors.New("evmTxStore: Key not updated") ErrInvalidQOpt = errors.New("evmTxStore: Invalid QOpt") // ErrCouldNotGetReceipt is the error string we save if we reach our finality depth for a confirmed transaction without ever getting a receipt // This most likely happened because an external wallet used the account for this nonce ErrCouldNotGetReceipt = "could not get receipt" )
Functions ¶
func DbEthTxAttemptStateToTxAttemptState ¶
func DbEthTxAttemptStateToTxAttemptState(state string) txmgrtypes.TxAttemptState
func DbReceiptFromEvmReceipt ¶
func DbReceiptToEvmReceipt ¶
func GetGethSignedTx ¶
func GetGethSignedTx(signedRawTx []byte) (*types.Transaction, error)
GetGethSignedTx decodes the SignedRawTx into a types.Transaction struct
func MakeTestConfigs ¶
func MakeTestConfigs(t *testing.T) (*MockConfig, *TestDatabaseConfig, *TestEvmConfig)
func NewEvmTxAttemptBuilder ¶
func NewEvmTxAttemptBuilder(chainID big.Int, feeConfig evmTxAttemptBuilderFeeConfig, keystore TxAttemptSigner[common.Address], estimator gas.EvmFeeEstimator) *evmTxAttemptBuilder
func NewEvmTxmClient ¶
func NewEvmTxmConfig ¶
func NewEvmTxmConfig(c ChainConfig) *evmTxmConfig
func NewEvmTxmFeeConfig ¶
func NewEvmTxmFeeConfig(c FeeConfig) *evmTxmFeeConfig
Types ¶
type Broadcaster ¶
type Broadcaster = txmgr.Broadcaster[*big.Int, *evmtypes.Head, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
func NewEvmBroadcaster ¶
func NewEvmBroadcaster( txStore TransactionStore, client TransactionClient, chainConfig txmgrtypes.BroadcasterChainConfig, feeConfig txmgrtypes.BroadcasterFeeConfig, txConfig txmgrtypes.BroadcasterTransactionsConfig, listenerConfig txmgrtypes.BroadcasterListenerConfig, keystore KeyStore, txAttemptBuilder TxAttemptBuilder, nonceSyncer NonceSyncer, logger logger.Logger, checkerFactory TransmitCheckerFactory, autoSyncNonce bool, ) *Broadcaster
NewEvmBroadcaster returns a new concrete EvmBroadcaster
type ChainConfig ¶
type ChainConfig interface { ChainType() config.ChainType FinalityDepth() uint32 FinalityTagEnabled() bool NonceAutoSync() bool RPCDefaultBatchSize() uint32 }
ChainConfig encompasses config used by txmgr package Unless otherwise specified, these should support changing at runtime
type ChainReceipt ¶
type ChainReceipt = txmgrtypes.ChainReceipt[common.Hash, common.Hash]
Type aliases for EVM
type CheckerFactory ¶
CheckerFactory is a real implementation of TransmitCheckerFactory.
func (*CheckerFactory) BuildChecker ¶
func (c *CheckerFactory) BuildChecker(spec TransmitCheckerSpec) (TransmitChecker, error)
BuildChecker satisfies the TransmitCheckerFactory interface.
type Confirmer ¶
type Confirmer = txmgr.Confirmer[*big.Int, *evmtypes.Head, common.Address, common.Hash, common.Hash, *evmtypes.Receipt, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
func NewEvmConfirmer ¶
func NewEvmConfirmer( txStore TxStore, client TxmClient, chainConfig txmgrtypes.ConfirmerChainConfig, feeConfig txmgrtypes.ConfirmerFeeConfig, txConfig txmgrtypes.ConfirmerTransactionsConfig, dbConfig txmgrtypes.ConfirmerDatabaseConfig, keystore KeyStore, txAttemptBuilder TxAttemptBuilder, lggr logger.Logger, ) *Confirmer
NewEvmConfirmer instantiates a new EVM confirmer
type DatabaseConfig ¶
type DbEthTx ¶
type DbEthTx struct { ID int64 IdempotencyKey *string Nonce *int64 FromAddress common.Address ToAddress common.Address EncodedPayload []byte Value assets.Eth // GasLimit on the EthTx is always the conceptual gas limit, which is not // necessarily the same as the on-chain encoded value (i.e. Optimism) GasLimit uint32 Error nullv4.String // BroadcastAt is updated every time an attempt for this eth_tx is re-sent // In almost all cases it will be within a second or so of the actual send time. BroadcastAt *time.Time // InitialBroadcastAt is recorded once, the first ever time this eth_tx is sent CreatedAt time.Time State txmgrtypes.TxState // Marshalled EvmTxMeta // Used for additional context around transactions which you want to log // at send time. Meta *sqlutil.JSON Subject uuid.NullUUID PipelineTaskRunID uuid.NullUUID MinConfirmations null.Uint32 EVMChainID ubig.Big // TransmitChecker defines the check that should be performed before a transaction is submitted on // chain. TransmitChecker *sqlutil.JSON InitialBroadcastAt *time.Time // Marks tx requiring callback SignalCallback bool // Marks tx callback as signaled CallbackCompleted bool }
Directly maps to columns of database table "evm.txes". This is exported, as tests and other external code still directly reads DB using this schema.
type DbEthTxAttempt ¶
type DbEthTxAttempt struct { ID int64 EthTxID int64 GasPrice *assets.Wei SignedRawTx []byte Hash common.Hash BroadcastBeforeBlockNum *int64 State string CreatedAt time.Time ChainSpecificGasLimit uint32 TxType int GasTipCap *assets.Wei GasFeeCap *assets.Wei }
Directly maps to columns of database table "evm.tx_attempts". This is exported, as tests and other external code still directly reads DB using this schema.
func (*DbEthTxAttempt) FromTxAttempt ¶
func (db *DbEthTxAttempt) FromTxAttempt(attempt *TxAttempt)
func (DbEthTxAttempt) ToTxAttempt ¶
func (db DbEthTxAttempt) ToTxAttempt(attempt *TxAttempt)
type EvmBroadcasterConfig ¶
type EvmBroadcasterConfig txmgrtypes.BroadcasterChainConfig
type EvmConfirmerConfig ¶
type EvmConfirmerConfig txmgrtypes.ConfirmerChainConfig
type EvmReaperConfig ¶
type EvmReaperConfig txmgrtypes.ReaperChainConfig
type EvmResenderConfig ¶
type EvmResenderConfig txmgrtypes.ResenderChainConfig
type EvmTxStore ¶
type EvmTxStore interface { // redeclare TxStore for mockery txmgrtypes.TxStore[common.Address, *big.Int, common.Hash, common.Hash, *evmtypes.Receipt, evmtypes.Nonce, gas.EvmFee] TxStoreWebApi }
EvmTxStore combines the txmgr tx store interface and the interface needed for the the API to read from the tx DB
type EvmTxmConfig ¶
type EvmTxmConfig txmgrtypes.TransactionManagerChainConfig
type EvmTxmFeeConfig ¶
type EvmTxmFeeConfig txmgrtypes.TransactionManagerFeeConfig
type ListenerConfig ¶
type MockConfig ¶
type MockConfig struct { EvmConfig *TestEvmConfig RpcDefaultBatchSize uint32 // contains filtered or unexported fields }
func (*MockConfig) ChainType ¶
func (c *MockConfig) ChainType() commonconfig.ChainType
func (*MockConfig) EVM ¶
func (c *MockConfig) EVM() evmconfig.EVM
func (*MockConfig) FinalityDepth ¶
func (c *MockConfig) FinalityDepth() uint32
func (*MockConfig) FinalityTagEnabled ¶
func (c *MockConfig) FinalityTagEnabled() bool
func (*MockConfig) NonceAutoSync ¶
func (c *MockConfig) NonceAutoSync() bool
func (*MockConfig) RPCDefaultBatchSize ¶
func (c *MockConfig) RPCDefaultBatchSize() uint32
func (*MockConfig) SetFinalityDepth ¶
func (c *MockConfig) SetFinalityDepth(fd uint32)
type NonceSyncer ¶
Type aliases for EVM
func NewNonceSyncer ¶
func NewNonceSyncer( txStore EvmTxStore, lggr logger.Logger, ethClient evmclient.Client, ) NonceSyncer
NewNonceSyncer returns a new syncer
type NullTxManager ¶
type NullTxManager = txmgr.NullTxManager[*big.Int, *evmtypes.Head, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type Reaper ¶
Type aliases for EVM
func NewEvmReaper ¶
func NewEvmReaper(lggr logger.Logger, store txmgrtypes.TxHistoryReaper[*big.Int], config EvmReaperConfig, txConfig txmgrtypes.ReaperTransactionsConfig, chainID *big.Int) *Reaper
NewEvmReaper instantiates a new EVM-specific reaper object
type Receipt ¶
type Receipt = dbReceipt // EvmReceipt is the exported DB table model for receipts
Type aliases for EVM
type ReceiptPlus ¶
type ReceiptPlus = txmgrtypes.ReceiptPlus[*evmtypes.Receipt]
Type aliases for EVM
type Resender ¶
type Resender = txmgr.Resender[*big.Int, common.Address, common.Hash, common.Hash, *evmtypes.Receipt, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
func NewEvmResender ¶
func NewEvmResender( lggr logger.Logger, txStore TransactionStore, client TransactionClient, tracker *Tracker, ks KeyStore, pollInterval time.Duration, config EvmResenderConfig, txConfig txmgrtypes.ResenderTransactionsConfig, ) *Resender
NewEvmResender creates a new concrete EvmResender
type SimulateChecker ¶
SimulateChecker simulates transactions, producing an error if they revert on chain.
func (*SimulateChecker) Check ¶
func (s *SimulateChecker) Check( ctx context.Context, l logger.SugaredLogger, tx Tx, a TxAttempt, ) error
Check satisfies the TransmitChecker interface.
type TestBlockHistoryConfig ¶
type TestBlockHistoryConfig struct {
evmconfig.BlockHistory
}
func (*TestBlockHistoryConfig) BatchSize ¶
func (b *TestBlockHistoryConfig) BatchSize() uint32
func (*TestBlockHistoryConfig) BlockDelay ¶
func (b *TestBlockHistoryConfig) BlockDelay() uint16
func (*TestBlockHistoryConfig) BlockHistorySize ¶
func (b *TestBlockHistoryConfig) BlockHistorySize() uint16
func (*TestBlockHistoryConfig) EIP1559FeeCapBufferBlocks ¶
func (b *TestBlockHistoryConfig) EIP1559FeeCapBufferBlocks() uint16
func (*TestBlockHistoryConfig) TransactionPercentile ¶
func (b *TestBlockHistoryConfig) TransactionPercentile() uint16
type TestDatabaseConfig ¶
func (*TestDatabaseConfig) DefaultQueryTimeout ¶
func (d *TestDatabaseConfig) DefaultQueryTimeout() time.Duration
func (*TestDatabaseConfig) Listener ¶
func (d *TestDatabaseConfig) Listener() config.Listener
func (*TestDatabaseConfig) LogSQL ¶
func (d *TestDatabaseConfig) LogSQL() bool
type TestEvmConfig ¶
type TestEvmConfig struct { evmconfig.EVM MaxInFlight uint32 ReaperInterval time.Duration ReaperThreshold time.Duration ResendAfterThreshold time.Duration BumpThreshold uint64 MaxQueued uint64 }
func (*TestEvmConfig) FinalityDepth ¶
func (e *TestEvmConfig) FinalityDepth() uint32
func (*TestEvmConfig) GasEstimator ¶
func (e *TestEvmConfig) GasEstimator() evmconfig.GasEstimator
func (*TestEvmConfig) NonceAutoSync ¶
func (e *TestEvmConfig) NonceAutoSync() bool
func (*TestEvmConfig) Transactions ¶
func (e *TestEvmConfig) Transactions() evmconfig.Transactions
type TestEvmTxStore ¶
type TestEvmTxStore interface { EvmTxStore // methods only used for testing purposes InsertReceipt(receipt *evmtypes.Receipt) (int64, error) InsertTx(etx *Tx) error FindTxAttemptsByTxIDs(ids []int64) ([]TxAttempt, error) InsertTxAttempt(attempt *TxAttempt) error LoadTxesAttempts(etxs []*Tx, qopts ...pg.QOpt) error GetFatalTransactions(ctx context.Context) (txes []*Tx, err error) GetAllTxes(ctx context.Context) (txes []*Tx, err error) GetAllTxAttempts(ctx context.Context) (attempts []TxAttempt, err error) CountTxesByStateAndSubject(ctx context.Context, state txmgrtypes.TxState, subject uuid.UUID) (count int, err error) FindTxesByFromAddressAndState(ctx context.Context, fromAddress common.Address, state string) (txes []*Tx, err error) UpdateTxAttemptBroadcastBeforeBlockNum(ctx context.Context, id int64, blockNum uint) error }
type TestGasEstimatorConfig ¶
type TestGasEstimatorConfig struct {
// contains filtered or unexported fields
}
func (*TestGasEstimatorConfig) BlockHistory ¶
func (g *TestGasEstimatorConfig) BlockHistory() evmconfig.BlockHistory
func (*TestGasEstimatorConfig) BumpMin ¶
func (g *TestGasEstimatorConfig) BumpMin() *assets.Wei
func (*TestGasEstimatorConfig) BumpPercent ¶
func (g *TestGasEstimatorConfig) BumpPercent() uint16
func (*TestGasEstimatorConfig) BumpThreshold ¶
func (g *TestGasEstimatorConfig) BumpThreshold() uint64
func (*TestGasEstimatorConfig) BumpTxDepth ¶
func (g *TestGasEstimatorConfig) BumpTxDepth() uint32
func (*TestGasEstimatorConfig) EIP1559DynamicFees ¶
func (g *TestGasEstimatorConfig) EIP1559DynamicFees() bool
func (*TestGasEstimatorConfig) FeeCapDefault ¶
func (g *TestGasEstimatorConfig) FeeCapDefault() *assets.Wei
func (*TestGasEstimatorConfig) LimitDefault ¶
func (g *TestGasEstimatorConfig) LimitDefault() uint32
func (*TestGasEstimatorConfig) LimitJobType ¶
func (g *TestGasEstimatorConfig) LimitJobType() evmconfig.LimitJobType
func (*TestGasEstimatorConfig) LimitMax ¶
func (g *TestGasEstimatorConfig) LimitMax() uint32
func (*TestGasEstimatorConfig) LimitMultiplier ¶
func (g *TestGasEstimatorConfig) LimitMultiplier() float32
func (*TestGasEstimatorConfig) LimitTransfer ¶
func (g *TestGasEstimatorConfig) LimitTransfer() uint32
func (*TestGasEstimatorConfig) Mode ¶
func (g *TestGasEstimatorConfig) Mode() string
func (*TestGasEstimatorConfig) PriceDefault ¶
func (g *TestGasEstimatorConfig) PriceDefault() *assets.Wei
func (*TestGasEstimatorConfig) PriceMax ¶
func (g *TestGasEstimatorConfig) PriceMax() *assets.Wei
func (*TestGasEstimatorConfig) PriceMaxKey ¶
func (g *TestGasEstimatorConfig) PriceMaxKey(addr common.Address) *assets.Wei
func (*TestGasEstimatorConfig) PriceMin ¶
func (g *TestGasEstimatorConfig) PriceMin() *assets.Wei
func (*TestGasEstimatorConfig) TipCapDefault ¶
func (g *TestGasEstimatorConfig) TipCapDefault() *assets.Wei
func (*TestGasEstimatorConfig) TipCapMin ¶
func (g *TestGasEstimatorConfig) TipCapMin() *assets.Wei
type TestLimitJobTypeConfig ¶
type TestLimitJobTypeConfig struct { }
func (*TestLimitJobTypeConfig) DR ¶
func (l *TestLimitJobTypeConfig) DR() *uint32
func (*TestLimitJobTypeConfig) FM ¶
func (l *TestLimitJobTypeConfig) FM() *uint32
func (*TestLimitJobTypeConfig) VRF ¶
func (l *TestLimitJobTypeConfig) VRF() *uint32
type TestListenerConfig ¶
func (*TestListenerConfig) FallbackPollInterval ¶
func (l *TestListenerConfig) FallbackPollInterval() time.Duration
type Tracker ¶
type Tracker = txmgr.Tracker[*big.Int, common.Address, common.Hash, common.Hash, *evmtypes.Receipt, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TransactionClient ¶
type TransactionClient = txmgrtypes.TransactionClient[*big.Int, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TransactionStore ¶
type TransactionStore = txmgrtypes.TransactionStore[common.Address, *big.Int, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TransmitChecker ¶
type TransmitChecker = txmgr.TransmitChecker[*big.Int, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
var ( // NoChecker is a TransmitChecker that always determines a transaction should be submitted. NoChecker TransmitChecker = noChecker{} )
type TransmitCheckerFactory ¶
type TransmitCheckerFactory = txmgr.TransmitCheckerFactory[*big.Int, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TransmitCheckerSpec ¶
type TransmitCheckerSpec = txmgrtypes.TransmitCheckerSpec[common.Address]
type Tx ¶
type Tx = txmgrtypes.Tx[*big.Int, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TxAttempt ¶
type TxAttempt = txmgrtypes.TxAttempt[*big.Int, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TxAttemptBuilder ¶
type TxAttemptBuilder = txmgrtypes.TxAttemptBuilder[*big.Int, *evmtypes.Head, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TxAttemptSigner ¶
type TxAttemptSigner[ADDR commontypes.Hashable] interface { SignTx(fromAddress ADDR, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) }
type TxManager ¶
type TxManager = txmgr.TxManager[*big.Int, *evmtypes.Head, common.Address, common.Hash, common.Hash, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
func NewTxm ¶
func NewTxm( db *sqlx.DB, chainConfig ChainConfig, fCfg FeeConfig, txConfig config.Transactions, dbConfig DatabaseConfig, listenerConfig ListenerConfig, client evmclient.Client, lggr logger.Logger, logPoller logpoller.LogPoller, keyStore keystore.Eth, estimator gas.EvmFeeEstimator, ) (txm TxManager, err error, )
NewTxm constructs the necessary dependencies for the EvmTxm (broadcaster, confirmer, etc) and returns a new EvmTxManager
type TxStore ¶
type TxStore = txmgrtypes.TxStore[common.Address, *big.Int, common.Hash, common.Hash, *evmtypes.Receipt, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type TxStoreWebApi ¶
type TxStoreWebApi interface { FindTxAttemptConfirmedByTxIDs(ids []int64) ([]TxAttempt, error) FindTxByHash(hash common.Hash) (*Tx, error) Transactions(offset, limit int) ([]Tx, int, error) TxAttempts(offset, limit int) ([]TxAttempt, int, error) TransactionsWithAttempts(offset, limit int) ([]Tx, int, error) FindTxAttempt(hash common.Hash) (*TxAttempt, error) FindTxWithAttempts(etxID int64) (etx Tx, err error) }
TxStoreWebApi encapsulates the methods that are not used by the txmgr and only used by the various web controllers and readers
type Txm ¶
type Txm = txmgr.Txm[*big.Int, *evmtypes.Head, common.Address, common.Hash, common.Hash, *evmtypes.Receipt, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
func NewEvmTxm ¶
func NewEvmTxm( chainId *big.Int, cfg txmgrtypes.TransactionManagerChainConfig, txCfg txmgrtypes.TransactionManagerTransactionsConfig, keyStore KeyStore, lggr logger.Logger, checkerFactory TransmitCheckerFactory, fwdMgr FwdMgr, txAttemptBuilder TxAttemptBuilder, txStore TxStore, nonceSyncer NonceSyncer, broadcaster *Broadcaster, confirmer *Confirmer, resender *Resender, tracker *Tracker, ) *Txm
NewEvmTxm creates a new concrete EvmTxm
type TxmClient ¶
type TxmClient = txmgrtypes.TxmClient[*big.Int, common.Address, common.Hash, common.Hash, *evmtypes.Receipt, evmtypes.Nonce, gas.EvmFee]
Type aliases for EVM
type VRFV2Checker ¶
type VRFV2Checker struct { // GetCommitment checks whether a VRF V2 request has been fulfilled on the VRFCoordinatorV2 // Solidity contract. GetCommitment func(opts *bind.CallOpts, requestID *big.Int) ([32]byte, error) // HeadByNumber fetches the head given the number. If nil is provided, // the latest header is fetched. HeadByNumber func(ctx context.Context, n *big.Int) (*types.Head, error) // RequestBlockNumber is the block number of the VRFV2 request. RequestBlockNumber *big.Int }
VRFV2Checker is an implementation of TransmitChecker that checks whether a VRF V2 fulfillment has already been fulfilled.
func (*VRFV2Checker) Check ¶
func (v *VRFV2Checker) Check( ctx context.Context, l logger.SugaredLogger, tx Tx, _ TxAttempt, ) error
Check satisfies the TransmitChecker interface.