
All checks were successful
build-and-push-ext / build_push (push) Successful in 6s
- 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
111 lines
2.4 KiB
Markdown
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 |