use alloc::string::String;
#[cfg(feature = "tonic")]
use core::time::Duration;
#[cfg(feature = "tonic")]
pub use crate::RemoteTransactionProver;
pub const MAINNET_PROVER_ENDPOINT: &str = "https://tx-prover.mainnet.miden.io";
pub const TESTNET_PROVER_ENDPOINT: &str = "https://tx-prover.testnet.miden.io";
pub const DEVNET_PROVER_ENDPOINT: &str = "https://tx-prover.devnet.miden.io";
pub const DEFAULT_GRPC_TIMEOUT_MS: u64 = 10_000;
pub struct NoteTransportConfig {
pub endpoint: String,
pub timeout_ms: u64,
}
#[cfg(feature = "tonic")]
pub(crate) fn extract_retry_after(status: &tonic::Status) -> Option<Duration> {
status
.metadata()
.get("retry-after")
.and_then(|v| v.to_str().ok())
.and_then(|s| s.parse::<u64>().ok())
.map(Duration::from_secs)
}
#[cfg(all(feature = "tonic", not(target_arch = "wasm32")))]
pub(crate) async fn async_sleep(duration: Duration) {
tokio::time::sleep(duration).await;
}
#[cfg(all(feature = "tonic", target_arch = "wasm32"))]
pub(crate) async fn async_sleep(duration: Duration) {
gloo_timers::future::sleep(duration).await;
}