feat: Add estimated_amount_in to Swap. Add SwapBuilder

Use SwapBuilder everywhere inside crate
Integration tests will be done later

--- don't change below this line ---
ENG-4696 Took 1 hour 56 minutes

Took 4 minutes
This commit is contained in:
Diana Carvalho
2025-08-13 18:00:46 +01:00
parent 616b588fc8
commit 5eb9973dbd
15 changed files with 647 additions and 763 deletions

View File

@@ -49,6 +49,7 @@ fn test_uniswap_v3_uniswap_v2() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_usdc = Swap {
component: ProtocolComponent {
@@ -61,6 +62,7 @@ fn test_uniswap_v3_uniswap_v2() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -130,6 +132,7 @@ fn test_uniswap_v3_uniswap_v3() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_usdc = Swap {
component: ProtocolComponent {
@@ -150,6 +153,7 @@ fn test_uniswap_v3_uniswap_v3() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -218,6 +222,7 @@ fn test_uniswap_v3_curve() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_usdt = Swap {
@@ -248,6 +253,7 @@ fn test_uniswap_v3_curve() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -308,6 +314,7 @@ fn test_balancer_v2_uniswap_v2() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_usdc = Swap {
@@ -321,6 +328,7 @@ fn test_balancer_v2_uniswap_v2() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -384,6 +392,7 @@ fn test_multi_protocol() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let balancer_swap_weth_wbtc = Swap {
@@ -397,6 +406,7 @@ fn test_multi_protocol() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let curve_swap_wbtc_usdt = Swap {
@@ -427,6 +437,7 @@ fn test_multi_protocol() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
// Ekubo
@@ -450,6 +461,7 @@ fn test_multi_protocol() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
// USV4
@@ -474,6 +486,7 @@ fn test_multi_protocol() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -547,6 +560,7 @@ fn test_uniswap_v3_balancer_v3() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_qnt = Swap {
component: ProtocolComponent {
@@ -559,6 +573,7 @@ fn test_uniswap_v3_balancer_v3() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);

View File

@@ -41,6 +41,7 @@ fn test_single_encoding_strategy_ekubo() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -94,6 +95,7 @@ fn test_single_encoding_strategy_maverick() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -159,6 +161,7 @@ fn test_single_encoding_strategy_usv4_eth_in() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -226,6 +229,7 @@ fn test_single_encoding_strategy_usv4_eth_out() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -301,6 +305,7 @@ fn test_single_encoding_strategy_usv4_grouped_swap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_eth_pepe = Swap {
@@ -315,6 +320,7 @@ fn test_single_encoding_strategy_usv4_grouped_swap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -424,6 +430,7 @@ fn test_single_encoding_strategy_curve() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -492,6 +499,7 @@ fn test_single_encoding_strategy_curve_st_eth() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -546,6 +554,7 @@ fn test_single_encoding_strategy_balancer_v3() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);

View File

@@ -38,6 +38,7 @@ fn test_sequential_swap_strategy_encoder() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_usdc = Swap {
component: ProtocolComponent {
@@ -50,6 +51,7 @@ fn test_sequential_swap_strategy_encoder() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -106,6 +108,7 @@ fn test_sequential_swap_strategy_encoder_no_permit2() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_usdc = Swap {
component: ProtocolComponent {
@@ -118,6 +121,7 @@ fn test_sequential_swap_strategy_encoder_no_permit2() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -220,6 +224,7 @@ fn test_sequential_strategy_cyclic_swap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
// WETH -> USDC (Pool 2)
@@ -243,6 +248,7 @@ fn test_sequential_strategy_cyclic_swap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -342,6 +348,7 @@ fn test_sequential_swap_strategy_encoder_unwrap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_weth = Swap {
component: ProtocolComponent {
@@ -354,6 +361,7 @@ fn test_sequential_swap_strategy_encoder_unwrap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);

View File

@@ -34,6 +34,7 @@ fn test_single_swap_strategy_encoder() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -121,6 +122,7 @@ fn test_single_swap_strategy_encoder_no_permit2() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);
@@ -204,6 +206,7 @@ fn test_single_swap_strategy_encoder_no_transfer_in() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::None);
@@ -288,6 +291,7 @@ fn test_single_swap_strategy_encoder_wrap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -341,6 +345,7 @@ fn test_single_swap_strategy_encoder_unwrap() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);

View File

@@ -43,6 +43,7 @@ fn test_split_swap_strategy_encoder() {
split: 0.5f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_weth_wbtc = Swap {
component: ProtocolComponent {
@@ -58,6 +59,7 @@ fn test_split_swap_strategy_encoder() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_dai_usdc = Swap {
component: ProtocolComponent {
@@ -70,6 +72,7 @@ fn test_split_swap_strategy_encoder() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_wbtc_usdc = Swap {
component: ProtocolComponent {
@@ -82,6 +85,7 @@ fn test_split_swap_strategy_encoder() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -149,6 +153,7 @@ fn test_split_input_cyclic_swap() {
split: 0.6f64, // 60% of input
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
// USDC -> WETH (Pool 2) - 40% of input (remaining)
@@ -172,6 +177,7 @@ fn test_split_input_cyclic_swap() {
split: 0f64,
user_data: None, // Remaining 40%
protocol_state: None,
estimated_amount_in: None,
};
// WETH -> USDC (Pool 2)
@@ -195,6 +201,7 @@ fn test_split_input_cyclic_swap() {
split: 0.0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);
@@ -316,6 +323,7 @@ fn test_split_output_cyclic_swap() {
split: 0.0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_weth_usdc_v3_pool1 = Swap {
@@ -336,6 +344,7 @@ fn test_split_output_cyclic_swap() {
split: 0.6f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_weth_usdc_v3_pool2 = Swap {
@@ -358,6 +367,7 @@ fn test_split_output_cyclic_swap() {
split: 0.0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFromPermit2);

View File

@@ -52,6 +52,7 @@ fn test_sequential_swap_usx() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let swap_usdc_usdt = Swap {
component: ProtocolComponent {
@@ -70,6 +71,7 @@ fn test_sequential_swap_usx() {
split: 0f64,
user_data: None,
protocol_state: None,
estimated_amount_in: None,
};
let encoder = get_tycho_router_encoder(UserTransferType::TransferFrom);