WIP: Wallet desk integration #14

Draft
zramsay wants to merge 3 commits from afd/wallet-integration into main

3 Commits

Author SHA1 Message Date
6f41ae5626 add yarn prior to yarn build
Some checks failed
Lint and Build / Run lint and build checks (pull_request) Failing after 3m36s
2026-02-10 17:09:25 +00:00
afd
657bc17eff [wallet-integration 4/5] Migrate localStorage to Eyre ship storage
Some checks failed
Lint and Build / Run lint and build checks (pull_request) Failing after 3m25s
Replace all key-store.ts (localStorage) usage with eyre-client.ts:
- accounts.ts: HD derivation delegated to agent, CRUD via poke/scry
- misc.ts: getMnemonic, getPathKey, getAccountIndices via scry
- NetworksContext.tsx: init from getNetworks() instead of localStorage
- Accounts.tsx: network deletion via updateNetworks() poke
- EditNetwork.tsx: network updates via updateNetworks() poke
- key-store.ts: marked deprecated, zero remaining consumers

Private keys and mnemonic no longer stored in browser localStorage.
All wallet state persisted in the %zenith agent on the Urbit ship.

Part of wallet-integration across:
- zenith-desk: Hoon crypto libs + agent endpoints
- zenith-wallet-web (this repo): Eyre channel client + localStorage migration
- zenith-testing: Go integration tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 09:39:04 -05:00
afd
fc82acb4d5 [wallet-integration 3/5] Add Eyre channel client and glob deployment
New eyre-client.ts replaces localStorage with Urbit ship storage:
- Base layer: scryGet(), pokeAction() with SSE ack/nack handling
- Typed API: 11 functions for wallet CRUD (walletExists, getMnemonic,
  getNetworks, getAccounts, createWallet, addAccount, resetWallet, etc.)
- Compatibility layer: getWalletData/setWalletData/deleteWalletData
  mapping old key patterns for incremental migration

Glob deployment setup following Laconic self-hosted DeFi playbook:
- build-glob.sh: build, lowercase, deploy to ship
- urbit-files/: desk.docket-0 + mark files (ico, map, ttf, woff, woff2)

Includes 22 Jest tests with mocked fetch/EventSource.

Part of wallet-integration across:
- zenith-desk: Hoon crypto libs + agent endpoints
- zenith-wallet-web (this repo): Eyre channel client + localStorage migration
- zenith-testing: Go integration tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 09:38:59 -05:00