pub struct NetworkConfig {
pub solana_rpc_url: String,
pub solana_ws_url: Option<String>,
pub rpc_urls: HashMap<String, String>,
pub chains: HashMap<u64, ChainConfig>,
pub default_chain_id: u64,
pub timeouts: NetworkTimeouts,
}Expand description
Network configuration
Fields§
§solana_rpc_url: StringSolana RPC URL
solana_ws_url: Option<String>Solana WebSocket URL (optional)
rpc_urls: HashMap<String, String>EVM RPC URLs using RPC_URL_{CHAIN_ID} convention This is populated dynamically from environment variables
chains: HashMap<u64, ChainConfig>Chain-specific contract addresses
default_chain_id: u64Default chain ID to use
timeouts: NetworkTimeoutsNetwork timeouts
Implementations§
Source§impl NetworkConfig
impl NetworkConfig
Sourcepub fn extract_rpc_urls(&mut self)
pub fn extract_rpc_urls(&mut self)
Extract RPC URLs from environment using RPC_URL_{CHAIN_ID} or RPC_URL_{NETWORK_NAME} convention
Sourcepub fn load_chain_contracts(&mut self) -> Result<(), ConfigError>
pub fn load_chain_contracts(&mut self) -> Result<(), ConfigError>
Load chain contracts from chains.toml file
Sourcepub fn get_rpc_url(&self, chain_identifier: &str) -> Option<String>
pub fn get_rpc_url(&self, chain_identifier: &str) -> Option<String>
Get RPC URL for a specific chain ID or network name
Sourcepub fn get_rpc_url_by_id(&self, chain_id: u64) -> Option<String>
pub fn get_rpc_url_by_id(&self, chain_id: u64) -> Option<String>
Get RPC URL for a specific numeric chain ID (backward compatibility)
Sourcepub fn get_chain(&self, chain_id: u64) -> Option<&ChainConfig>
pub fn get_chain(&self, chain_id: u64) -> Option<&ChainConfig>
Get chain configuration
Sourcepub fn get_supported_chains(&self) -> Vec<u64>
pub fn get_supported_chains(&self) -> Vec<u64>
Get all supported chain IDs
Sourcepub fn validate_config(
&self,
address_validator: Option<&dyn AddressValidator>,
) -> Result<(), ConfigError>
pub fn validate_config( &self, address_validator: Option<&dyn AddressValidator>, ) -> Result<(), ConfigError>
Validates the network configuration
Checks that all URLs are properly formatted and optionally validates contract addresses if an address validator is provided.
§Arguments
address_validator- Optional validator for blockchain addresses. If None, address validation is skipped.
Trait Implementations§
Source§impl Clone for NetworkConfig
impl Clone for NetworkConfig
Source§fn clone(&self) -> NetworkConfig
fn clone(&self) -> NetworkConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for NetworkConfig
impl Debug for NetworkConfig
Source§impl Default for NetworkConfig
impl Default for NetworkConfig
Source§fn default() -> NetworkConfig
fn default() -> NetworkConfig
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for NetworkConfig
impl<'de> Deserialize<'de> for NetworkConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<NetworkConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<NetworkConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for NetworkConfig
impl Serialize for NetworkConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for NetworkConfig
impl RefUnwindSafe for NetworkConfig
impl Send for NetworkConfig
impl Sync for NetworkConfig
impl Unpin for NetworkConfig
impl UnwindSafe for NetworkConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more