Why we sometimes lie to your wallet
To ensure that your wallet drops your canceled transactions, GasHawk must temporarily respond with an artificially high transaction count to the RPC call eth_getTransactionCount
. This approach allows us to effectively manage the transaction state within your wallet.
This behavior is necessary because MetaMask relies on the transaction count to determine the status of pending transactions. By providing a higher count, we can signal to MetaMask that the transaction has been handled and should no longer be considered pending.
For more details on this mechanism, please refer to our source of inspiration from Flashbots Protect.