Skip to main content
Glama

ONEDeFi MCP Server

by JMadhan1
testnet_helper.py•5.54 kB
import os import logging import requests from utils.wallet import WalletManager logger = logging.getLogger(__name__) class TestnetHelper: """Helper functions for testnet operations""" def __init__(self): self.wallet_manager = WalletManager() self.use_testnet = os.getenv("USE_TESTNET", "false").lower() == "true" def get_testnet_faucet_urls(self): """Get faucet URLs for getting free testnet tokens""" return { "ethereum_sepolia": { "faucet": "https://sepoliafaucet.com", "alternative": "https://faucets.chain.link/sepolia", "instructions": "Connect wallet and request 0.5 ETH per day" }, "polygon_mumbai": { "faucet": "https://faucet.polygon.technology", "alternative": "https://mumbai-faucet.com", "instructions": "Connect wallet and request MATIC tokens" }, "solana_devnet": { "faucet": "https://faucet.solana.com", "cli_command": "solana airdrop 2 <your_address> --url devnet", "instructions": "Request up to 2 SOL per day" } } def generate_testnet_wallet_guide(self): """Generate step-by-step guide for testnet wallet setup""" return { "steps": [ { "step": 1, "title": "Generate Test Wallet", "description": "Create a new wallet specifically for testing", "action": "Use the wallet generation feature in the dashboard" }, { "step": 2, "title": "Switch to Testnet Mode", "description": "Configure your app to use testnet networks", "action": "Set USE_TESTNET=true in environment variables" }, { "step": 3, "title": "Get Test Tokens", "description": "Request free tokens from faucets", "action": "Visit faucet websites and request tokens" }, { "step": 4, "title": "Start Testing", "description": "Test DeFi operations with your testnet wallet", "action": "Use swap, lending, and other DeFi features safely" } ], "warnings": [ "Never use testnet private keys on mainnet", "Testnet tokens have no real value", "Some testnet networks may be unstable" ] } def validate_testnet_address(self, address, network): """Validate if address is appropriate for testnet""" if network == "ethereum_sepolia": return self.wallet_manager.validate_ethereum_address(address) elif network == "polygon_mumbai": return self.wallet_manager.validate_ethereum_address(address) elif network == "solana_devnet": return self.wallet_manager.validate_solana_address(address) return False def get_testnet_token_contracts(self): """Get common testnet token contract addresses""" return { "ethereum_sepolia": { "USDC": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", "DAI": "0xFF34B3d4Aee8ddCd6F9AFFFB6Fe49bD371b8a357", "LINK": "0x779877A7B0D9E8603169DdbD7836e478b4624789" }, "polygon_mumbai": { "USDC": "0x2058A9D7613eEE744279e3856Ef0eAda5FCbaA7e", "DAI": "0x001B3B4d0F3714Ca98ba10F6042DaEbF0B1B7b6F", "WMATIC": "0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889" }, "solana_devnet": { "USDC": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr", "SOL": "So11111111111111111111111111111111111111112" } } def check_testnet_balance(self, wallet_address, network): """Check testnet balance for given wallet""" try: balance_info = self.wallet_manager.get_wallet_balance_summary( wallet_address, network.split('_')[0] # Extract base network name ) if balance_info: return { "network": network, "address": wallet_address, "balance": balance_info["native_balance"], "symbol": balance_info["native_symbol"], "is_testnet": True } return None except Exception as e: logger.error(f"Failed to check testnet balance: {str(e)}") return None def get_recommended_test_amounts(self): """Get recommended amounts for testing different operations""" return { "ethereum_sepolia": { "swap_test": "0.01 ETH", "lending_test": "0.1 ETH", "liquidity_test": "0.05 ETH" }, "polygon_mumbai": { "swap_test": "1 MATIC", "lending_test": "10 MATIC", "liquidity_test": "5 MATIC" }, "solana_devnet": { "swap_test": "0.1 SOL", "lending_test": "1 SOL", "liquidity_test": "0.5 SOL" } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JMadhan1/OneDefi-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server