use crate::common::errors::PoolError;
use crate::common::types::*;
use alloy_primitives::U256;
pub trait PoolBase {
fn on_swap(&self, swap_params: &SwapParams) -> Result<U256, PoolError>;
fn compute_invariant(
&self,
balances_live_scaled_18: &[U256],
rounding: Rounding,
) -> Result<U256, PoolError>;
fn compute_balance(
&self,
balances_live_scaled_18: &[U256],
token_in_index: usize,
invariant_ratio: &U256,
) -> Result<U256, PoolError>;
fn get_maximum_invariant_ratio(&self) -> U256;
fn get_minimum_invariant_ratio(&self) -> U256;
}