solana_central/
lib.rs

1//! # Solana Central Rust Library
2//!
3//! Provides utilities, types, and DEX protocol-specific implementations
4//!
5//! Currently supported DEXs: Meteora Dammv2, Dbc, Ammv1 (Old), Raydium Cpmm, AmmV4, Launchpad,
6//! Pumpswap, Pumpfun Bonding Curve
7//!
8//! This library also provides:
9//! - A shared context (`CentralContext`) for managing DEX liquidity pools for trading pairs, RPC
10//! clients, blockchain state, etc.
11//! - Protocol-specific pool parsing and raw on-chain account data decoding utilities. Every
12//! protocol type has an accessible `from_account_info` method that can be used from raw on chain
13//! account data.
14//! - Common types and traits for abstractions with liquidity pool fees, liquidity, etc.
15//!
16//! Environment variables required:
17//! - RPC_NODE_URL: URL of the Solana JSON RPC node to use for on-chain data fetching
18
19mod central_context;
20pub mod constants;
21mod meteora;
22pub mod protocol_idls;
23mod pumpfun;
24mod pumpswap;
25mod raydium;
26mod types;
27mod utilities;
28
29// Re-exports
30pub use central_context::central_context::CentralContext;
31pub use meteora::get_meteora_vault_from_token_address::get_meteora_vault_from_token_address;
32pub use pumpfun::derive_bonding_curve::derive_bonding_curve;
33pub use raydium::get_cpmm_fee_amount_from_config_account::get_cpmm_fee_amount_from_config_account;
34pub use types::instruction::Instruction;
35pub use types::link::Link;
36pub use types::market_update::MarketUpdate;
37pub use types::meteora_amm_pool::MeteoraAmmPool;
38pub use types::meteora_dammv2_pool::MeteoraDammV2Pool;
39pub use types::meteora_dbc::MeteoraDbc;
40pub use types::meteora_vault::MeteoraVault;
41pub use types::pf_bonding_curve::PfBondingCurve;
42pub use types::pool::{Pool, PoolTrait};
43pub use types::pools::Pools;
44pub use types::pumpswap_pool::PumpswapPool;
45pub use types::raydium_ammv4_pool::RaydiumAmmV4Pool;
46pub use types::raydium_cpmm_pool::RaydiumCpmmPool;
47pub use types::raydium_launchpad::RaydiumLaunchpad;
48pub use types::swap_direction::SwapDirection;
49pub use types::swap_tx::SwapTx;
50pub use types::token_creation::TokenCreation;
51pub use utilities::is_legit_token::is_legit_token;
52pub use utilities::load_pools::load_pools;
53pub use utilities::process_get_program_accounts_pool::process_get_program_accounts_pool;