kabu_execution_multicaller/pool_abi_encoder/
mod.rs1use alloy_primitives::{Address, Bytes, U256};
2use kabu_types_entities::Pool;
3
4pub use abi_encoder::*;
5mod abi_encoder;
6
7mod pools;
8
9pub trait ProtocolAbiSwapEncoderTrait: Send + Sync + 'static {
10 fn encode_swap_in_amount_provided(
11 &self,
12 pool: &dyn Pool,
13 token_from_address: Address,
14 token_to_address: Address,
15 amount: U256,
16 recipient: Address,
17 payload: Bytes,
18 ) -> eyre::Result<Bytes>;
19
20 fn encode_swap_out_amount_provided(
21 &self,
22 pool: &dyn Pool,
23 token_from_address: Address,
24 token_to_address: Address,
25 amount: U256,
26 recipient: Address,
27 payload: Bytes,
28 ) -> eyre::Result<Bytes>;
29
30 fn swap_in_amount_offset(&self, pool: &dyn Pool, token_from_address: Address, token_to_address: Address) -> Option<u32>;
31
32 fn swap_out_amount_offset(&self, pool: &dyn Pool, token_from_address: Address, token_to_address: Address) -> Option<u32>;
33
34 fn swap_out_amount_return_offset(&self, pool: &dyn Pool, token_from_address: Address, token_to_address: Address) -> Option<u32>;
35
36 fn swap_in_amount_return_offset(&self, pool: &dyn Pool, token_from_address: Address, token_to_address: Address) -> Option<u32>;
37
38 fn swap_out_amount_return_script(&self, pool: &dyn Pool, token_from_address: Address, token_to_address: Address) -> Option<Bytes>;
39
40 fn swap_in_amount_return_script(&self, pool: &dyn Pool, token_from_address: Address, token_to_address: Address) -> Option<Bytes>;
41}