You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: 🚑 nonce management in the blockchain service (#549)
* feat: ✨ initial transaction pool and nonce manager logic
* feat: ♻️ refactor watches to sync with new transaction pool
* fix: 🐛 issue with status subscriptions
* fix: 🩹 also process tx status updates on finality
* feat: 🔊 improve log clarity by specifying which tx is being dropped
* test: ✅ add Retracted and Usurped test cases for new logic
* fix: 🎨 run cargo fmt
* feat: ✨ add event extraction from successful transactions
* style: 🎨 run cargo fmt
* test: ✅ add Invalid transaction and nonce gap fulfilling test
* feat: 🔊 Add error logs in case of failing to send status update of transactions
* feat: ✅ add a way to select log level for actors in integration tests
* feat: 🔊 Add logging of which call is related to which hash
* fix: 🩹 Remove leftover `only: true` flag
* perf: ⚡ Decrease retry timout in test
* fix: 🩹 amend review (pool -> manager)
* feat: ✨ add tip tracking in transaction manager
* docs: 💡 add permalink to Polkadot SDK's `TransactionStatus`
* test: ✅ rename and fix transaction manager integration test
* fix: ✅ single volunteer test
* test: ✅ improve BSP volunteer for multiple files test
* feat: ✨ Allow arbitrary strings for log level in tests
* feat: 🔊 Improve logs of transactions adding nonce
* fix: 🐛 add initial check when watching for tx success
* fix: 🐛 check for the `ExtrinsicSuccess` event to ensure the new ext didn't fail
* test: ✅ minor test fixes
* fix: 🩹 Fix typos and names of tests
* fix: 🐛 Update transaction status in `run()` cycle of blockchain service
* fix: 🩹 Remove processing of transaction status in block import and block finalised
* fix: 🐛 skip to correct block when testing MSP charge
* fix: 🩹 Remove `only: true` flag from test
* fix: 🩹 Move `tx_status_receiver` out of `actor` struct
* fix: 🐛 Avoid cross-talk between updates from replaced transactions
* test: ✅ fix invalid transaction test by dropping retry tx
---------
Co-authored-by: Facundo Farall <[email protected]>
warn!(target:LOG_TARGET,"Failed to submit transaction with hash {:?}, attempt #{}",transaction.hash(), retry_count + 1);
294
+
warn!(target:LOG_TARGET,"Failed to submit transaction with hash {:?}, attempt #{}",submitted_ext_info.hash, retry_count + 1);
313
295
314
-
// TODO: Add pending transaction pool implementation to be able to resubmit transactions with nonces lower than the current one to avoid this transaction from being stuck.
315
296
ifletWatchTransactionError::Timeout = err {
316
297
// Increase the tip to incentivise the collators to include the transaction in a block with priority
317
298
tip = retry_strategy.compute_tip(retry_count + 1);
318
299
// Reuse the same nonce since the transaction was not included in a block.
319
-
nonce = Some(transaction.nonce());
300
+
nonce = Some(submitted_ext_info.nonce);
320
301
321
302
// Log warning if this is not the last retry.
322
303
if retry_count < retry_strategy.max_retries{
323
-
warn!(target:LOG_TARGET,"Retrying with increased tip {} and nonce {}", tip,transaction.nonce());
304
+
warn!(target:LOG_TARGET,"Retrying with increased tip {} and nonce {}", tip,submitted_ext_info.nonce);
0 commit comments