lightcone 0.5.2

Rust SDK for the Lightcone Protocol — unified native + WASM client
Documentation
mod common;

use common::{market, rest_client, ExampleResult};

#[tokio::main]
async fn main() -> ExampleResult {
    let client = rest_client()?;

    let featured = client.markets().featured().await?;
    println!("featured markets: {}", featured.len());
    if let Some(first) = featured.first() {
        println!("featured: {} ({})", first.market_name, first.slug);
    }

    let page = client.markets().get(None, Some(5)).await?;
    println!(
        "paginated listing: {} markets, {} validation errors",
        page.markets.len(),
        page.validation_errors.len()
    );

    let market = market(&client).await?;
    println!("by slug: {} -> {}", market.slug, market.pubkey);
    println!(
        "by pubkey: {}",
        client
            .markets()
            .get_by_pubkey(market.pubkey.as_str())
            .await?
            .name
    );

    let query = market
        .name
        .split_whitespace()
        .find(|word| word.len() > 3)
        .unwrap_or("market")
        .to_string();
    let results = client.markets().search(&query, Some(5)).await?;
    println!("search '{query}': {} result(s)", results.len());
    for result in &results {
        println!("  - {}", result.slug);
    }
    Ok(())
}