Commit Graph
220 Commits
Author SHA1 Message Date
minibits-cash ddbd1a6848 Bump version 2026-06-27 23:56:24 +02:00
minibits-cash 33d7bc07c0 UX improvements (Wallet, NFC) 2026-06-14 23:25:15 +02:00
minibits-cash 3d1f303bda iOS NFC error handling 2026-06-10 22:43:14 +02:00
minibits-cashandClaude Opus 4.8 d774fde9ce chore(release): bump to 0.4.3-beta.8; upgrade HotUpdater 0.23.0→0.32.0
Upgrade react-native HotUpdater (0.23.0 → 0.32.0): drops SWCompression /
BitByteData pods and bumps OpenSSL-Universal to 3.6.2000. Set the iOS
launch scheme to Release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:23:37 +02:00
minibits-cash c96ffca5b8 Nfc info message fix 2026-06-02 17:47:07 +02:00
minibits-cash 0caa93bbb7 Nfc write fix 2026-06-02 17:28:09 +02:00
minibits-cash ec76967a58 NFC fix of paying cashu pr from cold / warm start 2026-06-02 16:45:26 +02:00
minibits-cash 6581fed4d7 Fix patches 2026-06-02 15:46:14 +02:00
minibits-cashandClaude Opus 4.8 cafef4f462 Render BottomModal in-tree via portal to fix edge-to-edge nav bar
Keep edgeToEdgeEnabled=true so the themed header draws behind the status
bar on pre-Android-15 devices (e.g. Moto G4). Android 15+ is edge-to-edge
OS-enforced regardless.

That flag also routes react-native Modal's native dialog window through RN
core's enableEdgeToEdge() (WindowUtil.kt), which hardcodes nav-bar contrast
enforcement and derives appearance from device dark mode, painting a grey
(white-in-dark) scrim on modal open/close. That code ships in the prebuilt
RN Android AAR and can't be patched.

Work around it without disabling the flag: on Android, BottomModal renders
in the app's React tree via @gorhom/portal (coverScreen={false}) instead of
as a native window, so it never hits that code path. A PortalProvider at the
app root keeps the modal overlaying the bottom tab bar. iOS keeps the native
modal path unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 12:34:31 +02:00
minibits-cash e36bd02bf8 Support edge to edge mode on older devices 2026-06-02 10:00:31 +02:00
minibits-cashandClaude Opus 4.8 211f27f259 Upgrade hot-updater 0.23.1 -> 0.32.0
Bump all hot-updater packages to a consistent 0.32.0 (CLI,
@hot-updater/react-native, bare, firebase, sentry-plugin), replacing the
previous mixed set (bare was pinned at 0.20.11).

- Add @expo/fingerprint as an explicit devDependency: it is now an
  optional peer dep and is required by updateStrategy: "fingerprint".
- Remove patches/@hot-updater+bare+0.20.11.patch: the hermes-compiler
  path resolution it added is now upstream in bare 0.32.0
  (getHermesCompilerPackagePath).

hot-updater.config.ts needs no changes (firebaseStorage/firebaseDatabase
config shapes unchanged). The live 0.23.1 app runtime stays wire-compatible
with the redeployed 0.32.0 server (identical path-based update-check route).

Infra steps still required (run separately): npx hot-updater init to
refresh Firebase functions + Android native config, then a native rebuild
to enable bundle diffing for new installs.

Also drops dead commented-out @noble/curves Metro resolver workaround.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 14:06:35 +02:00
minibits-cashandClaude Opus 4.8 686b21a5bb Migrate SQLite from react-native-quick-sqlite to op-sqlite
Replaces react-native-quick-sqlite (8.2.7) with @op-engineering/op-sqlite
(16.2.0). The motivating bug: quick-sqlite's JSI binding silently dropped
non-bindable JS objects (e.g. a cashu-ts Amount instance), shifting the
parameter array and corrupting proof rows with no exception.

A new connection adapter (services/db/connection.ts) is the single seam to
the native library and reconciles op-sqlite's API differences so sqlite.ts
is nearly untouched:
  - op-sqlite execute() is async; sync is executeSync() -> our execute maps
    to executeSync, executeAsync maps to execute
  - executeBatch() is async-only with no insertId -> synchronous atomic batch
    emulated with BEGIN/COMMIT/ROLLBACK over executeSync
  - rows is a plain array -> re-wrapped into the WebSQL { _array, length,
    item() } shape the existing query code expects

The adapter also centralizes parameter sanitization (sanitizeParams): every
bind is coerced deliberately (Date -> ISO, numeric-like objects -> Number) or
rejected loudly, so the silent-skip footgun is structurally impossible.

Also collapses 33 repetitive try/catch AppError blocks into a dbError()
helper, which uniformly passes deliberate AppErrors (e.g. NOTFOUND_ERROR)
through instead of flattening them to DATABASE_ERROR (-109 net lines).

Tests: 121/121 pass, no regressions. Note: native rebuild and on-device
verification of the minibits.db file location are still required before ship.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 21:34:28 +02:00
minibits-cash 25330d3b73 Proofs reservation and rollback 2026-05-22 22:03:18 +02:00
minibits-cash 6d388947ef Error modal fix 2026-05-20 17:29:54 +02:00
minibits-cash 5e9a48d7c2 Fix nwc and donation flows 2026-05-20 16:56:21 +02:00
minibits-cash afc1f0fbb6 Decode creqB payment requests, bump to v0.4.2-beta.5 2026-05-12 13:35:40 +02:00
minibits-cash 2e4d9328bb Upgrade to cashu-ts v4 2026-05-11 22:33:22 +02:00
minibits-cash 27734a1032 prepfer-async mode for melting 2026-05-09 23:40:27 +02:00
minibits-cash a08f9945f0 Fix payment request pay with POST transport, Optimze ecash menu item. 2026-04-14 22:38:24 +02:00
minibits-cash 2c9d5c1cf9 Keysets v2 support 2026-04-12 23:06:28 +02:00
minibits-cash 85eca1d267 Upgrade rn change icon, finally fix app open on push tap 2026-03-30 23:26:12 +02:00
minibits-cash c67b48993f Add CHF rate 2026-03-28 23:19:09 +01:00
minibits-cash 41bf281519 Fix app opening on notfification tap 2026-03-28 22:07:29 +01:00
minibits-cash f4d949d3d9 Fix support for deeplinks + fix app open on push notification tap 2026-03-27 23:24:40 +01:00
minibits-cash 26aac2dee8 Fix error and info modal on Android 2026-03-24 15:20:39 +01:00
minibits-cash c0312d770c Android navigation bar theming, hotupdater switch to fingerprint deployment 2026-03-18 05:47:10 -07:00
minibits-cash 3456805ebe Upgrade cashu-ts to 3.6.1 2026-03-17 07:39:54 -07:00
minibits-cash 81ce599a1d New optimize ecash screen, backup to a file 2026-03-16 18:24:48 -07:00
minibits-cash 647210802c Fix iOS build, fix onboarding is keys survive app reinstall 2026-03-16 07:15:05 -07:00
minibits-cash 99a16c1c56 Theme-colored app icon and splash, new font, tuning of auth splash screen 2026-03-11 17:10:51 +01:00
minibits-cash 3909660529 Upgrade cashu-ts and remove InteractionManager 2026-03-10 12:57:34 +01:00
minibits-cash 3cb1444c95 RN upgrade to 0.84 2026-03-10 12:35:55 +01:00
minibits-cash 5e590ac46a Fix ecash receive over Nostr, avoid profile API calls 2026-03-06 12:15:20 +01:00
minibits-cash ba370f2cee Fix transfer error handling 2026-03-02 14:37:53 +01:00
minibits-cash 34c2086519 Fix NFC writing to tag 2026-02-26 23:00:51 +01:00
minibits-cash 7f7ef510a3 Prevent to mark returned proofs from cashu-ts-optimized swap as spent 2026-02-06 23:56:46 +01:00
minibits-cash 7e70c7d398 More NFC fixes and tunings 2026-02-04 20:44:40 +01:00
minibits-cash c938d17446 Redesign NFC screen 2026-02-02 16:20:09 +01:00
minibits-cash 66e08d532a Fix sharing over NFC 2026-01-31 23:09:21 +01:00
minibits-cash 02c81c14f3 Restore perf improvement, cashu wallet init improvement, cashu-ts update 2026-01-30 00:03:06 +01:00
minibits-cash 1ac6690920 New POS mode implementation 2026-01-27 23:47:34 +01:00
minibits-cash 359c4d7a32 Fix contact sync 2026-01-26 21:35:37 +01:00
minibits-cash af7d376978 Nostr keys derived from the cashu seed phrase 2026-01-26 21:08:38 +01:00
minibits-cash db14e6de0d Auto check nostr contact, imrpve wallet screen 2026-01-20 14:32:19 +01:00
minibits-cash 1b89d0b2fd Fix regression bug in import from backup 2026-01-18 22:40:52 +01:00
minibits-cash e15bb8d077 Fix regression in balance recovery from seed 2026-01-13 23:15:57 +01:00
minibits-cash 658e62cd75 v3 broken 2026-01-10 00:39:30 +01:00
minibits-cash bd3f436b2b Fix NFC pay of cashu PR 2026-01-07 15:09:46 +01:00
minibits-cash a639c05517 Support cashu payment requests with transport to be read over NFC and paid 2026-01-06 22:39:37 +01:00
minibits-cash 8865a87a02 iOS build prep 2025-12-22 14:52:55 +01:00