package tokens import ( "github.com/ethereum/go-ethereum/common" ) // ArbitrumTokens contains the addresses of popular tokens on Arbitrum type ArbitrumTokens struct { // Tier 1 - Major Assets WETH common.Address USDC common.Address USDT common.Address ARB common.Address WBTC common.Address DAI common.Address LINK common.Address UNI common.Address GMX common.Address GRT common.Address // Tier 2 - DeFi Blue Chips USDCe common.Address // Bridged USDC PENDLE common.Address RDNT common.Address MAGIC common.Address GRAIL common.Address // Tier 3 - Additional High Volume AAVE common.Address CRV common.Address BAL common.Address COMP common.Address MKR common.Address } // GetArbitrumTokens returns the addresses of popular tokens on Arbitrum func GetArbitrumTokens() *ArbitrumTokens { return &ArbitrumTokens{ // Tier 1 - Major Assets WETH: common.HexToAddress("0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"), // Wrapped Ether USDC: common.HexToAddress("0xaf88d065e77c8cC2239327C5EDb3A432268e5831"), // USD Coin (Native) USDT: common.HexToAddress("0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"), // Tether USD ARB: common.HexToAddress("0x912CE59144191C1204E64559FE8253a0e49E6548"), // Arbitrum Token WBTC: common.HexToAddress("0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f"), // Wrapped Bitcoin DAI: common.HexToAddress("0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"), // Dai Stablecoin LINK: common.HexToAddress("0xf97f4df75117a78c1A5a0DBb814Af92458539FB4"), // ChainLink Token UNI: common.HexToAddress("0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0"), // Uniswap GMX: common.HexToAddress("0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a"), // GMX GRT: common.HexToAddress("0x9623063377AD1B27544C965cCd7342f7EA7e88C7"), // The Graph // Tier 2 - DeFi Blue Chips USDCe: common.HexToAddress("0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8"), // USD Coin (Bridged) PENDLE: common.HexToAddress("0x0c880f6761F1af8d9Aa9C466984b80DAb9a8c9e8"), // Pendle RDNT: common.HexToAddress("0x3082CC23568eA640225c2467653dB90e9250AaA0"), // Radiant Capital MAGIC: common.HexToAddress("0x539bdE0d7Dbd336b79148AA742883198BBF60342"), // Magic GRAIL: common.HexToAddress("0x3d9907F9a368ad0a51Be60f7Da3b97cf940982D8"), // Camelot (GRAIL) // Tier 3 - Additional High Volume AAVE: common.HexToAddress("0xba5DdD1f9d7F570dc94a51479a000E3BCE967196"), // Aave CRV: common.HexToAddress("0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978"), // Curve BAL: common.HexToAddress("0x040d1EdC9569d4Bab2D15287Dc5A4F10F56a56B8"), // Balancer COMP: common.HexToAddress("0x354A6dA3fcde098F8389cad84b0182725c6C91dE"), // Compound MKR: common.HexToAddress("0x2e9a6Df78E42a30712c10a9Dc4b1C8656f8F2879"), // Maker } } // GetTriangularPaths returns common triangular arbitrage paths on Arbitrum func GetTriangularPaths() []TriangularPath { tokens := GetArbitrumTokens() return []TriangularPath{ { Name: "USDC-WETH-WBTC-USDC", Tokens: []common.Address{tokens.USDC, tokens.WETH, tokens.WBTC}, }, { Name: "USDC-WETH-ARB-USDC", Tokens: []common.Address{tokens.USDC, tokens.WETH, tokens.ARB}, }, { Name: "WETH-USDC-USDT-WETH", Tokens: []common.Address{tokens.WETH, tokens.USDC, tokens.USDT}, }, { Name: "USDC-DAI-USDT-USDC", Tokens: []common.Address{tokens.USDC, tokens.DAI, tokens.USDT}, }, { Name: "WETH-ARB-GMX-WETH", Tokens: []common.Address{tokens.WETH, tokens.ARB, tokens.GMX}, }, { Name: "USDC-LINK-WETH-USDC", Tokens: []common.Address{tokens.USDC, tokens.LINK, tokens.WETH}, }, } } // TriangularPath represents a triangular arbitrage path type TriangularPath struct { Name string Tokens []common.Address } // GetMostLiquidTokens returns the most liquid tokens for market scanning func GetMostLiquidTokens() []common.Address { tokens := GetArbitrumTokens() return []common.Address{ tokens.WETH, tokens.USDC, tokens.USDT, tokens.ARB, tokens.WBTC, tokens.DAI, } }