transactor

package
v0.0.0-...-80ff8fe Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// Hex string address of the multicall contract to be used for batched txs. Currently
	// configured to use the following `public`, `payable` function on this contract:
	//   call data signature: `tryAggregate(bool,(address,bytes))`
	//   returns: `([](bool,bytes))`
	Multicall3Address string

	// How large an individual batched tx will be (uses multicall contract if > 1).
	TxBatchSize int
	// How long to wait for a batch to be flushed (ideally 1 block time).
	TxBatchTimeout time.Duration
	// Whether we wait the full batch timeout before firing txs. False means we will fire as soon
	// as we reach the desired batch size.
	WaitFullBatchTimeout bool
	// How long to wait to retrieve txs from the queue if it is empty (ideally quick <= 1s).
	EmptyQueueDelay time.Duration

	// Maximum duration allowed for the tx to be signed (increase this if using a remote signer)
	SignTxTimeout time.Duration

	// How long to wait for the pending nonce (ideally 1 block time).
	PendingNonceInterval time.Duration
	// How long to wait for a tx to hit the mempool (ideally 1-2 block time).
	InMempoolTimeout time.Duration
	// How long to wait for a tx to be mined/confirmed by the chain.
	TxReceiptTimeout time.Duration
	// Whether we should resend txs that are stale (not confirmed after the receipt timeout).
	ResendStaleTxs bool

	// How often to post a snapshot of the transactor system status (ideally 1 block time).
	StatusUpdateInterval time.Duration

	// (Optional) SQS queue config. If left empty, an in-memory queue is used.
	SQS sqs.Config
	// If true, the queue (SQS generates its own) message ID will be used for tracking messages,
	// rather than the optional, user-provided message ID.
	UseQueueMessageID bool
}

type TxrV2

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

TxrV2 is the main transactor object. TODO: deprecate off being a job.

func NewTransactor

func NewTransactor(cfg Config, signer kmstypes.TxSigner) (*TxrV2, error)

NewTransactor creates a new transactor with the given config and signer.

func (*TxrV2) Execute

func (t *TxrV2) Execute(_ context.Context, _ any) (any, error)

Execute implements job.Basic.

func (*TxrV2) GetPreconfirmedState

func (t *TxrV2) GetPreconfirmedState(msgID string) types.PreconfirmedState

GetPreconfirmedState returns the status of the given message ID before it has been confirmed by the chain.

func (*TxrV2) IntervalTime

func (t *TxrV2) IntervalTime(context.Context) time.Duration

IntervalTime implements job.Polling.

func (*TxrV2) OnError

func (t *TxrV2) OnError(_ context.Context, resp *tracker.Response) error

OnError is called when a transaction request fails to build or send.

func (*TxrV2) OnRevert

func (t *TxrV2) OnRevert(resp *tracker.Response, receipt *coretypes.Receipt) error

OnRevert is called when a transaction has been reverted.

func (*TxrV2) OnStale

func (t *TxrV2) OnStale(ctx context.Context, resp *tracker.Response, isPending bool) error

OnStale is called when a transaction becomes stale after the configured timeout.

func (*TxrV2) OnSuccess

func (t *TxrV2) OnSuccess(resp *tracker.Response, receipt *coretypes.Receipt) error

OnSuccess is called when a transaction has been successfully included in a block.

func (*TxrV2) RegistryKey

func (t *TxrV2) RegistryKey() string

RegistryKey implements job.Basic.

func (*TxrV2) SendTxRequest

func (t *TxrV2) SendTxRequest(txReq *types.Request) (string, error)

SendTxRequest adds the given tx request to the tx queue, after validating it.

func (*TxrV2) Setup

func (t *TxrV2) Setup(ctx context.Context) error

Setup implements job.HasSetup.

func (*TxrV2) SubscribeTxResults

func (t *TxrV2) SubscribeTxResults(ctx context.Context, subscriber tracker.Subscriber)

SubscribeTxResults sends the tx results, once confirmed, to the given subscriber.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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