Conversation
Realign v2.9.2
Realign v2.9.3
refactor: avoid transaction being removed from pool rapidly
Transaction can remain pending for more than 10 minutes: - ttl is now set to 0 - user can set nonce now
…saction-details Add advanced transaction details
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Autofix Details
Bugbot Autofix prepared fixes for both issues found in the latest run.
- ✅ Fixed: Fee divided by recipients falls below minimum per-transaction
- I removed the per-recipient fee division in Aeternity transfer submission so each transaction now uses the validated minimum-or-higher fee.
- ✅ Fixed: Unused locale key added but never referenced
- I deleted the unused advancedFeeLowWarning translation key from both English and Chinese locale files since it is not referenced anywhere.
Or push these changes by commenting:
@cursor push ca60c106e2
Preview (ca60c106e2)
diff --git a/src/popup/locales/en-US.json b/src/popup/locales/en-US.json
--- a/src/popup/locales/en-US.json
+++ b/src/popup/locales/en-US.json
@@ -556,7 +556,6 @@
"advancedDetails": "Advanced transaction details",
"advancedFeeInvalid": "Enter a valid fee greater than 0.",
"advancedFeeTooLow": "Fee must be at least the estimated minimum fee.",
- "advancedFeeLowWarning": "Setting a fee below the estimated minimum may cause this transaction to be rejected or remain pending in the mempool.",
"advancedNonceInvalid": "Enter a valid nonce greater than 0.",
"advancedNonceLowWarning": "Setting a nonce lower than the current account nonce usually leads to rejection unless a transaction with that nonce is still pending in the mempool.",
"advancedNonceReplacementWarning": "A pending transaction with this nonce may be replaced by this new transaction if you continue.",
diff --git a/src/popup/locales/zh-CN.json b/src/popup/locales/zh-CN.json
--- a/src/popup/locales/zh-CN.json
+++ b/src/popup/locales/zh-CN.json
@@ -556,7 +556,6 @@
"advancedDetails": "高级交易详情",
"advancedFeeInvalid": "请输入大于 0 的有效手续费。",
"advancedFeeTooLow": "手续费不能低于预估的最低手续费。",
- "advancedFeeLowWarning": "如果手续费低于预估最低值,交易可能会被拒绝,或长时间停留在内存池中等待处理。",
"advancedNonceInvalid": "请输入大于 0 的有效 nonce。",
"advancedNonceLowWarning": "如果 nonce 低于当前账户 nonce,且内存池中没有使用该 nonce 的待处理交易,这笔交易通常会被拒绝。",
"advancedNonceReplacementWarning": "如果内存池中已有使用该 nonce 的待处理交易,继续发送可能会让这笔新交易替换掉原来的待处理交易。",
diff --git a/src/protocols/aeternity/components/TransferReview.vue b/src/protocols/aeternity/components/TransferReview.vue
--- a/src/protocols/aeternity/components/TransferReview.vue
+++ b/src/protocols/aeternity/components/TransferReview.vue
@@ -705,9 +705,7 @@
} else {
let hash;
const customFee = props.transferData.fee
- ? aeToAettos(
- new BigNumber(props.transferData.fee).dividedBy(recipients.length || 1),
- )
+ ? aeToAettos(new BigNumber(props.transferData.fee))
: undefined;
let currentNonce = props.transferData.nonce || await fetchCurrentAccountNonce();
// eslint-disable-next-line no-restricted-syntaxThis Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.
|
Deployed to release-v2-9-4.wallet.z52da5wt.xyz, artifacts |
bce07c7 to
098b146
Compare
|
Deployed to release-v2-9-4.wallet.z52da5wt.xyz, artifacts |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| } | ||
|
|
||
| function removeAccountPendingTransactionByNonce(address: AccountAddress, nonce?: number) { | ||
| if (!nonce) return; |
There was a problem hiding this comment.
Falsy check on nonce skips valid zero value
Low Severity
removeAccountPendingTransactionByNonce uses if (!nonce) return; which treats nonce 0 as falsy, skipping removal. Similarly, in submit(), effectiveTransferData.nonce || await fetchCurrentAccountNonce() uses || instead of ??, causing nonce 0 to be discarded in favor of a fetched value. Both locations conflate "not provided" with "zero." Using nonce == null and ?? respectively would be more precise.



Note
Medium Risk
Changes how Aeternity transfers are constructed (custom
fee/nonce, total recalculation, and pending-tx reconciliation), which can affect transaction submission and user balances if miscomputed. Also alters SDK TTL behavior and pending-transaction lifecycle, so edge cases around network instability and mempool state need review.Overview
Bumps the app to v2.9.4 (Changelog,
package.json/lockfile, AndroidversionCode/versionName, iOSMARKETING_VERSION).Adds Aeternity advanced transaction settings on the transfer review screen, letting users override
feeandnoncewith validation/warnings, propagating these values through send flows (including multi-recipient fee splitting) and AirGap QR generation; transfer totals are recalculated against the estimated fee via new helpers and unit/e2e coverage.Adjusts transaction tracking to avoid aggressively dropping pending entries: pending txs are now removed when a mined tx matches by hash or nonce, and periodic cleanup based on a fixed “certainly mined” timeout is removed. Misc UI fixes include a muted
AccordionItemvariant, correctedInfiniteScrollrendering over actual items, and minor BrowserActions spacing.Written by Cursor Bugbot for commit 098b146. This will update automatically on new commits. Configure here.