Ivan Vershigora
31eca3cc2d
REF: scrypt + AES-256-GCM (v2 envelope), legacy v1 read-only
...
Encrypt now emits a v2: envelope — scrypt (N=2^15, r=8, p=1) KDF plus
AES-256-GCM. Decrypt still reads legacy Salted__ (EVP_BytesToKey-MD5 +
AES-256-CBC) ciphertexts, and lazily rewrites them as v2 on the first
successful unlock. Public encrypt/decrypt are now async.
2026-06-22 11:20:56 +01:00
Ivan Vershigora
276a9ea8f8
REF: swap crypto-js for @noble/ciphers + hashes
2026-06-19 12:23:35 +01:00
Cursor Agent
64f1bd78db
FIX: persist Arkade LNURL payment result
...
Co-authored-by: Overtorment <Overtorment@users.noreply.github.com>
2026-06-17 20:54:03 +01:00
Ramez Medhat
f5379795de
ADD: support importing Unchained JSON as multisig cosigner
...
Build Release and Upload to TestFlight (iOS) / build (push) Has been cancelled
BuildReleaseApk / buildReleaseApk (push) Has been cancelled
Build Release and Upload to TestFlight (iOS) / testflight-upload (push) Has been cancelled
BuildReleaseApk / browserstack (push) Has been cancelled
- Normalized `h` to `'` on all three derivation paths and accept either field name p2wsh_p2sh (Coldcard) or for p2sh_p2wsh (Unchained)
- Added a unit test for that.
Closes: https://github.com/BlueWallet/BlueWallet/issues/8251
2026-06-15 16:59:40 +01:00
Ivan Vershigora
94062ffc9f
fix: improve typescript coverage
Build Release and Upload to TestFlight (iOS) / build (push) Waiting to run
Build Release and Upload to TestFlight (iOS) / testflight-upload (push) Blocked by required conditions
BuildReleaseApk / buildReleaseApk (push) Waiting to run
BuildReleaseApk / browserstack (push) Blocked by required conditions
2026-06-14 11:28:25 +01:00
GLaDOS
770a7a4075
Merge pull request #8639 from BlueWallet/perf-hd-fetch-transactions
...
REF: single-pass tx-to-address mapping in HD fetchTransactions
2026-06-11 14:37:51 +01:00
Ivan Vershigora
236791f32e
REF: single-pass tx-to-address mapping in HD fetchTransactions
...
Mapping fetched transactions into per-address cells re-scanned every
transaction for every address index, and the upsert-by-txid step
re-scanned the target cell for every insert — both quadratic. Build
address -> index lookup maps once, do a single pass over fetched
transactions, and keep a per-cell txid -> position map for
constant-time upserts.
Measured on a wallet emulating one address with 63,017 real
transactions (genesis address), median of 3 runs on real chain data:
mapping went from 32.1s to 0.47s.
Also remove a duplicate @babel/preset-env entry from devDependencies:
it is pinned in dependencies (needed by the --omit=dev iOS release
build), so the second entry was ignored by npm.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:54:15 +01:00
Overtorment
0181f0a849
ADD: arkade ln pushes ( #8634 )
Build Release and Upload to TestFlight (iOS) / build (push) Waiting to run
Build Release and Upload to TestFlight (iOS) / testflight-upload (push) Blocked by required conditions
BuildReleaseApk / buildReleaseApk (push) Waiting to run
BuildReleaseApk / browserstack (push) Blocked by required conditions
2026-06-10 17:35:17 +01:00
pietro909
e37c4a693c
OPS: upgrade Arkade SDKs and harden Ark wallet integration ( #8585 )
Build Release and Upload to TestFlight (iOS) / build (push) Waiting to run
Build Release and Upload to TestFlight (iOS) / testflight-upload (push) Blocked by required conditions
BuildReleaseApk / buildReleaseApk (push) Waiting to run
BuildReleaseApk / browserstack (push) Blocked by required conditions
2026-06-01 15:22:17 +01:00
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
Nuno
9e907566f0
feat: redesigned wallet details ( #8301 )
...
* feat: redesign transaction detail screen with unified layout and Lottie pending animation
* ADD: decode OP_RETURN payload as UTF-8 text in transaction detail
Co-authored-by: Cursor <cursoragent@cursor.com>
* REF: transaction detail redesign (themes, pending icon, loc)
Co-authored-by: Cursor <cursoragent@cursor.com>
* REF: remove deprecated TransactionDetails, TransactionStatus and getTransactionStatusOptions
Co-authored-by: Cursor <cursoragent@cursor.com>
* FIX: resolve lint errors (unused vars, styles, loc keys, no-bitwise, inline styles)
Co-authored-by: Cursor <cursoragent@cursor.com>
* FIX: remove redundant !tx check in transaction detail guard
Co-authored-by: Cursor <cursoragent@cursor.com>
* FIX: show transaction not available when tx not found after load
Co-authored-by: Cursor <cursoragent@cursor.com>
* FIX: remove unused transaction prop type from TransactionDetail
Co-authored-by: Cursor <cursoragent@cursor.com>
* TST: update UTXO note E2E to use new transaction detail note prompt UI
Co-authored-by: Cursor <cursoragent@cursor.com>
* simplify changes on the PR for review
* remove unused loc
* remove unchanged colors
* better offline support for tx details
* remove unused key loc
* fix code review issues
* fix balance
* fix tests
* REF: address PR #8289 review feedback
* redesigned wallets details
* fix lint
* fix lint
* fix bip84 test
* fix test
* fix tests
* fix tests
* fix: truncation and sendTo logic display
* fix: new arch fixes
* fix: lint
* fix: crash on status update
* fix: lint and tests
* fix: tests
* fix: tests
* fix: tests
* fix: tests
* fix: tests
* Potential fix for pull request finding 'Identical operands'
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
* fix: tests
* fix: tests
* fix: tests
* fix: tests
* fix: tests
* fix style
* fix merge master
* Merge branch 'wallet-details' of https://github.com/BlueWallet/BlueWallet into wallet-details
* fix loc
* fix loc
* fix style
* improve coin control from wallet details
* fix: e2e
* fix: WalletDetails
* fix: flat
* fix: e2e
* fix: e2e
* Potential fix for pull request finding 'Unused variable, import, function or class'
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
* fix: remove notifications dialogs
* fix: second button title
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Ivan Vershigora <ivan.vershigora@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Co-authored-by: Overtorment <overtorment@gmail.com>
2026-05-21 09:12:49 +02:00
Ojok Emmanuel Nsubuga
1da0414474
ADD: Import private keys in hex or base64 formats
2026-05-19 13:18:31 +01:00
Nuno
167dc05cdf
ref: manage wallets list and search ( #8527 )
...
Build Release and Upload to TestFlight (iOS) / build (push) Waiting to run
Build Release and Upload to TestFlight (iOS) / testflight-upload (push) Blocked by required conditions
BuildReleaseApk / buildReleaseApk (push) Waiting to run
BuildReleaseApk / browserstack (push) Blocked by required conditions
* ref: manage wallets list and search
* fix review
* improvements
* fix: svg and localization
* fix: swipe
* fix: dark mode
* fix: props type
* fix: remove dead code
* fix: drop TouchableWithoutFeedback
* fix: usePreventRemove
* ref: address search
* fix header animation
* fix: code style
---------
Co-authored-by: Ivan Vershigora <ivan.vershigora@gmail.com>
2026-05-10 17:59:12 +02:00
Nuno
7560f92c4b
feat: status pills on the header ( #8418 )
...
Build Release and Upload to TestFlight (iOS) / build (push) Has been cancelled
BuildReleaseApk / buildReleaseApk (push) Has been cancelled
Build Release and Upload to TestFlight (iOS) / testflight-upload (push) Has been cancelled
BuildReleaseApk / browserstack (push) Has been cancelled
* feat: status pills on the header
* ref: review suggestions
* ref: speed
* optimize
* comments
* conflicts
* review comments
* review comments
* fix comments
* fix comments
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-04 12:00:00 +02:00
overtorment
66cf16fba3
FIX: greatly improve startup time
Build Release and Upload to TestFlight (iOS) / build (push) Waiting to run
Build Release and Upload to TestFlight (iOS) / testflight-upload (push) Blocked by required conditions
BuildReleaseApk / buildReleaseApk (push) Waiting to run
BuildReleaseApk / browserstack (push) Blocked by required conditions
2026-04-21 19:18:25 +01:00
Overtorment
9dc35cecb9
REF: bump react native
2026-03-16 21:13:23 +00:00
Overtorment
9a08af4784
ADD: native ark-to-ark transfers
2026-02-10 09:51:43 +00:00
Overtorment
3a69c61635
REF: cleanup
2026-02-08 12:49:58 +00:00
Ojok Emmanuel Nsubuga
2fe0b6a2ad
FIX: Make BBQR work with multisig
2026-02-06 11:00:28 +00:00
overtorment
f4245109bb
REF: cleanup and refactor of wallet descriptor detection
2026-01-16 13:24:33 +00:00
overtorment
e81e7cd21b
Merge branch 'master' of github.com:nickfarrow/BlueWallet into nickfarrow-master
2026-01-16 12:35:19 +00:00
Ivan Vershigora
d7fcea8b4f
ref: replace Buffer with Uint8Array in some internal structures
2026-01-15 13:20:42 +00:00
Nick Farrow
cc79e9809d
FIX: wrong address type for descriptors with custom paths
2026-01-15 06:34:57 +11:00
overtorment
80fcac6148
REF: move all utils to the same dir
2026-01-12 19:53:46 +00:00
overtorment
d5bd04c1ed
ADD: pair with coldcard q via bbqr
2026-01-10 20:52:10 +00:00
overtorment
accb1a15db
FIX: import psbt files
2025-12-20 21:28:52 +00:00
overtorment
a9550959a7
REF: wallets gradients
2025-12-15 16:53:14 +00:00
overtorment
2a774b8289
REF: bump ark and minor improvements
2025-12-09 20:46:20 +00:00
overtorment
186ae0b865
REF: bump ark and minor improvements
2025-12-09 20:26:57 +00:00
Ojok Emmanuel Nsubuga
01092cd130
REF: replace buffer with Uint8Array
2025-12-05 12:02:27 +00:00
overtorment
f0edc102f9
REF: speed up wallet htlc claims
2025-11-24 16:45:45 +00:00
overtorment
ee7d808267
REF: speed up ark wallet
2025-11-24 16:22:06 +00:00
overtorment
839a1a6595
fix: ark
2025-11-23 18:04:29 +00:00
Overtorment
8757ae0812
fix: ark
2025-11-22 13:47:58 +00:00
overtorment
476ec19b26
REF: bump bip32 and migrate buffers
2025-11-20 15:50:45 +00:00
overtorment
5c82b19706
FIX: hw wallets with taproot integration
2025-11-17 11:00:23 +00:00
Overtorment
a0416b10b8
ADD: lightning wallet powered by ark
2025-11-16 13:14:27 +00:00
Overtorment
ed8a9285b4
ADD: taproot BIP-86 HD wallets ( closes #3880 )
2025-11-10 20:14:08 +00:00
overtorment
69179c7683
FIX: incorrect path when pairing with Coldcard ( closes #8148 )
2025-11-06 19:25:47 +00:00
Cursor Agent
158d1f24fb
Refactor: Use Uint8Array instead of Buffer for fingerprints
...
Co-authored-by: overtorment <overtorment@gmail.com>
2025-10-30 19:24:05 +00:00
Ojok Emmanuel Nsubuga
9b23c0f3d1
REF: Replace buffer with Uint8Array
2025-10-30 19:24:05 +00:00
overtorment
c943aba11d
refactor: speed-up getting utxo (improves send screen performance)
2025-10-20 12:56:37 +01:00
Ojok Emmanuel Nsubuga
9ee8add7c1
REF: Remove unused function and revert assertStrictEqual
2025-10-16 15:56:44 +03:00
Ojok Emmanuel Nsubuga
401f2c33c2
REF: Replace buffer with Uint8Array
2025-10-14 17:27:39 +03:00
Ojok Emmanuel Nsubuga
9a8e12268f
REF: replace Buffer with Uint8Array where possible
...
- remove double conversion Uint8Array(hexToUint8Array(..))
- replace TextDecoder with uint8ArrayToString
- remove redundant if block
- revert unnecessary conversion in class/wallets/multisig-hd-wallet.ts
- remove Buffer from ecc.isPoint
2025-10-06 06:53:24 +03:00
Ojok Emmanuel Nsubuga
67f440ba81
Merge branch 'master' into migrate-from-buffer-to-uint8array
2025-10-03 09:01:05 +03:00
overtorment
d38ea52a67
REF: cleanup usage of old secp256k1 lib
2025-09-26 14:26:06 +01:00
overtorment
79f68bd88c
FIX: taproot address unwrap from wif
2025-09-17 18:45:49 +01:00
Cursor Agent
0abe089738
Refactor randomBytes to use global crypto.getRandomValues for RN
...
Co-authored-by: overtorment <overtorment@gmail.com>
2025-08-19 10:17:41 +01:00
Cursor Agent
3833e236b2
Replace react-native-randombytes with react-native-get-random-values
...
Co-authored-by: overtorment <overtorment@gmail.com>
2025-08-19 10:17:41 +01:00