pub trait AdapterTrait {
fn initialize(
e: Env,
protocol_id: String,
protocol_address: Address,
) -> Result<(), AdapterError>;
/// Swaps an exact amount of input tokens for as many output tokens as possible,
/// along the route given by `path`.
fn swap_exact_tokens_for_tokens(
env: Env,
amount_in: i128,
amount_out_min: i128,
path: Vec<Address>,
to: Address,
deadline: u64,
bytes: Option<Vec<BytesN<32>>>,
) -> Result<Vec<i128>, AdapterError>;
/// Swaps as few input tokens as possible for an exact amount of output token.
fn swap_tokens_for_exact_tokens(
e: Env,
amount_out: i128,
amount_in_max: i128,
path: Vec<Address>,
to: Address,
deadline: u64,
bytes: Option<Vec<BytesN<32>>>,
) -> Result<Vec<i128>, AdapterError>;
/* *** Read only functions: *** */
fn get_protocol_id(e: &Env) -> Result<String, AdapterError>;
fn get_protocol_address(e: &Env) -> Result<Address, AdapterError>;
}