mod mpay;
pub use crate::protocol::traits::{ChargeMethod, ErrorCode, VerificationError};
pub use mpay::Mpay;
#[cfg(feature = "tempo")]
pub use crate::protocol::methods::tempo::ChargeMethod as TempoChargeMethod;
#[cfg(feature = "tempo")]
pub use crate::protocol::methods::tempo::{
TempoChargeExt, TempoMethodDetails, CHAIN_ID, METHOD_NAME,
};
#[cfg(feature = "tempo")]
pub fn tempo_provider(rpc_url: &str) -> crate::error::Result<TempoProvider> {
use alloy::providers::ProviderBuilder;
use tempo_alloy::TempoNetwork;
let url = rpc_url
.parse()
.map_err(|e| crate::error::MppError::InvalidConfig(format!("invalid RPC URL: {}", e)))?;
Ok(ProviderBuilder::new_with_network::<TempoNetwork>().connect_http(url))
}
#[cfg(feature = "tempo")]
pub type TempoProvider = alloy::providers::fillers::FillProvider<
alloy::providers::fillers::JoinFill<
alloy::providers::Identity,
alloy::providers::fillers::JoinFill<
alloy::providers::fillers::NonceFiller,
alloy::providers::fillers::JoinFill<
alloy::providers::fillers::GasFiller,
alloy::providers::fillers::ChainIdFiller,
>,
>,
>,
alloy::providers::RootProvider<tempo_alloy::TempoNetwork>,
tempo_alloy::TempoNetwork,
>;