jito-bundle 0.1.5

Rust client for Jito bundle
Documentation
use crate::common;
use jito_bundle::config::network::Network;
use solana_sdk::signature::Keypair;
use solana_sdk::signer::Signer;

#[test]
fn build_memo_slots_caps_at_five() {
    let payer = Keypair::new().pubkey();
    let messages = ["m1", "m2", "m3", "m4", "m5", "m6"];
    let slots = common::build_memo_slots(&payer, &messages);

    let populated_count = slots.iter().filter(|slot| slot.is_some()).count();
    assert_eq!(populated_count, 5, "expected at most 5 populated slots");
}

#[test]
fn build_jito_config_derives_custom_urls() {
    let env = common::TestEnv {
        keypair: Keypair::new(),
        rpc_url: "https://rpc.example.com".to_string(),
        helius_url: None,
        jito_block_engine_url: Some("https://proxy.example.com".to_string()),
        jito_uuid: None,
        jitodontfront_pubkey: None,
        tip_lamports: 100_000,
    };

    let config = common::build_jito_config(&env);
    match config.network {
        Network::Custom {
            block_engine_url,
            tip_floor_url,
        } => {
            assert_eq!(block_engine_url, "https://proxy.example.com/api/v1/bundles");
            assert_eq!(tip_floor_url, "https://proxy.example.com/tip_floor");
        }
        Network::Mainnet => panic!("expected custom network"),
    }
}