e8d9b1fd42
Add complete token system with Plex/Tautulli/Overseer integration: - Anchor program for SPL token mint/burn/transfer - Express backend with OAuth, webhooks, Solana integration - Next.js frontend with dashboard, admin panel, wallet management - Docker deployment for 172.20.1.0/24 infrastructure - Production configs with SSL, Nginx, health monitoring Tautulli webhooks auto-mint on watch events. Overseer integration burns for content requests.
86 lines
2.3 KiB
Bash
Executable File
86 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Solana Setup Script for CoopCredits
|
|
# This script sets up the Solana environment for the CoopCredits token
|
|
|
|
set -e
|
|
|
|
echo "🪙 CoopCredits Solana Setup"
|
|
echo "==========================="
|
|
echo ""
|
|
|
|
# Check for Solana CLI
|
|
if ! command -v solana &> /dev/null; then
|
|
echo "Installing Solana CLI..."
|
|
sh -c "$(curl -sSfL https://release.solana.com/v1.17.0/install)"
|
|
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
|
|
fi
|
|
|
|
echo "✅ Solana CLI version: $(solana --version)"
|
|
|
|
# Set network to devnet
|
|
echo ""
|
|
echo "Setting network to devnet..."
|
|
solana config set --url devnet
|
|
|
|
# Create or load keypair
|
|
KEYPAIR_PATH="$HOME/.config/solana/coop-credits-authority.json"
|
|
|
|
if [ -f "$KEYPAIR_PATH" ]; then
|
|
echo "✅ Using existing keypair: $KEYPAIR_PATH"
|
|
else
|
|
echo "Creating new keypair..."
|
|
solana-keygen new --outfile "$KEYPAIR_PATH" --no-bip39-passphrase
|
|
echo "✅ Keypair created: $KEYPAIR_PATH"
|
|
fi
|
|
|
|
# Get public key
|
|
AUTHORITY_PUBKEY=$(solana-keygen pubkey "$KEYPAIR_PATH")
|
|
echo ""
|
|
echo "Authority Public Key: $AUTHORITY_PUBKEY"
|
|
|
|
# Request airdrop
|
|
echo ""
|
|
echo "Requesting airdrop..."
|
|
solana airdrop 2 "$AUTHORITY_PUBKEY" || echo "⚠️ Airdrop failed (may have rate limit)"
|
|
|
|
# Check balance
|
|
BALANCE=$(solana balance "$AUTHORITY_PUBKEY")
|
|
echo "Authority Balance: $BALANCE SOL"
|
|
|
|
# Export private key for backend
|
|
echo ""
|
|
echo "Exporting private key for backend..."
|
|
PRIVATE_KEY=$(cat "$KEYPAIR_PATH" | jq -r '.[]' | xxd -p -c 999999 | head -c 128)
|
|
BASE58_KEY=$(solana-keygen recover --force --outfile /dev/stdout "$KEYPAIR_PATH" 2>/dev/null | head -1)
|
|
|
|
echo ""
|
|
echo "================================================"
|
|
echo "IMPORTANT: Add these to your backend .env file:"
|
|
echo "================================================"
|
|
echo ""
|
|
echo "SOLANA_MINT_AUTHORITY_KEYPAIR=$BASE58_KEY"
|
|
echo ""
|
|
echo "================================================"
|
|
echo ""
|
|
|
|
# Build Anchor program
|
|
echo "Building Anchor program..."
|
|
cd ../anchor-program
|
|
|
|
if command -v anchor &> /dev/null; then
|
|
anchor build
|
|
echo "✅ Program built successfully"
|
|
|
|
echo ""
|
|
echo "To deploy the program, run:"
|
|
echo " cd anchor-program"
|
|
echo " anchor deploy"
|
|
else
|
|
echo "⚠️ Anchor not installed. Install with:"
|
|
echo " npm install -g @coral-xyz/anchor-cli"
|
|
fi
|
|
|
|
echo ""
|
|
echo "✅ Setup complete!"
|