pub trait PoolBase {
// Required methods
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;
}Expand description
Trait for pool implementations (matches TypeScript PoolBase interface and Python PoolBase abstract class)
Required Methods§
Sourcefn compute_invariant(
&self,
balances_live_scaled_18: &[U256],
rounding: Rounding,
) -> Result<U256, PoolError>
fn compute_invariant( &self, balances_live_scaled_18: &[U256], rounding: Rounding, ) -> Result<U256, PoolError>
Compute invariant
Sourcefn compute_balance(
&self,
balances_live_scaled_18: &[U256],
token_in_index: usize,
invariant_ratio: &U256,
) -> Result<U256, PoolError>
fn compute_balance( &self, balances_live_scaled_18: &[U256], token_in_index: usize, invariant_ratio: &U256, ) -> Result<U256, PoolError>
Compute balance
Sourcefn get_maximum_invariant_ratio(&self) -> U256
fn get_maximum_invariant_ratio(&self) -> U256
Get maximum invariant ratio
Sourcefn get_minimum_invariant_ratio(&self) -> U256
fn get_minimum_invariant_ratio(&self) -> U256
Get minimum invariant ratio