You are an expert in Ethereum and Arbitrum blockchain development. I'm building an MEV bot in Go that needs to monitor the Arbitrum sequencer for potential swap transactions. I need help with: 1. Setting up a connection to an Arbitrum node (both RPC and WebSocket) 2. Efficiently monitoring new blocks as they are added to the chain 3. Monitoring the mempool for pending transactions 4. Identifying transactions that interact with Uniswap-like contracts 5. Decoding transaction data to extract swap parameters 6. Handling network errors and reconnections gracefully Please provide production-ready Go code that: - Uses the go-ethereum library - Implements efficient polling or event-driven monitoring - Handles errors gracefully - Follows Go best practices - Is optimized for performance - Includes comprehensive comments The code should: - Connect to the Arbitrum mainnet RPC endpoint (https://arb1.arbitrum.io/rpc) - Monitor for transactions to common DEX contract addresses - Extract function signatures and parameters from transaction data - Decode swap function calls to get token addresses and amounts