BlueWallet/class
PeterXMR d7261d4d2a FIX: ElectrumTransaction confirmation fields are optional until mined (#8093)
Electrum's `blockchain.transaction.get` verbose response does not include
`blockhash`, `confirmations`, `time`, or `blocktime` when the transaction
is still in the mempool. Both `ElectrumTransaction` in
`blue_modules/BlueElectrum.ts` and the sibling `Transaction` type in
`class/wallets/types.ts` declared all four as required, which silently
let unguarded access compile and crash at runtime on real mempool data.

- Mark the four confirmation-only fields optional on both types. They
  describe the same shape and have the same bug.
- Export `ElectrumTransaction` so a regression test can reference it.
- Collapse the two-line `tx.timestamp = tx.blocktime; if (!tx.blocktime)
  tx.timestamp = ...` pattern in `abstract-hd-electrum-wallet.ts` into a
  single `||` fallback — type-safe and runtime-equivalent.
- Add nullish-coalesce guards at the two call sites that compared
  `confirmations` directly to a number. In `useWidgetCommunication.ios.ts`,
  `t.confirmations ?? 0` keeps the filter semantically unchanged. In
  `PaymentCodesList.tsx`, normalize once via
  `notificationTx?.confirmations ?? 0` and use the local in both the
  `> 0` (already confirmed) and `=== 0` (mempool / unconfirmed alert)
  branches — otherwise a mempool notification tx would skip both branches
  and the code would create a duplicate notification transaction.
- Add `tests/unit/electrum-transaction-types.test.ts` documenting that a
  mempool-shaped object satisfies the type.
2026-05-28 09:43:46 +01:00
..
wallets FIX: ElectrumTransaction confirmation fields are optional until mined (#8093) 2026-05-28 09:43:46 +01:00
azteco.ts ref: convert aztecoRedeem to TS e2e test 2025-08-09 15:44:41 +03:00
bip39_wallet_formats_bluewallet.json ADD: taproot BIP-86 HD wallets (closes #3880) 2025-11-10 20:14:08 +00:00
bip39_wallet_formats.json fix: sync bip39_wallet_formats.json with electrum source files 2024-04-25 15:27:37 +01:00
blue-app.ts feat: status pills on the header (#8418) 2026-05-04 12:00:00 +02:00
camera.ts fix: appy simple-import-sort plugin 2024-05-21 11:56:10 +01:00
contact-list.ts REF: replace Buffer with Uint8Array where possible 2025-10-06 06:53:24 +03:00
deeplink-schema-match.ts FIX: greatly improve startup time 2026-04-21 19:18:25 +01:00
hd-segwit-bech32-transaction.ts REF: Replace buffer with Uint8Array 2025-10-14 17:27:39 +03:00
lnurl.ts REF: replace buffer with Uint8Array 2025-12-05 12:02:27 +00:00
measure.ts refactor: speed-up getting utxo (improves send screen performance) 2025-10-20 12:56:37 +01:00
multisig-cosigner.ts FIX: Make BBQR work with multisig 2026-02-06 11:00:28 +00:00
payjoin-transaction.ts REF: Remove unused function and revert assertStrictEqual 2025-10-16 15:56:44 +03:00
rng.ts REF: Replace buffer with Uint8Array 2025-10-14 17:27:39 +03:00
wallet-descriptor.ts ADD: taproot BIP-86 HD wallets (closes #3880) 2025-11-10 20:14:08 +00:00
wallet-gradient.ts REF: bump react native 2026-03-16 21:13:23 +00:00
wallet-import.ts ADD: Import private keys in hex or base64 formats 2026-05-19 13:18:31 +01:00