From edbdb28958e74f5235b85eb43eff3b9304979287 Mon Sep 17 00:00:00 2001 From: Hardhat Chad Date: Fri, 6 Jun 2025 13:05:25 -0700 Subject: [PATCH] swap event --- ore/api/src/event.rs | 3 +++ ore/api/src/state/market/buy_exact_in.rs | 1 + ore/api/src/state/market/buy_exact_out.rs | 1 + ore/api/src/state/market/sell_exact_in.rs | 1 + ore/api/src/state/market/sell_exact_out.rs | 1 + ore/program/src/swap.rs | 3 ++- 6 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ore/api/src/event.rs b/ore/api/src/event.rs index b782ba4..7628a5c 100644 --- a/ore/api/src/event.rs +++ b/ore/api/src/event.rs @@ -5,6 +5,9 @@ use crate::state::SwapDirection; #[repr(C)] #[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable)] pub struct SwapEvent { + /// The block id. + pub block_id: u64, + /// Swap direction. pub direction: u64, diff --git a/ore/api/src/state/market/buy_exact_in.rs b/ore/api/src/state/market/buy_exact_in.rs index 9b25b03..4456c17 100644 --- a/ore/api/src/state/market/buy_exact_in.rs +++ b/ore/api/src/state/market/buy_exact_in.rs @@ -52,6 +52,7 @@ impl Market { // Produce swap result. let base_out = base_via_ask + base_via_curve; let swap_event = SwapEvent { + block_id: 0, direction: SwapDirection::Buy as u64, base_to_transfer: base_out as u64, quote_to_transfer: quote_in, diff --git a/ore/api/src/state/market/buy_exact_out.rs b/ore/api/src/state/market/buy_exact_out.rs index 4aee03d..eed021d 100644 --- a/ore/api/src/state/market/buy_exact_out.rs +++ b/ore/api/src/state/market/buy_exact_out.rs @@ -57,6 +57,7 @@ impl Market { // Produce swap result. let swap_event = SwapEvent { + block_id: 0, direction: SwapDirection::Buy as u64, base_to_transfer: base_out as u64, quote_to_transfer: quote_in as u64, diff --git a/ore/api/src/state/market/sell_exact_in.rs b/ore/api/src/state/market/sell_exact_in.rs index 095b338..04c2f4a 100644 --- a/ore/api/src/state/market/sell_exact_in.rs +++ b/ore/api/src/state/market/sell_exact_in.rs @@ -61,6 +61,7 @@ impl Market { // Produce swap result. let quote_out = quote_via_bid + quote_via_curve; let swap_event = SwapEvent { + block_id: 0, direction: SwapDirection::Sell as u64, base_to_transfer: base_in as u64, quote_to_transfer: quote_out as u64, diff --git a/ore/api/src/state/market/sell_exact_out.rs b/ore/api/src/state/market/sell_exact_out.rs index 4d756b8..fbdb945 100644 --- a/ore/api/src/state/market/sell_exact_out.rs +++ b/ore/api/src/state/market/sell_exact_out.rs @@ -59,6 +59,7 @@ impl Market { // Produce swap result. let swap_event = SwapEvent { + block_id: 0, direction: SwapDirection::Sell as u64, base_to_transfer: base_in as u64, quote_to_transfer: quote_out as u64, diff --git a/ore/program/src/swap.rs b/ore/program/src/swap.rs index 097adb2..38c8377 100644 --- a/ore/program/src/swap.rs +++ b/ore/program/src/swap.rs @@ -49,7 +49,8 @@ pub fn process_swap(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult token_program.is_program(&spl_token::ID)?; // Update market state. - let swap_result = market.swap(amount, direction, precision, clock)?; + let mut swap_result = market.swap(amount, direction, precision, clock)?; + swap_result.block_id = block.id; swap_result.log_return(); // Get transfer amounts and accounts.