Skip to main content

Crate lunar_lander_quic_client

Crate lunar_lander_quic_client 

Source
Expand description

Official Rust QUIC client for Hello Moon Lunar Lander.

lunar-lander-quic-client is intentionally narrow:

  • connect to a Lunar Lander QUIC endpoint
  • generate the client certificate in code from your API key
  • send one serialized Solana transaction payload per uni stream

It does not perform simulation, preflight, or transaction construction.

§What This Crate Does

Use this crate when you already have serialized transaction bytes and want to submit them over Lunar Lander’s QUIC ingress path with a small, focused client.

The client:

  • opens one QUIC connection and reuses it across many sends
  • generates a self-signed client certificate in code from your API key
  • writes each transaction payload to its own uni stream

§What This Crate Does Not Do

This crate intentionally does not:

  • build or sign transactions
  • wrap HTTP submission APIs
  • provide JSON-RPC helpers
  • simulate or preflight transactions

§Example

use lunar_lander_quic_client::LunarLanderQuicClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("LUNAR_LANDER_API_KEY")?;
    let client = LunarLanderQuicClient::connect(
        "fra.lunar-lander.hellomoon.io:16888",
        api_key,
    )
    .await?;

    let tx_bytes = create_signed_transaction_somewhere()?;
    client.send_transaction(&tx_bytes).await?;
    Ok(())
}

fn create_signed_transaction_somewhere() -> Result<Vec<u8>, Box<dyn std::error::Error>> {
    unimplemented!("build and serialize a signed Solana transaction")
}

§MEV Protection

Enable MEV protection by setting mev_protect: true in ClientOptions:

use lunar_lander_quic_client::{ClientOptions, LunarLanderQuicClient};

let client = LunarLanderQuicClient::connect_with_options(
    "fra.lunar-lander.hellomoon.io:16888",
    std::env::var("LUNAR_LANDER_API_KEY")?,
    ClientOptions {
        mev_protect: true,
        ..ClientOptions::default()
    },
)
.await?;

Structs§

ClientOptions
Connection-level tuning for LunarLanderQuicClient.
LunarLanderQuicClient
Connected Lunar Lander QUIC client.

Enums§

ClientError
Error type returned by the client library.
ConnectionHealth
Reported reconnect state for a LunarLanderQuicClient.

Constants§

DEFAULT_PORT
Default UDP port for Lunar Lander QUIC ingress.
LUNAR_LANDER_TPU_PROTOCOL_ID
ALPN identifier used by the Lunar Lander QUIC endpoint.
MAX_WIRE_TX_BYTES
Maximum serialized Solana transaction size accepted on the QUIC path.

Type Aliases§

Result