From 4adca18628cb693fa4806dfd005e636dc24c36b0 Mon Sep 17 00:00:00 2001 From: Erwan Or Date: Tue, 28 Jan 2025 15:10:39 -0500 Subject: [PATCH] dex(volume_tracker): stub out cumvol tracking --- .../position_manager/volume_tracker.rs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 crates/core/component/dex/src/component/position_manager/volume_tracker.rs diff --git a/crates/core/component/dex/src/component/position_manager/volume_tracker.rs b/crates/core/component/dex/src/component/position_manager/volume_tracker.rs new file mode 100644 index 0000000000..96c1779ffd --- /dev/null +++ b/crates/core/component/dex/src/component/position_manager/volume_tracker.rs @@ -0,0 +1,40 @@ +use anyhow::Result; +use cnidarium::StateWrite; +use penumbra_sdk_num::Amount; +use position::State::*; +use tracing::instrument; + +use crate::lp::position::{self, Position}; +use crate::state_key::engine; +use crate::DirectedTradingPair; +use async_trait::async_trait; +use penumbra_sdk_proto::{StateReadProto, StateWriteProto}; + +#[async_trait] +pub(crate) trait PositionVolumeTracker: StateWrite { + async fn increase_volume_index( + &mut self, + id: &position::Id, + prev_state: &Option, + new_state: &Position, + ) -> Result<()> { + unimplemented!("increase_volume_index") + } +} + +impl PositionVolumeTracker for T {} + +trait Inner: StateWrite { + #[instrument(skip(self))] + async fn update_volume( + &mut self, + id: &position::Id, + pair: DirectedTradingPair, + old_volume: Amount, + new_volume: Amount, + ) -> Result<()> { + Ok(()) + } +} + +impl Inner for T {}