#!/bin/bash # Script simplifié de transfert de fonds set -e MINING_WALLET="mining_mnemonic" RELAY_WALLET="default" COOKIE_FILE="/home/bitcoin/.bitcoin/signet/.cookie" AMOUNT=${1:-0.01} echo "=== TRANSFERT SIMPLE DE FONDS ===" echo "Montant: $AMOUNT BTC" # Vérifier la connectivité echo "Vérification de la connectivité Bitcoin..." if ! docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" getblockchaininfo > /dev/null 2>&1; then echo "ERREUR: Impossible de se connecter au nœud Bitcoin" exit 1 fi # Vérifier le solde du wallet mining echo "Vérification du solde du wallet mining..." MINING_BALANCE=$(docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" -rpcwallet="$MINING_WALLET" getbalance 2>/dev/null || echo "0") echo "Solde wallet mining: $MINING_BALANCE BTC" # Charger le wallet relay echo "Chargement du wallet relay..." docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" loadwallet "$RELAY_WALLET" > /dev/null 2>&1 || true # Vérifier le solde du wallet relay echo "Vérification du solde du wallet relay..." RELAY_BALANCE=$(docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" -rpcwallet="$RELAY_WALLET" getbalance 2>/dev/null || echo "0") echo "Solde wallet relay: $RELAY_BALANCE BTC" # Si le relay a déjà des fonds, ne pas transférer if [ "$(echo "$RELAY_BALANCE > 0" | bc -l)" = "1" ]; then echo "Forçage d'un nouveau transfert pour créer des outputs..." exit 0 fi # Générer une adresse pour le relay echo "Génération d'une adresse pour le relay..." RELAY_ADDRESS=$(docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" -rpcwallet="$RELAY_WALLET" getnewaddress "relay_funding" 2>/dev/null) echo "Adresse générée: $RELAY_ADDRESS" # Effectuer le transfert echo "Transfert de $AMOUNT BTC vers $RELAY_ADDRESS..." TXID=$(docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" -rpcwallet="$MINING_WALLET" sendtoaddress "$RELAY_ADDRESS" "$AMOUNT" 2>/dev/null) echo "Transaction ID: $TXID" # Générer des blocs pour confirmer echo "Génération de blocs pour confirmer la transaction..." docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" -rpcwallet="$MINING_WALLET" generatetoaddress 6 "$RELAY_ADDRESS" > /dev/null 2>&1 # Vérifier les confirmations CONFIRMATIONS=$(docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile="$COOKIE_FILE" -rpcwallet="$MINING_WALLET" gettransaction "$TXID" 2>/dev/null | jq -r '.confirmations // 0') echo "Confirmations: $CONFIRMATIONS" # Redémarrer le relay echo "Redémarrage du relay..." docker compose restart sdk_relay echo "=== TRANSFERT TERMINÉ ==="