# API Funds - lecoffre-back-mini ## Endpoints disponibles ### POST /api/v1/funds/transfer Transfère automatiquement des fonds du wallet mining vers le relay. **Paramètres :** - `amount` (optionnel) : Montant à transférer en BTC (défaut: 0.01) - `source` (optionnel) : Wallet source (défaut: 'mining_mnemonic') - `target` (optionnel) : Wallet cible (défaut: 'default') **Réponse :** ```json { "success": true, "message": "Transfert de 0.01 BTC réussi", "transactionId": "txid...", "address": "address...", "sourceBalance": 49.99998340, "targetBalance": 0.02 } ``` ### GET /api/v1/funds/check Vérifie les fonds du relay et du wallet mining. **Réponse :** ```json { "success": true, "relay": { "outputsCount": 2, "balance": 0.02 }, "mining": { "balance": 49.99998340 }, "needsTransfer": false } ``` ## Configuration requise ### Docker Socket Le service nécessite l'accès au Docker socket pour exécuter `bitcoin-cli` : ```yaml volumes: - /var/run/docker.sock:/var/run/docker.sock ``` ### Docker CLI Le container inclut `docker-cli` pour interagir avec Bitcoin Core : ```dockerfile RUN apk add --no-cache docker-cli ``` ## Intégration frontend ### Détection automatique des fonds insuffisants Le frontend (`ihm_client`) détecte automatiquement les fonds insuffisants et déclenche un transfert : ```typescript // Dans service.ts if (insufficientFunds) { await this.triggerAutomaticFundsTransfer(); } ``` ### API URL L'API est accessible via Nginx sur : - `https://dev4.4nkweb.com/api/v1/funds/transfer` - `https://dev4.4nkweb.com/api/v1/funds/check` ## Tests ### Tests unitaires ```bash npm run test:funds ``` ### Tests d'intégration ```bash npm run test:integration ``` ## Problèmes résolus ### 1. TypeScript compilation errors **Problème :** Erreurs de compilation TypeScript dans `funds.routes.ts`. **Solution :** - Ajout de `Promise` aux signatures de fonctions - Correction du type `error` avec `instanceof Error` - Ajout de `return;` après les réponses ### 2. Docker daemon access **Problème :** `Cannot connect to the Docker daemon`. **Solution :** Ajout du volume Docker socket dans `docker-compose.yml`. ### 3. API endpoint 404 **Problème :** L'endpoint `/api/v1/funds/transfer` retournait 404. **Solution :** - Rebuild de l'image Docker - Correction de l'URL dans le frontend - Configuration Nginx pour `/api/v1/funds/` ## Date de mise à jour 2025-01-20 - API funds implémentée et testée