Rust

Complete examples for integrating Turnpike API with Rust.

Dependencies

Add to Cargo.toml:

[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
solana-client = "1.16"
solana-sdk = "1.16"
base64 = "0.21"
anyhow = "1.0"

Lightning API Examples

Execute Buy Trade

use reqwest::Client;
use serde::{Deserialize, Serialize};
use std::env;

#[derive(Serialize)]
struct BuyTradeRequest {
    #[serde(rename = "publicKey")]
    public_key: String,
    mint: String,
    amount: f64,
    slippage: f64,
    #[serde(rename = "priorityFee")]
    priority_fee: f64,
}

#[derive(Deserialize, Debug)]
struct BuyTradeResponse {
    success: bool,
    signature: String,
    #[serde(rename = "tokensReceived")]
    tokens_received: u64,
    #[serde(rename = "effectivePrice")]
    effective_price: f64,
}

async fn execute_buy_trade(
    public_key: &str,
    mint: &str,
    amount: f64,
) -> Result<BuyTradeResponse, Box<dyn std::error::Error>> {
    let client = Client::new();
    let api_key = env::var("TURNPIKE_API_KEY")?;

    let request = BuyTradeRequest {
        public_key: public_key.to_string(),
        mint: mint.to_string(),
        amount,
        slippage: 10.0,
        priority_fee: 0.0001,
    };

    let response = client
        .post("https://api.turnpike.dev/trade/buy")
        .header("Content-Type", "application/json")
        .header("Authorization", format!("Bearer {}", api_key))
        .json(&request)
        .send()
        .await?;

    let data: BuyTradeResponse = response.json().await?;

    println!("Trade successful!");
    println!("Signature: {}", data.signature);
    println!("Tokens received: {}", data.tokens_received);
    println!("Effective price: {}", data.effective_price);

    Ok(data)
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let result = execute_buy_trade(
        "YOUR_WALLET_PUBLIC_KEY",
        "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        0.01,
    )
    .await?;

    println!("Result: {:?}", result);

    Ok(())
}

Get Token Information

Get Portfolio

Local Transaction API Examples

Build and Sign Transaction

WebSocket Examples

Basic WebSocket Connection

Add to Cargo.toml:

Complete Trading Bot Example

Error Handling Example

Last updated