|
|
#!/bin/bash |
|
|
|
|
|
echo "🧪 Lottery Devnet Testing Script" |
|
|
echo "==============================" |
|
|
|
|
|
# Set to devnet |
|
|
solana config set --url devnet |
|
|
echo "✅ Set Solana config to devnet" |
|
|
|
|
|
# Check wallet balance |
|
|
echo "💰 Checking wallet balance..." |
|
|
BALANCE=$(solana balance) |
|
|
echo "Current balance: $BALANCE" |
|
|
|
|
|
# Ensure we have enough SOL (at least 5 SOL for testing) |
|
|
MIN_BALANCE="5.0" |
|
|
BALANCE_NUM=$(echo $BALANCE | cut -d' ' -f1) |
|
|
|
|
|
if (( $(echo "$BALANCE_NUM < $MIN_BALANCE" | bc -l) )); then |
|
|
echo "❌ Insufficient balance for testing. Need at least 5 SOL." |
|
|
echo "💸 Requesting airdrop..." |
|
|
solana airdrop 5 |
|
|
echo "⏳ Waiting 10 seconds for airdrop confirmation..." |
|
|
sleep 10 |
|
|
fi |
|
|
|
|
|
# Build the program |
|
|
echo "🔨 Building Anchor program..." |
|
|
anchor build |
|
|
if [ $? -ne 0 ]; then |
|
|
echo "❌ Build failed!" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
# Deploy the program |
|
|
echo "🚀 Deploying to devnet..." |
|
|
anchor deploy --provider.cluster devnet |
|
|
if [ $? -ne 0 ]; then |
|
|
echo "❌ Deploy failed!" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
# Generate the IDL |
|
|
echo "📝 Generating IDL..." |
|
|
anchor idl init -f target/idl/lottery_simple.json $(solana-keygen pubkey target/deploy/lottery_simple-keypair.json) |
|
|
|
|
|
echo "✅ Program deployed successfully!" |
|
|
|
|
|
# Show deployment info |
|
|
PROGRAM_ID=$(solana-keygen pubkey target/deploy/lottery_simple-keypair.json) |
|
|
echo "📍 Program ID: $PROGRAM_ID" |
|
|
|
|
|
# Create a simple test to verify the deployment |
|
|
echo "🧪 Creating simple test..." |
|
|
|
|
|
# Generate a new keypair for the mint |
|
|
echo "🔑 Creating mint keypair..." |
|
|
solana-keygen new --outfile mint-keypair.json --no-bip39-passphrase |
|
|
|
|
|
# Create the mint |
|
|
echo "🪙 Creating token mint..." |
|
|
MINT_ADDRESS=$(solana-keygen pubkey mint-keypair.json) |
|
|
spl-token create-token mint-keypair.json |
|
|
echo "✅ Token mint created: $MINT_ADDRESS" |
|
|
|
|
|
# Generate devnet config |
|
|
echo "📄 Generating devnet configuration..." |
|
|
cat > devnet-config.json << EOF |
|
|
{ |
|
|
"programId": "$PROGRAM_ID", |
|
|
"mintAddress": "$MINT_ADDRESS", |
|
|
"devWallet": "$(solana address)", |
|
|
"cluster": "devnet", |
|
|
"rpcUrl": "https://api.devnet.solana.com" |
|
|
} |
|
|
EOF |
|
|
|
|
|
echo "✅ Devnet configuration saved to devnet-config.json" |
|
|
echo "" |
|
|
echo "🎉 Deployment complete!" |
|
|
echo "📋 Next steps:" |
|
|
echo " 1. Update your frontend to use devnet-config.json" |
|
|
echo " 2. Initialize the program state using the frontend or CLI" |
|
|
echo " 3. Test buy/sell functionality" |
|
|
echo "" |
|
|
echo "⚠️ Remember: This is devnet SOL - not real money!" |