..

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 package
  • README.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 wallet
  • utxos - 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

  1. Compression gzip : Réduit la taille de ~70%
  2. Lazy loading : Chargement à la demande
  3. Caching : Mise en cache du module
  4. 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 :

  1. Modifier le code source dans temp-deps/sdk_client/
  2. Recompiler avec ./scripts/setup-remote-deps.sh
  3. Tester les changements
  4. 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 !