Files
smom-dbis-138/scripts/check-ausdt-all-mainnet.sh
2026-03-02 12:14:09 -08:00

215 lines
9.6 KiB
Bash
Executable File

#!/bin/bash
# Complete Checklist for AUSDT on ALL MAINNET (ChainID 651940)
# Usage: ./check-ausdt-all-mainnet.sh
# Don't exit on error - we want to continue checking
set +e
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
# Configuration
CHAIN_ID=651940
AUSDT_ADDRESS="0x015B1897Ed5279930bC2Be46F661894d219292A6"
RPC_URL="${RPC_URL_651940:-https://mainnet-rpc.alltra.global}"
EXPLORER_URL="https://alltra.global"
# Counters
PASSED=0
FAILED=0
WARNINGS=0
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; ((PASSED++)); }
log_error() { echo -e "${RED}[✗]${NC} $1"; ((FAILED++)); }
log_warn() { echo -e "${YELLOW}[⚠]${NC} $1"; ((WARNINGS++)); }
log_section() { echo -e "\n${CYAN}══════════════════════════════════════════════════════════════${NC}"; echo -e "${CYAN}$1${NC}"; echo -e "${CYAN}══════════════════════════════════════════════════════════════${NC}\n"; }
echo -e "${BLUE}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║ AUSDT on ALL MAINNET - Complete Checklist ║${NC}"
echo -e "${BLUE}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "${BLUE}Token Address:${NC} $AUSDT_ADDRESS"
echo -e "${BLUE}Chain ID:${NC} $CHAIN_ID (ALL Mainnet)"
echo -e "${BLUE}RPC URL:${NC} $RPC_URL"
echo -e "${BLUE}Explorer:${NC} $EXPLORER_URL"
echo ""
# ============================================================================
# 1. RPC CONNECTIVITY
# ============================================================================
log_section "1. RPC Connectivity Check"
log_info "Testing RPC endpoint connectivity..."
if curl -s -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' \
--max-time 10 "$RPC_URL" > /dev/null 2>&1; then
log_success "RPC endpoint is accessible"
# Verify chain ID (with timeout)
CHAIN_ID_RESPONSE=$(timeout 10 curl -s -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' \
--max-time 10 "$RPC_URL" 2>/dev/null | python3 -c "import sys, json; print(json.load(sys.stdin).get('result', ''))" 2>/dev/null || echo "")
if [ -n "$CHAIN_ID_RESPONSE" ] && [ "$CHAIN_ID_RESPONSE" != "" ]; then
CHAIN_ID_DEC=$(printf "%d" "$CHAIN_ID_RESPONSE" 2>/dev/null || echo "0")
if [ "$CHAIN_ID_DEC" = "$CHAIN_ID" ]; then
log_success "Chain ID matches: $CHAIN_ID"
else
log_warn "Chain ID mismatch: Expected $CHAIN_ID, got $CHAIN_ID_DEC (may be hex format)"
fi
else
log_warn "Could not verify chain ID (RPC may be slow)"
fi
else
log_error "RPC endpoint is not accessible"
fi
# ============================================================================
# 2. CONTRACT DEPLOYMENT
# ============================================================================
log_section "2. Contract Deployment Verification"
log_info "Checking if contract is deployed..."
CONTRACT_CODE=$(timeout 15 cast code "$AUSDT_ADDRESS" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$CONTRACT_CODE" ] && [ "$CONTRACT_CODE" != "0x" ] && [ "$CONTRACT_CODE" != "" ]; then
CODE_SIZE=$(echo "$CONTRACT_CODE" | wc -c)
if [ "$CODE_SIZE" -gt 10 ]; then
log_success "Contract is deployed (code size: $CODE_SIZE bytes)"
else
log_error "Contract code is empty or invalid"
fi
else
log_error "Contract is not deployed or not accessible"
fi
# ============================================================================
# 3. TOKEN METADATA
# ============================================================================
log_section "3. Token Metadata Verification"
log_info "Fetching token name..."
TOKEN_NAME=$(timeout 15 cast call "$AUSDT_ADDRESS" "name()(string)" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$TOKEN_NAME" ] && [ "$TOKEN_NAME" != "" ]; then
log_success "Token Name: $TOKEN_NAME"
else
log_error "Failed to fetch token name"
fi
log_info "Fetching token symbol..."
TOKEN_SYMBOL=$(timeout 15 cast call "$AUSDT_ADDRESS" "symbol()(string)" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$TOKEN_SYMBOL" ] && [ "$TOKEN_SYMBOL" != "" ]; then
# Remove quotes if present
TOKEN_SYMBOL_CLEAN=$(echo "$TOKEN_SYMBOL" | tr -d '"')
log_success "Token Symbol: $TOKEN_SYMBOL_CLEAN"
if [ "$TOKEN_SYMBOL_CLEAN" = "AUSDT" ]; then
log_success "Symbol matches expected: AUSDT"
else
log_warn "Symbol mismatch: Expected AUSDT, got $TOKEN_SYMBOL_CLEAN"
fi
else
log_error "Failed to fetch token symbol"
fi
log_info "Fetching token decimals..."
TOKEN_DECIMALS=$(timeout 15 cast call "$AUSDT_ADDRESS" "decimals()(uint8)" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$TOKEN_DECIMALS" ]; then
DECIMALS_DEC=$(printf "%d" "$TOKEN_DECIMALS" 2>/dev/null || echo "0")
log_success "Token Decimals: $DECIMALS_DEC"
if [ "$DECIMALS_DEC" = "18" ]; then
log_success "Decimals match expected: 18"
else
log_warn "Decimals mismatch: Expected 18, got $DECIMALS_DEC"
fi
else
log_error "Failed to fetch token decimals"
fi
# ============================================================================
# 4. TOKEN SUPPLY
# ============================================================================
log_section "4. Token Supply Information"
log_info "Fetching total supply..."
TOTAL_SUPPLY=$(timeout 15 cast call "$AUSDT_ADDRESS" "totalSupply()(uint256)" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$TOTAL_SUPPLY" ] && [ "$TOTAL_SUPPLY" != "0x0" ] && [ "$TOTAL_SUPPLY" != "0" ]; then
SUPPLY_DEC=$(printf "%d" "$TOTAL_SUPPLY" 2>/dev/null || echo "0")
if [ "$DECIMALS_DEC" = "18" ]; then
SUPPLY_DISPLAY=$(echo "scale=2; $SUPPLY_DEC / 1000000000000000000" | bc 2>/dev/null || echo "$SUPPLY_DEC")
log_success "Total Supply: $SUPPLY_DISPLAY AUSDT"
else
log_success "Total Supply: $SUPPLY_DEC (raw)"
fi
else
log_warn "Total supply is zero or could not be fetched"
fi
# ============================================================================
# 5. ERC-20 FUNCTIONALITY
# ============================================================================
log_section "5. ERC-20 Functionality Check"
log_info "Testing balanceOf function..."
BALANCE=$(timeout 15 cast call "$AUSDT_ADDRESS" "balanceOf(address)(uint256)" "0x0000000000000000000000000000000000000000" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$BALANCE" ]; then
log_success "balanceOf() function works"
else
log_error "balanceOf() function failed"
fi
log_info "Testing allowance function..."
ALLOWANCE=$(timeout 15 cast call "$AUSDT_ADDRESS" "allowance(address,address)(uint256)" "0x0000000000000000000000000000000000000000" "0x0000000000000000000000000000000000000000" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$ALLOWANCE" ]; then
log_success "allowance() function works"
else
log_error "allowance() function failed"
fi
# ============================================================================
# 6. TOKEN LIST VERIFICATION
# ============================================================================
log_section "6. Token List Integration"
TOKEN_LIST_FILE="token-lists/lists/all-mainnet.tokenlist.json"
if [ -f "$TOKEN_LIST_FILE" ]; then
log_success "Token list file exists: $TOKEN_LIST_FILE"
if grep -q "$AUSDT_ADDRESS" "$TOKEN_LIST_FILE"; then
log_success "AUSDT address found in token list"
else
log_error "AUSDT address not found in token list"
fi
else
log_error "Token list file not found: $TOKEN_LIST_FILE"
fi
# ============================================================================
# SUMMARY
# ============================================================================
log_section "Checklist Summary"
echo ""
echo -e "${CYAN}Results:${NC}"
echo -e " ${GREEN}✓ Passed:${NC} $PASSED"
echo -e " ${RED}✗ Failed:${NC} $FAILED"
echo -e " ${YELLOW}⚠ Warnings:${NC} $WARNINGS"
echo ""
if [ $FAILED -eq 0 ]; then
echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ All Critical Checks Passed! ║${NC}"
echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}"
exit 0
else
echo -e "${RED}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${RED}║ Some Checks Failed - Review Above ║${NC}"
echo -e "${RED}╚══════════════════════════════════════════════════════════════╝${NC}"
exit 1
fi