# Architecture - sdk_wallet ## Vue d’ensemble - 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. L’app 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 l’origine 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