ncantu 3c212e56e9 api-anchorage: combine multiple UTXOs, api-relay: storage interface refactor
**Motivations:**
- Résoudre erreur "No UTXO large enough" en combinant plusieurs petits UTXOs
- Refactorer api-relay avec interface StorageServiceInterface pour meilleure abstraction
- Ajouter script restart-bitcoind.sh

**Root causes:**
- api-anchorage: logique cherchait uniquement un UTXO assez grand, ne combinait pas plusieurs petits UTXOs
- api-relay: code dupliqué entre StorageService et DatabaseStorageService

**Correctifs:**
- api-anchorage: combinaison automatique de plusieurs petits UTXOs si aucun assez grand, ajustement frais pour inputs multiples, limite 20 UTXOs, gestion cohérente verrouillage/déverrouillage

**Evolutions:**
- api-relay: StorageServiceInterface (abstraction commune), refactoring routes (keys, messages, signatures, metrics, bloom) pour utiliser interface, eslint config, package updates
- fixKnowledge: api-anchorage-combine-utxos.md (documentation correction)
- restart-bitcoind.sh: script redémarrage bitcoind

**Pages affectées:**
- api-anchorage: bitcoin-rpc.js
- api-relay: eslint.config.mjs, package.json, index.ts, middleware/auth.ts, routes (bloom, keys, messages, metrics, signatures), services (apiKeyService, database, relay, storageAdapter, storageInterface)
- fixKnowledge: api-anchorage-combine-utxos.md
- restart-bitcoind.sh
2026-01-28 07:50:56 +01:00

41 lines
1.2 KiB
JSON

{
"name": "userwallet-api-relay",
"version": "1.0.0",
"description": "Relay server for UserWallet decentralized login system",
"type": "module",
"main": "dist/index.js",
"scripts": {
"dev": "tsx watch src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"lint": "eslint . --report-unused-disable-directives --max-warnings 0",
"type-check": "tsc --noEmit",
"migrate": "tsx src/scripts/migrate-to-db.ts"
},
"dependencies": {
"better-sqlite3": "^11.10.0",
"bloom-filters": "^3.0.4",
"compression": "^1.8.1",
"cors": "^2.8.5",
"express": "^4.18.2",
"express-rate-limit": "^8.2.1",
"pino": "^10.3.0",
"prom-client": "^15.1.3"
},
"devDependencies": {
"@eslint/js": "^9.0.0",
"@types/better-sqlite3": "^7.6.13",
"@types/compression": "^1.8.1",
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/node": "^20.10.5",
"@typescript-eslint/eslint-plugin": "^6.14.0",
"@typescript-eslint/parser": "^6.14.0",
"eslint": "^8.55.0",
"eslint-plugin-unused-imports": "^3.0.0",
"tsx": "^4.7.0",
"typescript": "^5.2.2",
"typescript-eslint": "^8.54.0"
}
}