PoolBase

Trait PoolBase 

Source
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§

Source

fn on_swap(&self, swap_params: &SwapParams) -> Result<U256, PoolError>

Perform swap operation

Source

fn compute_invariant( &self, balances_live_scaled_18: &[U256], rounding: Rounding, ) -> Result<U256, PoolError>

Compute invariant

Source

fn compute_balance( &self, balances_live_scaled_18: &[U256], token_in_index: usize, invariant_ratio: &U256, ) -> Result<U256, PoolError>

Compute balance

Source

fn get_maximum_invariant_ratio(&self) -> U256

Get maximum invariant ratio

Source

fn get_minimum_invariant_ratio(&self) -> U256

Get minimum invariant ratio

Implementors§