balancer_maths_rust/pools/reclamm/
reclamm_data.rs1use crate::common::types::BasePoolState;
2use alloy_primitives::U256;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
7pub struct ReClammMutable {
8 #[serde(rename = "lastVirtualBalances")]
9 pub last_virtual_balances: Vec<U256>,
10 #[serde(rename = "dailyPriceShiftBase")]
11 pub daily_price_shift_base: U256,
12 #[serde(rename = "lastTimestamp")]
13 pub last_timestamp: U256,
14 #[serde(rename = "currentTimestamp")]
15 pub current_timestamp: U256,
16 #[serde(rename = "centerednessMargin")]
17 pub centeredness_margin: U256,
18 #[serde(rename = "startFourthRootPriceRatio")]
19 pub start_fourth_root_price_ratio: U256,
20 #[serde(rename = "endFourthRootPriceRatio")]
21 pub end_fourth_root_price_ratio: U256,
22 #[serde(rename = "priceRatioUpdateStartTime")]
23 pub price_ratio_update_start_time: U256,
24 #[serde(rename = "priceRatioUpdateEndTime")]
25 pub price_ratio_update_end_time: U256,
26}
27
28#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
30pub struct ReClammImmutable {
31 pub pool_address: String,
32 pub tokens: Vec<String>,
33}
34
35#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
37pub struct ReClammState {
38 pub base: BasePoolState,
39 pub mutable: ReClammMutable,
40 pub immutable: ReClammImmutable,
41}
42
43impl From<ReClammState> for crate::common::types::PoolState {
44 fn from(state: ReClammState) -> Self {
45 crate::common::types::PoolState::ReClamm(state)
46 }
47}