1. Fixing a crash on `ValidateAndBuildTransaction`: tx.Nonce() is called on a null tx whenever it fails to build the transaction
2. Fixing gas extimations. The estimations are always done on mainnet and the requested chainId is ignored in the estimation
* chore_: unused `BuildTx` function removed from the processor interface and types that are implement it
Since the `BuildTx` function is not used anywhere, it's removed from the code.
* fix_: resolving nonce improvements
When the app sends more than a single tx from the same account on the same chain, some
chains do not return appropriate nonce (they do not consider pending txs), because of
that we place more tx with the same nonce, where all but the first one fail.
Changes in this PR keep track of nonces being used in the same sending/bridging flow, which means
for the first tx from the multi txs the app asks the chain for the nonce, and every next nonce is resolved
by incrementing the last used nonce by 1.
* fix_: allow gas estimation for DynamicFeeTx
* test_: added tests for BuildAndValidateTransaction
* fix_: using IsDynamicTx for gasPrice suggestion
* fix_: hash transaction check
Co-authored-by: Stefan Dunca <47554641+stefandunca@users.noreply.github.com>
---------
Co-authored-by: Stefan Dunca <47554641+stefandunca@users.noreply.github.com>
- Moved some methods from Transactor to users of it to clean interface.
- Mocked Bridge interface and Transactor interface for tests
- Wrote unit tests for SendTransaction
Reading the Nonce from the local cache may be incorrect if the tx is made out of the Status app or
if Status app sends a tx prepared by the dapp (via WalletConnect). A submitted tx with a wrong Nonce
results in a failing tx, that's why we need to read the Nonce from the network.
- `WalletConnectTransfer` identified as a new transfer type
- Wallet-related endpoints that logically belong to the wallet moved from the wallet connect service
- Wallet connect service now receives `transfer.TransactionManager` instead of `transactions.Transactor`
- Deadlock issue when trying to send the tx with the wrong nonce fixed
This functionality is needed in case the user wants to send a transaction and
signs it using the signature provided by the keycard (or any other compatible way).
* add SendTransactionWithSignature to Transactor
* add comment to SendTransactionWithSignature
* add SendTransactionWithSignature to StatusBackend
* add SendTransactionWithSignature to lib
* add SendTransactionWithSignature to mobile pkg
* increment nonce if needed
* add TestSendTransactionWithSignature_IncrementingNonce
* add NoError assertion
* validate tx args
* debug CI adding `env`
* CI debug
* remove debug
* return error if tx nonce is not the expected one
* fix lint warning
Remove `PendingSignRequests` queue from the sign module.
This closes#1027 by removing the pending sign requests queue dependency from the SendTransaction, SignMessage and Recover.