miden_client/grpc_support/
mod.rs1use alloc::string::String;
2#[cfg(feature = "tonic")]
3use core::time::Duration;
4
5#[cfg(feature = "tonic")]
6pub use crate::RemoteTransactionProver;
7
8pub const MAINNET_PROVER_ENDPOINT: &str = "https://tx-prover.mainnet.miden.io";
10
11pub const TESTNET_PROVER_ENDPOINT: &str = "https://tx-prover.testnet.miden.io";
13
14pub const DEVNET_PROVER_ENDPOINT: &str = "https://tx-prover.devnet.miden.io";
16
17pub const DEFAULT_GRPC_TIMEOUT_MS: u64 = 10_000;
19
20pub struct NoteTransportConfig {
25 pub endpoint: String,
26 pub timeout_ms: u64,
27}
28
29#[cfg(feature = "tonic")]
34pub(crate) fn extract_retry_after(status: &tonic::Status) -> Option<Duration> {
35 status
36 .metadata()
37 .get("retry-after")
38 .and_then(|v| v.to_str().ok())
39 .and_then(|s| s.parse::<u64>().ok())
40 .map(Duration::from_secs)
41}
42
43#[cfg(all(feature = "tonic", not(target_arch = "wasm32")))]
44pub(crate) async fn async_sleep(duration: Duration) {
45 tokio::time::sleep(duration).await;
46}
47
48#[cfg(all(feature = "tonic", target_arch = "wasm32"))]
50pub(crate) async fn async_sleep(duration: Duration) {
51 gloo_timers::future::sleep(duration).await;
52}