Skip to content

Replay rejected transactions in tx client #5133

@ninabarbakadze

Description

@ninabarbakadze

Description

This issues should build onto the prototype introduced in #4791, originally designed to handle different cases of nonce mismatches.

In the first iteration, this fix allowed clients to save tx hashes and continuously resubmit evicted transactions until they were successfully included in a block. This was done by updating txInfo to store the full txBytes, enabling the TxClient to replay prior transactions if the node no longer had them.

This next phase builds on that by preparing for block-based TTLs, where users can specify a height-based expiry for their transactions. Once TTLs are supported, if a transaction hasn't landed in a block by the specified expiry height, it will be rejected and the tx client can safely resubmit a fresh transaction with the correct nonce. By tracking submitted transactions in the TxTracker, we ensure that replay only occurs after TTL expiry, which gives us replay protection and clearer lifecycle management for transactions on the client side. This should significantly reduce nonce mismatch related errors.

Metadata

Metadata

Labels

TxClientWS: BestTxsReliable and seamless transaction flowrequiredissue is required to be closed before workstream can be closedwarn:blockeditem is not currently being worked on but is still blocked

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions