pub trait Exchange<A, B> {
// Required methods
fn mul_floor(&self, rate: &Rate<B, A>) -> AmountU128<B>;
fn mul_ceil(&self, rate: &Rate<B, A>) -> AmountU128<B>;
fn div_floor(&self, rate: &Rate<A, B>) -> AmountU128<B>;
fn div_ceil(&self, rate: &Rate<A, B>) -> AmountU128<B>;
}