pool_sync/pools/pool_structures/
two_crypto_curve_structure.rs

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