Files
smom-dbis-138/scripts/deployment/submit-token-list.sh
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

184 lines
5.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Submit Token List Script
# Submits token list to CoinGecko, Uniswap, and other aggregators
set -euo pipefail
# Configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
TOKEN_LIST_FILE="${PROJECT_ROOT}/metamask/token-list.json"
TOKEN_LIST_URL="https://raw.githubusercontent.com/Defi-Oracle-Tooling/smom-dbis-138/main/metamask/token-list.json"
# Logging function
log() {
log_success "[$(date +'%Y-%m-%d %H:%M:%S')] $1"
}
error() {
log_error "[ERROR] $1"
exit 1
}
warn() {
log_warn "[WARNING] $1"
}
# Validate token list
validate_token_list() {
log "Validating token list..."
if [ ! -f "$TOKEN_LIST_FILE" ]; then
error "Token list file not found: $TOKEN_LIST_FILE"
fi
# Validate JSON syntax
if ! jq empty "$TOKEN_LIST_FILE" 2>/dev/null; then
error "Token list JSON syntax is invalid"
fi
# Validate schema (if ajv is available)
if command -v ajv &> /dev/null; then
if ajv validate -s "${PROJECT_ROOT}/metamask/token-list.schema.json" -d "$TOKEN_LIST_FILE"; then
log "Token list schema validation passed"
else
error "Token list schema validation failed"
fi
else
warn "ajv-cli not installed, skipping schema validation"
fi
log "Token list validation passed"
}
# Submit to CoinGecko
submit_to_coingecko() {
log "Submitting token list to CoinGecko..."
warn "CoinGecko submission requires manual process:"
warn " 1. Fork https://github.com/coingecko/token-lists"
warn " 2. Add token list file to the repository"
warn " 3. Create PR to coingecko/token-lists"
warn " 4. Wait for review and merge"
log "CoinGecko submission instructions:"
log " - Repository: https://github.com/coingecko/token-lists"
log " - Token list URL: $TOKEN_LIST_URL"
log " - File location: Add to repository root or appropriate directory"
}
# Submit to Uniswap
submit_to_uniswap() {
log "Submitting token list to Uniswap..."
warn "Uniswap submission requires manual process:"
warn " 1. Fork https://github.com/Uniswap/token-lists"
warn " 2. Add token list file to src/tokens/ directory"
warn " 3. Update tokens.ts to include the list"
warn " 4. Create PR to Uniswap/token-lists"
warn " 5. Wait for review and merge"
log "Uniswap submission instructions:"
log " - Repository: https://github.com/Uniswap/token-lists"
log " - Token list URL: $TOKEN_LIST_URL"
log " - File location: src/tokens/defi-oracle-mainnet.json"
}
# Submit to Token Lists aggregator
submit_to_token_lists() {
log "Submitting token list to Token Lists aggregator..."
warn "Token Lists aggregator submission requires manual process:"
warn " 1. Visit https://tokenlists.org"
warn " 2. Click 'Add Token List'"
warn " 3. Enter token list URL: $TOKEN_LIST_URL"
warn " 4. Submit for review"
log "Token Lists aggregator submission instructions:"
log " - Website: https://tokenlists.org"
log " - Token list URL: $TOKEN_LIST_URL"
}
# Generate submission report
generate_report() {
log "Generating submission report..."
local report_file="${PROJECT_ROOT}/token-list-submission-report.md"
cat > "$report_file" <<EOF
# Token List Submission Report
Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)
## Token List Information
- **File**: $TOKEN_LIST_FILE
- **URL**: $TOKEN_LIST_URL
- **Chain ID**: 138
- **Network**: DeFi Oracle Meta Mainnet
## Submission Status
### CoinGecko
- **Status**: Pending manual submission
- **Repository**: https://github.com/coingecko/token-lists
- **Instructions**: Fork repository, add token list, create PR
### Uniswap
- **Status**: Pending manual submission
- **Repository**: https://github.com/Uniswap/token-lists
- **Instructions**: Fork repository, add to src/tokens/, create PR
### Token Lists Aggregator
- **Status**: Pending manual submission
- **Website**: https://tokenlists.org
- **Instructions**: Visit website, submit token list URL
## Next Steps
1. Ensure token list is accessible at: $TOKEN_LIST_URL
2. Submit to CoinGecko: Fork repository and create PR
3. Submit to Uniswap: Fork repository and create PR
4. Submit to Token Lists aggregator: Visit website and submit URL
5. Monitor submissions and respond to review comments
## Tracking
- CoinGecko PR: [To be created]
- Uniswap PR: [To be created]
- Token Lists aggregator: [To be submitted]
EOF
log "Submission report generated: $report_file"
}
# Main function
main() {
log "Starting token list submission process..."
# Step 1: Validate token list
validate_token_list
# Step 2: Generate submission report
generate_report
# Step 3: Provide submission instructions
log "Token list submission instructions:"
submit_to_coingecko
submit_to_uniswap
submit_to_token_lists
log "Token list submission process completed"
log "See token-list-submission-report.md for detailed instructions"
log "Next steps:"
log " 1. Ensure token list is accessible at: $TOKEN_LIST_URL"
log " 2. Follow submission instructions for each aggregator"
log " 3. Track submission status in token-list-submission-report.md"
}
# Run main function
main "$@"