Skip to main content

Installation

Cargo.toml
[dependencies]
sw4p-bridge = "0.1"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }

Basic Usage

use sw4p_bridge::Sw4pBridge;

let bridge = Sw4pBridge::new("sk_...");

Core Methods

transfer()

let result = bridge.transfer(TransferParams {
    from: Chain::Base,
    to: Chain::Solana,
    amount: "100.00".into(),
    recipient: "5abc123...".into(),
    permit: Some(permit),
    ..Default::default()
}).await?;

estimate_fee()

let estimate = bridge.estimate_fee(
    Chain::Base,
    Chain::Solana,
    "100.00"
).await?;

get_status()

let status = bridge.get_status("int_abc123").await?;

match status.status {
    TransferStatus::Complete => println!("Done!"),
    TransferStatus::Failed => println!("Failed"),
    _ => println!("In progress..."),
}

Solana Helpers

build_solana_transfer()

let tx_data = bridge.build_solana_transfer(SolanaBuildParams {
    to: Chain::Base,
    amount: "100.00".into(),
    from_wallet: "5abc123...".into(),
    recipient: "0x...".into(),
    ..Default::default()
}).await?;

Error Handling

use sw4p_bridge::Error;

match bridge.transfer(params).await {
    Ok(result) => println!("Success: {}", result.intent_id),
    Err(Error::Auth(msg)) => eprintln!("Auth failed: {}", msg),
    Err(Error::RateLimit { retry_after_ms }) => {
        println!("Rate limited, retry in {}ms", retry_after_ms);
    }
    Err(e) => eprintln!("Error: {}", e),
}