diff --git a/api/src/event.rs b/api/src/event.rs index 7628a5c..c97692d 100644 --- a/api/src/event.rs +++ b/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 authority of the swap. + pub authority: [u8; 32], + /// The block id. pub block_id: u64, diff --git a/api/src/state/market/buy_exact_in.rs b/api/src/state/market/buy_exact_in.rs index 4456c17..d2c878a 100644 --- a/api/src/state/market/buy_exact_in.rs +++ b/api/src/state/market/buy_exact_in.rs @@ -1,3 +1,5 @@ +use steel::Pubkey; + use crate::error::OreError; use super::{Market, SwapDirection, TokenType, VirtualLimitOrder}; @@ -52,6 +54,7 @@ impl Market { // Produce swap result. let base_out = base_via_ask + base_via_curve; let swap_event = SwapEvent { + authority: [0; 32], block_id: 0, direction: SwapDirection::Buy as u64, base_to_transfer: base_out as u64, diff --git a/api/src/state/market/buy_exact_out.rs b/api/src/state/market/buy_exact_out.rs index eed021d..4414aff 100644 --- a/api/src/state/market/buy_exact_out.rs +++ b/api/src/state/market/buy_exact_out.rs @@ -57,6 +57,7 @@ impl Market { // Produce swap result. let swap_event = SwapEvent { + authority: [0; 32], block_id: 0, direction: SwapDirection::Buy as u64, base_to_transfer: base_out as u64, diff --git a/api/src/state/market/sell_exact_in.rs b/api/src/state/market/sell_exact_in.rs index 04c2f4a..70447de 100644 --- a/api/src/state/market/sell_exact_in.rs +++ b/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 { + authority: [0; 32], block_id: 0, direction: SwapDirection::Sell as u64, base_to_transfer: base_in as u64, diff --git a/api/src/state/market/sell_exact_out.rs b/api/src/state/market/sell_exact_out.rs index fbdb945..e947641 100644 --- a/api/src/state/market/sell_exact_out.rs +++ b/api/src/state/market/sell_exact_out.rs @@ -59,6 +59,7 @@ impl Market { // Produce swap result. let swap_event = SwapEvent { + authority: [0; 32], block_id: 0, direction: SwapDirection::Sell as u64, base_to_transfer: base_in as u64, diff --git a/program/src/swap.rs b/program/src/swap.rs index 4c73059..a1a0a9b 100644 --- a/program/src/swap.rs +++ b/program/src/swap.rs @@ -100,6 +100,7 @@ pub fn process_swap(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult // Update market state. let mut swap_result = market.swap(amount, direction, precision, clock)?; + swap_result.authority = signer_info.key.to_bytes(); swap_result.block_id = block.id; swap_result.log_return();