//! Ethereum provider functionality. use ethers::prelude::*; use super::networks::{self, NetworkConfig}; use crate::error::CryptoError; /// Creates a provider for a specific network. pub fn create_provider(network: &NetworkConfig) -> Result, CryptoError> { Provider::::try_from(network.rpc_url.as_str()).map_err(|e| { CryptoError::SerializationError(format!( "Failed to create provider for {}: {}", network.name, e )) }) } /// Creates a provider for the Gnosis Chain. pub fn create_gnosis_provider() -> Result, CryptoError> { create_provider(&networks::gnosis()) } /// Creates a provider for the Peaq network. pub fn create_peaq_provider() -> Result, CryptoError> { create_provider(&networks::peaq()) } /// Creates a provider for the Agung testnet. pub fn create_agung_provider() -> Result, CryptoError> { create_provider(&networks::agung()) }