aboutsummaryrefslogtreecommitdiffstats
path: root/src/wallet.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-07-06 11:12:31 -0700
committerAdam Soltys <[email protected]>2026-07-06 11:12:31 -0700
commitd071a09604599831d370b06563144cf4ba028902 (patch)
treecf5974694de768a5128f044d255b399fa3eb18dd /src/wallet.js
parentef1a901314cb667bc8a7c7ff5f080550edef2815 (diff)
downloadcoinosv3-d071a09604599831d370b06563144cf4ba028902.tar.gz
coinosv3-d071a09604599831d370b06563144cf4ba028902.zip
Gift cross-device sync, snapshot size cap, reliable SW updates, gift-detail layout
- Gifts now sync across devices: gift records + reserved/reclaimed coin sets ride the encrypted snapshot as a merge-safe extension (like ark), and every gift state change (create/reclaim/revoke) triggers a saveCache so it actually publishes. A gift made on one device now shows on the others. - Cap the published snapshot at ~40KB JSON (relay rejects >64KB events, nip44 expands ~1.5x): trim oldest on-chain txs when oversized; another device backfills via rescan. Typical wallets untouched. - Service worker: register with updateViaCache:'none' so a new build is detected immediately (not held by the 4h HTTP cache), and reload once on controllerchange so the fresh app runs without a manual second refresh. - Gift detail: View/Reclaim share a row, Revoke on its own full-width line so 'Revoke now' stops wrapping. Co-Authored-By: Claude Fable 5 <[email protected]>
Diffstat (limited to 'src/wallet.js')
-rw-r--r--src/wallet.js1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/wallet.js b/src/wallet.js
index ccb7b81..1c58de6 100644
--- a/src/wallet.js
+++ b/src/wallet.js
@@ -1203,6 +1203,7 @@ export class Wallet {
// state (ark vtxos) must flow both directions.
_mergeSnapshotExtensions(d) {
for (const e of this._cacheExtensions) { try { if (e.mergeAlways) e.load(d); } catch {} }
+ this.emit(); // a live cross-device merge (ark/gift state) should re-render
}
// Called with every saved state snapshot (e.g. to push it to sync relays).
registerCacheSavedHook(fn) { this._cacheSavedHooks.push(fn); }