48 lines
1.4 KiB
Markdown
48 lines
1.4 KiB
Markdown
---
|
|
id: TASK-118.4
|
|
title: Add multiplayer sync to rwallet (shared treasury view)
|
|
status: To Do
|
|
assignee: []
|
|
created_date: '2026-03-16 00:05'
|
|
labels:
|
|
- multiplayer
|
|
- tier-2
|
|
milestone: Multiplayer Everything
|
|
dependencies: []
|
|
parent_task_id: TASK-118
|
|
priority: medium
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
rwallet currently renders client-side-only wallet data from Safe Global API. Add Automerge sync for shared watchlists and treasury annotations.
|
|
|
|
## New files:
|
|
- `modules/rwallet/schemas.ts` — WalletDoc with watchedAddresses, annotations, dashboardConfig
|
|
- `modules/rwallet/local-first-client.ts` — CRUD: addWatchAddress, setAnnotation, updateConfig
|
|
|
|
## Schema:
|
|
```
|
|
WalletDoc {
|
|
meta: { module: 'wallet', collection: 'treasury', version: 1 }
|
|
watchedAddresses: Record<string, { address, chain, label, addedBy, addedAt }>
|
|
annotations: Record<string, { txHash, note, authorDid, createdAt }>
|
|
dashboardConfig: { defaultChain, displayCurrency, layout }
|
|
}
|
|
```
|
|
|
|
## Component updates (`folk-wallet-viewer.ts`):
|
|
- Shared watchlist syncs across space members
|
|
- Transaction annotations visible to all
|
|
- Dashboard layout preferences synced
|
|
<!-- SECTION:DESCRIPTION:END -->
|
|
|
|
## Acceptance Criteria
|
|
<!-- AC:BEGIN -->
|
|
- [ ] #1 Watched wallet addresses sync across space members
|
|
- [ ] #2 Transaction annotations visible to all space members
|
|
- [ ] #3 Dashboard config shared (chain, currency, layout)
|
|
- [ ] #4 Demo mode works with local-only state
|
|
<!-- AC:END -->
|