215 lines
9.6 KiB
Bash
Executable File
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
|