Solana Raydium CPMM Swap
unknown
rust
14 days ago
1.4 kB
8
Indexable
impl From<&RaydiumCpmmSwapEvent> for TradeEventOutput { fn from(event: &RaydiumCpmmSwapEvent) -> Self { // pub input_token_mint: Pubkey, // 输入代币的铸币地址 // pub output_token_mint: Pubkey, // 输出代币的铸币地址 const SOL_MINT: &str = "So11111111111111111111111111111111111111112"; let is_buy = event.input_token_mint.to_string() == SOL_MINT; let (sol_amount, token_amount, token_mint, trade_type) = if is_buy { ( event.amount_in as f64, // sol_amount event.amount_out as f64, // token_amount event.output_token_mint.to_string(), // token_mint "buy".to_string() ) } else { ( event.amount_out as f64, // sol_amount event.amount_in as f64, // token_amount event.input_token_mint.to_string(), // token_mint "sell".to_string() ) }; TradeEventOutput { signature: event.metadata.signature.clone(), block_time: event.metadata.program_received_time_ms / 1000, slot: event.metadata.slot, wallet_address: event.payer.to_string(), actions: vec![TradeAction { trade_type, sol_amount, token_amount, token_mint, }], platform: "raydium_cpmm".to_string(), } } }
Editor is loading...
Leave a Comment