|
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
echo "🔥 Sending All Tokens to Burn Address"
|
|
|
|
|
|
echo "====================================="
|
|
|
|
|
|
echo "🎯 Burn Address: 1nc1nerator11111111111111111111111111111111"
|
|
|
|
|
|
echo "📍 Cluster: devnet (safe for testing)"
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
# Confirm before proceeding
|
|
|
|
|
|
read -p "Send ALL tokens to burn address? (type 'yes' to confirm): " confirm
|
|
|
|
|
|
if [ "$confirm" != "yes" ]; then
|
|
|
|
|
|
echo "❌ Aborted"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "🔥 Starting burn process..."
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
# Set to devnet
|
|
|
|
|
|
solana config set --url devnet > /dev/null
|
|
|
|
|
|
|
|
|
|
|
|
BURN_ADDRESS="1nc1nerator11111111111111111111111111111111"
|
|
|
|
|
|
|
|
|
|
|
|
echo "💰 Wallet: $(solana address)"
|
|
|
|
|
|
echo "🔥 Burn Address: $BURN_ADDRESS"
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
# Get all token accounts
|
|
|
|
|
|
echo "📊 Current token accounts:"
|
|
|
|
|
|
spl-token accounts --url devnet
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
# List of token mints to burn
|
|
|
|
|
|
MINTS=(
|
|
|
|
|
|
"4auc435LJ9AfprLeMziHTJbP8wQmbSi7o4ZpeXdR66jQ"
|
|
|
|
|
|
"5xEQF57sR2L3tJBfdiiqaVtepTMa7nQR9uMybMojEY8n"
|
|
|
|
|
|
"8cJ8APx5TwwmpeRk4Zhz1Qbyi1T3HHdHUEw4GUJqxAGN"
|
|
|
|
|
|
"AK9fXWyDNWurYjZSDhbqBo6fczqLmCLbCZ3vq9Vftsqb"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Function to send tokens to burn address
|
|
|
|
|
|
burn_tokens() {
|
|
|
|
|
|
local mint=$1
|
|
|
|
|
|
echo "🔥 Processing mint: $mint"
|
|
|
|
|
|
|
|
|
|
|
|
# Get balance
|
|
|
|
|
|
local balance=$(spl-token balance $mint --url devnet 2>/dev/null || echo "0")
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$balance" == "0" ] || [ -z "$balance" ]; then
|
|
|
|
|
|
echo " ℹ️ No balance - skipping"
|
|
|
|
|
|
return
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo " 💰 Current balance: $balance"
|
|
|
|
|
|
|
|
|
|
|
|
# Create associated token account for burn address if needed
|
|
|
|
|
|
echo " 🏭 Creating burn address token account..."
|
|
|
|
|
|
spl-token create-account $mint --owner $BURN_ADDRESS --url devnet 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
|
|
# Transfer all tokens to burn address
|
|
|
|
|
|
echo " 🔥 Sending $balance tokens to burn address..."
|
|
|
|
|
|
local result=$(spl-token transfer $mint $balance $BURN_ADDRESS --url devnet --allow-unfunded-recipient 2>&1)
|
|
|
|
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
echo " ✅ Successfully sent $balance tokens to burn address"
|
|
|
|
|
|
|
|
|
|
|
|
# Close the now-empty account to reclaim rent
|
|
|
|
|
|
echo " 🗑️ Closing empty token account..."
|
|
|
|
|
|
spl-token close $mint --url devnet 2>/dev/null
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
echo " ✅ Token account closed, rent reclaimed"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo " ⚠️ Could not close account"
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo " ❌ Transfer failed: $result"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Process each mint
|
|
|
|
|
|
for mint in "${MINTS[@]}"; do
|
|
|
|
|
|
burn_tokens $mint
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
echo "🎯 Burn process complete!"
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo "📊 Final token account status:"
|
|
|
|
|
|
spl-token accounts --url devnet
|
|
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo "💰 Final SOL balance:"
|
|
|
|
|
|
solana balance --url devnet
|
|
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo "🔥 All tokens have been sent to the incinerator!"
|
|
|
|
|
|
echo "✅ Ready for clean testing!"
|