4NK_wallet/docs/ARCHITECTURE.md
Your Name a9a67608aa
Some checks failed
CI - 4NK Node / Code Quality (push) Failing after 30s
CI - 4NK Node / Unit Tests (push) Failing after 29s
CI - 4NK Node / Integration Tests (push) Failing after 9s
CI - 4NK Node / Security Tests (push) Failing after 27s
CI - 4NK Node / Docker Build & Test (push) Failing after 9s
CI - 4NK Node / Documentation Tests (push) Failing after 3s
CI - 4NK Node / Release Guard (push) Has been skipped
CI - 4NK Node / Performance Tests (push) Failing after 30s
CI - 4NK Node / Notify (push) Failing after 2s
chore(template): adapter .gitea depuis template et synchroniser docs pour 4NK_wallet
2025-08-27 11:51:47 +02:00

29 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Architecture - sdk_wallet
## Vue densemble
- Application mobile React Native
- État centralisé avec Redux Toolkit
- UI Web intégrée via `react-native-webview` qui charge `ihm_client` (build Vite)
- Pont de messages `window.postMessage` redirigé vers `ReactNativeWebView.postMessage`
## Flux
1. Lapp charge `assets/ihm/index.html` (build de `ihm_client`)
2. Le script injecté remappe `window.postMessage` et expose `window.__RN_RECEIVE__`
3. `ihm_client` émet `LISTENING`, `LINK_ACCEPTED`, etc. → captés côté RN
4. RN met à jour Redux (tokens, état), puis peut envoyer des messages: `REQUEST_LINK`, `VALIDATE_TOKEN`, etc.
## Découpage
- `src/bridge/` : sérialisation et gestion des messages
- `src/components/` : `WebWallet` (WebView)
- `src/screens/` : `WalletScreen`
- `src/store/` : état (tokens, dernier message)
## Sécurité
- Respect de lorigine dans `ihm_client` (réponses vers `event.origin`)
- Les tokens ne sortent pas du store sans action explicite
## Performances
- Code splitting avec `React.lazy`/`Suspense`
- Build `ihm_client` optimisé via Vite