sdk_client - Module WASM
Module WebAssembly compilé pour l'intégration des Silent Payments dans l'interface utilisateur ihm_client
.
📋 Vue d'ensemble
Ce package contient le module WASM compilé de sdk_client
, qui fournit les fonctionnalités de Silent Payments pour l'interface utilisateur.
Fichiers inclus
sdk_client_bg.wasm
- Module WASM principal (3.3 MB)sdk_client.d.ts
- Déclarations TypeScript (12.6 KB)sdk_client.js
- Wrapper JavaScript (182 B)sdk_client_bg.js
- Code JavaScript généré (38 KB)package.json
- Métadonnées du packageREADME.md
- Ce fichier
🚀 Utilisation
Import dans TypeScript
import init, {
generate_sp_wallet,
lock_freezed_utxos,
// ... autres fonctions
} from 'pkg/sdk_client';
// Initialiser le module WASM
await init();
// Utiliser les fonctions
const wallet = generate_sp_wallet();
Import dans JavaScript
import init, { generate_sp_wallet } from 'pkg/sdk_client';
// Initialiser le module WASM
await init();
// Utiliser les fonctions
const wallet = generate_sp_wallet();
🔧 Configuration
Variables d'environnement
# Configuration pour le développement
NODE_ENV=development
VITE_WASM_PATH=./pkg/sdk_client_bg.wasm
# Configuration pour la production
NODE_ENV=production
VITE_WASM_PATH=/assets/sdk_client_bg.wasm
Configuration Vite
// vite.config.ts
import { defineConfig } from 'vite';
import wasm from 'vite-plugin-wasm';
export default defineConfig({
plugins: [
wasm(),
// ... autres plugins
],
optimizeDeps: {
exclude: ['pkg/sdk_client']
}
});
📚 API Reference
Fonctions principales
generate_sp_wallet()
Génère un nouveau wallet Silent Payment.
Retourne : Wallet
- Instance du wallet généré
lock_freezed_utxos(wallet: Wallet, utxos: UTXO[])
Verrouille les UTXOs gelés dans le wallet.
Paramètres :
wallet
- Instance du walletutxos
- Liste des UTXOs à verrouiller
Retourne : boolean
- Succès de l'opération
Types TypeScript
interface Wallet {
id: string;
address: string;
balance: number;
// ... autres propriétés
}
interface UTXO {
txid: string;
vout: number;
amount: number;
// ... autres propriétés
}
🧪 Tests
Tests unitaires
# Tests des fonctions WASM
npm run test:wasm
# Tests avec couverture
npm run test:wasm:coverage
Tests d'intégration
# Tests d'intégration avec l'interface
npm run test:integration
# Tests end-to-end
npm run test:e2e
🔍 Debugging
Logs de développement
// Activer les logs détaillés
import { set_panic_hook } from 'pkg/sdk_client';
set_panic_hook();
Inspection du module
// Inspecter les exports disponibles
import * as sdk_client from 'pkg/sdk_client';
console.log(Object.keys(sdk_client));
📦 Build
Compilation WASM
# Compiler le module WASM
cd temp-deps/sdk_client
wasm-pack build --target web --out-dir ../../pkg
# Ou utiliser le script automatisé
./scripts/setup-remote-deps.sh
Optimisation
# Optimiser la taille du module
wasm-opt -O4 -o sdk_client_bg.wasm sdk_client_bg.wasm
# Compresser le module
gzip -9 sdk_client_bg.wasm
🚨 Dépannage
Problèmes courants
Module non trouvé
# Vérifier que le module est compilé
ls -la pkg/sdk_client_bg.wasm
# Recompiler si nécessaire
./scripts/setup-remote-deps.sh
Erreurs de type TypeScript
# Régénérer les types
cd temp-deps/sdk_client
wasm-pack build --target web --out-dir ../../pkg
# Vérifier la cohérence des types
npm run type-check
Problèmes de performance
# Vérifier la taille du module
ls -lh pkg/sdk_client_bg.wasm
# Optimiser si nécessaire
wasm-opt -O4 -o pkg/sdk_client_bg.wasm pkg/sdk_client_bg.wasm
📈 Performance
Métriques
- Taille du module : 3.3 MB (non compressé)
- Temps de chargement : ~500ms (dépendant du réseau)
- Temps d'initialisation : ~100ms
- Mémoire utilisée : ~10MB
Optimisations
- Compression gzip : Réduit la taille de ~70%
- Lazy loading : Chargement à la demande
- Caching : Mise en cache du module
- Preloading : Préchargement anticipé
🔒 Sécurité
Bonnes pratiques
- Ne jamais exposer les clés privées
- Valider toutes les entrées utilisateur
- Utiliser HTTPS en production
- Maintenir les dépendances à jour
Audit de sécurité
# Vérifier les vulnérabilités
npm audit
# Audit des dépendances Rust
cargo audit
📚 Documentation
Liens utiles
Exemples
🤝 Contribution
Pour contribuer au module WASM :
- Modifier le code source dans
temp-deps/sdk_client/
- Recompiler avec
./scripts/setup-remote-deps.sh
- Tester les changements
- Mettre à jour la documentation
📄 Licence
Ce module est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
🚀 Module WASM sdk_client - Prêt pour l'intégration !