pool_sync/pools/pool_structures/
maverick_structure.rs

1use alloy::{dyn_abi::DynSolValue, primitives::Address};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize, Default)]
5pub struct MaverickPool {
6    pub address: Address,
7    pub token0: Address,
8    pub token1: Address,
9    pub token0_name: String,
10    pub token1_name: String,
11    pub token0_decimals: u8,
12    pub token1_decimals: u8,
13}
14
15impl From<&[DynSolValue]> for MaverickPool {
16    fn from(data: &[DynSolValue]) -> Self {
17        Self {
18            address: data[0].as_address().unwrap(),
19            token0: data[1].as_address().unwrap(),
20            token1: data[2].as_address().unwrap(),
21            token0_decimals: data[3].as_uint().unwrap().0.to::<u8>(),
22            token1_decimals: data[4].as_uint().unwrap().0.to::<u8>(),
23            ..Default::default()
24        }
25    }
26}