Commit Graph
4495 Commits
Author SHA1 Message Date
Blazebrain 3fabbc5c5e fix: brazillian localle bug that makes app unresponsive 2026-09-03 13:40:26 +01:00
PatrickandGitHub 73a739411f Delete CakePay Auth-token if the API returns 401 (#3538)
* delete cakepay auth token on 401

* fix cakepay auth refresh

* fix Cake Pay error handling
2026-09-03 01:58:45 +08:00
David AdegokeandGitHub ea4d752914 solana nft improvements and other fixes (#3581)
* feat: improvements covering solana nfts(send, ownership badge, persistent imports etc), closing emptied token accounts and other fixes from patch

* feat: more improvements for nfts including security hardening

* fix: display error in full
2026-09-03 01:54:11 +08:00
malik1004xandGitHub 87ba3838ae disable mweb ad (#3593) 2026-09-03 01:48:53 +08:00
malik1004xandGitHub 68eb1c3ded auto-select custom node on wallet creation (#3592)
* auto-select custom node on wallet creation

* safeguard for wallet type
2026-09-02 19:11:57 +08:00
David AdegokeandGitHub 1f3b261e3d CW 1515 Contacts List Out Of Sync (#3550)
* fix android CI

* fix: address book wallet contacts tab not updating after wallet changes

* feat: add page open listener for contact list and handle concurrent calls to fetch contact list
2026-09-02 18:30:28 +08:00
5a497bf05a Monero: keep the sync progress redrawing during wallet2's warm-up (#3575)
* Monero: keep the sync progress redrawing during wallet2's warm-up

* fix: double call in getNodeHeight()
fix: error handling in _refreshNodeHeight

---------

Co-authored-by: Vikrant Sharma <vik@cakewallet.com>
2026-09-02 18:17:28 +08:00
Konstantin UllrichandGitHub 0d353a0932 feat: enhance hardware wallet compatibility and improve transaction handling (#3517)
* feat: enhance hardware wallet compatibility and improve transaction handling

- Updated hardware wallet services for Bitcoin and Litecoin (Ledger & Trezor).
- Added `LitecoinTrezorService` for signing and managing Litecoin transactions.
- Improved `PSBTTransaction` builder to handle change outputs and derivation paths.
- Fixed exception handling in `wallet_hardware_restore_view_model`.
- Refactored output and input structures to ensure consistency and extend compatibility.

* refactor: address comments

* refactor: address comments

* refactor: address comments
2026-09-01 19:42:33 +08:00
Robert Malikowski 9d4d1220f2 Merge branch 'dev' into cw-1440-new-buy-sell-flow 2026-09-01 13:04:02 +02:00
Blazebrain bb79edf396 fix: lint issues 2026-09-01 10:41:07 +01:00
Blazebrain 87a03fc88d Merge branch 'dev' of https://github.com/cake-tech/cake_wallet into CW-1529-Improved-Seed-UI 2026-09-01 10:32:55 +01:00
Blazebrain 323a1df6e9 feat: remind users with a balance to back up their recovery phrase 2026-09-01 10:01:07 +01:00
Konstantin UllrichandGitHub df87bab836 feat: add fallback locktime support in PSBT deserialization (#3583) 2026-09-01 14:52:57 +08:00
jwinterm 8e45de5928 ci(windows): Authenticode-sign HashWallet.exe with the hardware token
The Windows lane already runs on the machine that physically holds the Sectigo
EV code-signing token, but the runner there is NT SERVICE\act_runner, which
cannot use it: SafeNet holds the token login per user and an operator
establishes that login interactively. So the build queues the launcher for the
signing broker that Fleet installs (such-fleet roles/windows_code_signing) and
waits for it to come back signed.

CI never holds the private key -- it is non-exportable on FIPS 140-2 Level 2
hardware -- and never holds the token password. Sectigo allows three
consecutive failed password attempts before the token needs vendor unlocking,
and a job that never supplies a password cannot spend one.

Only HashWallet.exe is signed. The bundled MSVC runtime DLLs are already
Microsoft-signed and must not be re-signed, and the plugin DLLs are loaded by
an already-trusted process; it is the launcher the user double-clicks that
SmartScreen judges.

The signature, its RFC 3161 timestamp and the expected signer are verified on
the exe that actually goes into the zip, and any of the three failing fails the
build. If the broker's circuit breaker is tripped the job says so and stops
rather than shipping an unsigned binary.

Procedure: docs platform/windows-hardware-token-signing.md.
2026-08-31 18:00:18 -04:00
Robert Malikowski 5474cfaa08 update translations 2026-08-31 18:00:50 +02:00
jwinterm 3a60b921f4 ui: fix grey Wownero coin logo + lift too-dark dashboard background
- res/pictures/balance_card_icons/wownero.svg had an opaque background rect
  (+#FFF5FD fill), so the ChainIcon's srcIn colorFilter flooded the whole
  circle solid grey. Replaced with a clean alpha glyph (white W-in-circle on
  transparent, like monero.svg) so the dark bg shows through the negative
  space. Source in res/pictures → compile_graphics.sh regenerates the .vec.
- dark theme surface #0B1F14 → #10281B (a bit less dark, per feedback)
2026-08-30 10:36:50 -04:00
jwinterm 6a41701656 feat(android): embedded Wownero node — run a full node on the phone
Bundles wownerod (aarch64-linux-android, built via monero depends) as
jniLibs libwownerod.so; EmbeddedNode.java execs it from nativeLibraryDir
(the exec-exempt path), binds RPC on 127.0.0.1:34568 for the wallet, pruned
mode by default, capped concurrency for phone thermals. Dart EmbeddedNode
service (start/stop/status/waitUntilReady) drives it over a method channel.

Verified: builds into the APK (binary bundled, arm64), and the daemon
executes on real hardware (moto g stylus) — inits core, binds RPC, connects
peers, and syncs blocks. UI toggle + foreground-service lifecycle are the
next layer; binary is provisioned like the wallet libs (gitignored).
2026-08-30 10:17:11 -04:00
jwinterm acccba9210 fix: remove duplicate useSSL key in polygon_node_list.yml (runtime crash)
package:yaml (used by the app) throws 'Duplicate mapping key' on the two
useSSL entries; PyYAML tolerated it so it slipped through. Adds a test that
parses every bundled YAML asset with package:yaml to prevent regression.
2026-08-30 04:55:28 -04:00
jwinterm 24face9432 fix: harden legacy wallet-password validation to exact generateKey() shape + test
- validate legacy-decoded wallet passwords are real generateKey() output
  (696 chars, base64 of 512-byte key + 8-byte iv) so a wrong AES key that
  unpads to printable bytes can't be re-saved as a bogus password
- test/legacy_decode_test.dart: proves 1.0.0->1.0.2 recovers PIN+password
  and 16k wrong keys yield zero false-accepts
hash-bags-ios-1.0.2
2026-08-29 15:08:40 -04:00
jwinterm 7fcef4e4ce fix: add 1.0.0 (build 9/10) legacy secret candidates recovered from the Play AAB
Cross-referencing both shipped binaries' string tables also separates
per-build randoms from shared library constants, trimming false candidates.
2026-08-29 14:58:58 -04:00
jwinterm d8aab70fa7 fix: 1.0.2 hotfix — heal wallets broken by per-build random crypto secrets
CI ran tool/generate_new_secrets.dart unpinned, so every release binary
shipped different AES keys/salts for the stored PIN and wallet passwords.
Updating the app then failed to decrypt what the previous build stored:
'Invalid or corrupted pad block' at PIN entry and the 'Corrupted seeds'
dialog, with wallet files fully intact.

- entities/encrypt.dart: legacy-key fallback decode for PIN and wallet
  password blobs (candidate sets recovered from the shipped 1.0.1 binary;
  output validated to reject PKCS7 false positives)
- key_service/auth_service: on successful legacy decode, re-encrypt under
  the pinned key — installs self-heal at first unlock
- all build workflows: inject the eight pinned CRYPTO_* repo secrets after
  secret generation and hard-fail if any is missing, so crypto salts can
  never silently rotate again (values pinned via
  ~keys/set-gitea-crypto-secrets.sh)
- bump 1.0.2+12
2026-08-29 14:53:18 -04:00
jwinterm 8db45c5842 ios: raise MinimumOSVersion to 15.0
App Store Connect warning 90068 on the last two uploads: from Spring
2027 all iOS apps must set MinimumOSVersion 15.0 or later. Raising from
13.0 costs almost no devices (iOS 15 still covers iPhone 6s and SE 1).
Rides the next iOS build.
2026-08-29 05:22:17 -04:00
Omar 6df6108d37 update app version 2026-08-29 15:37:13 +08:00
Blazebrain 837c4d7d22 feat: redesign the pre-seed and seed verification screens 2026-08-28 23:07:43 +01:00
Blazebrain e95d9d143e feat: persist whether a wallet still needs its recovery phrase backed up 2026-08-28 23:07:43 +01:00
Blazebrain 9a66b511e3 feat: add recovery phrase wording for the redesigned seed flow 2026-08-28 23:07:43 +01:00
905db64f77 feat: zano hf + bip39 (#3359)
* feat: bip39 zano hf

* fix: correct monero_c hash

* lockfile [skip ci]

* fix: zano: proper bip32
fix: zano respect 24 word setting
fix: rename / delete

* fix: nonBip39WalletTypes

* fix: zano wallet rename

* fix: passphrase store zano

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-08-28 15:49:51 +08:00
Omar HatemandGitHub 14167a85e8 v6.4.2 (#3566)
* Rush Release please test quickly

* Fix Zcash Lag
2026-08-28 10:07:16 +08:00
Robert Malikowski 7b5ffe8812 import 2026-08-27 13:35:00 +02:00
Robert Malikowski d28619219e Merge branch 'refs/heads/dev' into cw-1440-new-buy-sell-flow 2026-08-27 12:28:17 +02:00
Robert Malikowski 09a3428245 address review comments 2026-08-27 12:27:49 +02:00
cyanandGitHub 3ba43ede62 Cyjan zec mutex 2 (#3569)
* fix: mutex on zec

* refactor: simplify orchard migratable balance checks and update related methods
2026-08-27 10:58:22 +08:00
Robert Malikowski c2441b16d5 showSymbol: false, 2026-08-26 10:13:24 +02:00
David AdegokeandGitHub 06e75551a7 CW-1615: Harden walletconnect auth (#3547)
* fix android CI

* fix: harden walletconnect auth so a connected session won't transfer on dApp when wallet is switched within the app

* refactor: improve session mgmt and better error handling, also added a loader to the listing page

* feat: switch to newer id for solana dapps connections and fix requests not triggering
2026-08-26 11:45:03 +08:00
Konstantin UllrichandGitHub bd36227974 Update breez_sdk_spark_flutter to v0.23.0 and adjust pubspec overrides (#3558)
* chore: update `breez_sdk_spark_flutter` to v0.23.0 and update pubspec overrides

* feat: use latest breez sdk
2026-08-26 01:29:41 +08:00
cyanandGitHub 3d9b79f536 feat: bip39 decred (#3348) 2026-08-26 01:01:52 +08:00
malik1004xandGitHub b72c5c3232 fix icons in card customizer in light theme (#3552) 2026-08-24 23:35:48 +03:00
malik1004xandGitHub 9b50011e75 Hide broken options in Bitcoin wallets without a private key (#3532)
* hide unavailable receive page options

* hide broken options in wallets without a private key

* hide exporting unavailable logs

* hide sign/verify on airgapped wallets

* hide mweb on hwws

* hide mweb ad for hww
2026-08-24 23:24:52 +03:00
David AdegokeandGitHub 703cc22b33 fix: solana wallet bugs and security issues (#3484)
* fix android CI

* fix: duplicate outgoing tx for jup swaps and stuck pending state

* fix solana security risk by handling duplicate token symbols in wallet transactions

* feat: implement additional cost handling for pending transactions in Solana wallet.

* fix: Items on security audit list for solana wallet

* refactor: streamline fee payer index handling and improve error logging

* fix: verifySignature for solana and handle wrong mint on default token

* fix: token decimals defaulting to zero and breaking amount parsing in solana

* fix: use token mask in tx history

* refactor: apply lint to modified code

* fix: merge conflicts

* fix: use Money and mint decimals when parsing sol swaps

* test: add unit tests for SPL token amount handling and parsing

* test: add more tests

* fix: update decimal handling for fetched token and remove unused fields
2026-08-24 23:21:29 +03:00
malik1004xandGitHub f97e09cfc5 Merge pull request #3557 from cake-tech/claude/light-mode-checkbox-background 2026-08-24 21:20:47 +02:00
Claude a8ca70b43d fix(ui): make unchecked NewSimpleCheckbox visible in light themes
The unchecked background resolved to colorScheme.surfaceContainerHighest,
which is pure white in LightTheme, so the unselected checkbox was an
invisible white disc on near-white list rows. In light brightness use
onSurfaceVariant with alpha 80 instead; dark themes are unchanged.
2026-08-24 16:00:46 +00:00
Konstantin UllrichandGitHub c838012979 Enhance Money class with precision handling and zero trimming (#3548)
* feat: enhance Money class with precision handling, scale alignment, and trailing zero trimming
2026-08-24 14:48:32 +02:00
malik1004xandGitHub 8649c055e0 Merge pull request #3551 from cake-tech/fix-rive-common-dep
fix rive_common dependency
2026-08-24 14:30:30 +02:00
Robert Malikowski cba928b1ab revert unrelated change 2026-08-24 12:06:15 +02:00
Robert Malikowski 7eeb9c1b62 revert unrelated change 2026-08-24 12:04:46 +02:00
Robert Malikowski 91330b0199 fix 2026-08-24 12:04:34 +02:00
a8727d2195 Update lib/entities/fiat_currency.dart
Co-authored-by: Konstantin Ullrich <konstantin@cakewallet.com>
2026-08-24 11:59:02 +02:00
58579c131a Update lib/entities/fiat_currency.dart
Co-authored-by: Konstantin Ullrich <konstantin@cakewallet.com>
2026-08-24 11:58:51 +02:00
Robert Malikowski 9d30225211 fix rive_common dependency 2026-08-23 21:28:35 +02:00
Robert Malikowski 185ee4be4f parse -> tryParse in fiat 2026-08-23 15:35:38 +02:00