gas-network-sdk 0.1.0

Rust SDK for Gas Network API - gas price prediction and optimization
Documentation
#[cfg(test)]
mod tests {
    use crate::{GasNetworkClient, Chain, OracleType};

    #[tokio::test]
    async fn test_client_creation() {
        let client = GasNetworkClient::new("test_api_key".to_string());
        assert!(client.is_ok());
    }

    #[test]
    fn test_chain_as_str() {
        assert_eq!(Chain::Ethereum.as_str(), "ethereum");
        assert_eq!(Chain::Base.as_str(), "base");
        assert_eq!(Chain::Arbitrum.as_str(), "arbitrum");
    }

    #[test]
    fn test_supported_chains() {
        let chains = GasNetworkClient::supported_chains();
        assert!(chains.contains(&Chain::Ethereum));
        assert!(chains.contains(&Chain::Base));
        assert!(chains.len() > 5);
    }

    #[test]
    fn test_oracle_type_conversion() {
        let base_fee_type: u32 = OracleType::BaseFeePerGas.into();
        assert_eq!(base_fee_type, 107);
        
        let blob_fee_type: u32 = OracleType::BlobBaseFeePerGas.into();
        assert_eq!(blob_fee_type, 112);
        
        let priority_fee_type: u32 = OracleType::PredictedMaxPriorityFeePerGas.into();
        assert_eq!(priority_fee_type, 322);
    }

    #[test]
    fn test_chains_supporting_base_fee() {
        let chains = GasNetworkClient::chains_supporting_base_fee();
        assert_eq!(chains, vec![Chain::Ethereum]);
    }

    #[test]
    fn test_chains_supporting_distribution() {
        let chains = GasNetworkClient::chains_supporting_distribution();
        assert_eq!(chains, vec![Chain::Ethereum]);
    }
}