pool_sync/pools/pool_structures/
two_crypto_curve_structure.rs1use 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