lecoffre-back-mini/docs/API_FUNDS.md
dev4 0f42988408
All checks were successful
build-and-push-ext / build_push (push) Successful in 6s
docs: Documentation API Funds complète
- Ajout de docs/API_FUNDS.md avec documentation complète
- Problèmes résolus documentés (TypeScript, Docker, API 404)
- Tests unitaires et d'intégration documentés
- Configuration Docker socket et CLI documentée
2025-09-20 22:15:02 +00:00

111 lines
2.4 KiB
Markdown

# 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<void>` 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