chore: Make naming consistent: transfer_needed, approval_needed, etc
Took 46 minutes
This commit is contained in:
@@ -125,7 +125,7 @@ impl StrategyEncoder for SingleSwapStrategyEncoder {
|
||||
let swap_receiver =
|
||||
if !unwrap { solution.receiver.clone() } else { self.router_address.clone() };
|
||||
|
||||
let (mut transfer_from, mut funds_receiver, transfer) = self
|
||||
let (mut transfer_from_needed, mut token_in_receiver, transfer_needed) = self
|
||||
.transfer_optimization
|
||||
.get_transfers(grouped_swap.clone(), wrap);
|
||||
let encoding_context = EncodingContext {
|
||||
@@ -134,8 +134,8 @@ impl StrategyEncoder for SingleSwapStrategyEncoder {
|
||||
router_address: Some(self.router_address.clone()),
|
||||
group_token_in: grouped_swap.token_in.clone(),
|
||||
group_token_out: grouped_swap.token_out.clone(),
|
||||
transfer_from,
|
||||
transfer,
|
||||
transfer_from_needed,
|
||||
transfer_needed,
|
||||
};
|
||||
|
||||
let mut grouped_protocol_data: Vec<u8> = vec![];
|
||||
@@ -156,11 +156,13 @@ impl StrategyEncoder for SingleSwapStrategyEncoder {
|
||||
) {
|
||||
// The first swap is from a callback constrained protocol. This means that the in
|
||||
// transfer needs to happen at callback time and not before.
|
||||
transfer_from = false;
|
||||
funds_receiver = Address::ZERO.to_string();
|
||||
transfer_from_needed = false;
|
||||
token_in_receiver = Address::ZERO.to_string();
|
||||
}
|
||||
let funds_receiver = Address::from_str(&funds_receiver).map_err(|_| {
|
||||
EncodingError::FatalError(format!("Invalid funds receiver address: {funds_receiver}"))
|
||||
let token_in_receiver = Address::from_str(&token_in_receiver).map_err(|_| {
|
||||
EncodingError::FatalError(format!(
|
||||
"Invalid funds receiver address: {token_in_receiver}"
|
||||
))
|
||||
})?;
|
||||
let method_calldata = if let Some(permit2) = self.permit2.clone() {
|
||||
let (permit, signature) = permit2.get_permit(
|
||||
@@ -177,8 +179,8 @@ impl StrategyEncoder for SingleSwapStrategyEncoder {
|
||||
wrap,
|
||||
unwrap,
|
||||
bytes_to_address(&solution.receiver)?,
|
||||
transfer_from,
|
||||
funds_receiver,
|
||||
transfer_from_needed,
|
||||
token_in_receiver,
|
||||
permit,
|
||||
signature.as_bytes().to_vec(),
|
||||
swap_data,
|
||||
@@ -193,8 +195,8 @@ impl StrategyEncoder for SingleSwapStrategyEncoder {
|
||||
wrap,
|
||||
unwrap,
|
||||
bytes_to_address(&solution.receiver)?,
|
||||
transfer_from,
|
||||
funds_receiver,
|
||||
transfer_from_needed,
|
||||
token_in_receiver,
|
||||
swap_data,
|
||||
)
|
||||
.abi_encode()
|
||||
@@ -307,7 +309,7 @@ impl StrategyEncoder for SequentialSwapStrategyEncoder {
|
||||
NativeAction::Unwrap => unwrap = true,
|
||||
}
|
||||
}
|
||||
let (mut transfer_from, mut funds_receiver, transfer) = self
|
||||
let (mut transfer_from_needed, mut token_in_receiver, transfer_needed) = self
|
||||
.transfer_optimization
|
||||
.get_transfers(grouped_swaps[0].clone(), wrap);
|
||||
|
||||
@@ -331,7 +333,7 @@ impl StrategyEncoder for SequentialSwapStrategyEncoder {
|
||||
next_in_between_swap_optimization_allowed = next_swap_optimization;
|
||||
|
||||
let in_between_transfer = if i == 0 {
|
||||
transfer
|
||||
transfer_needed
|
||||
} else {
|
||||
self.transfer_optimization
|
||||
.get_in_between_transfer(&protocol, in_between_swap_optimization_allowed)
|
||||
@@ -342,8 +344,8 @@ impl StrategyEncoder for SequentialSwapStrategyEncoder {
|
||||
router_address: Some(self.router_address.clone()),
|
||||
group_token_in: grouped_swap.token_in.clone(),
|
||||
group_token_out: grouped_swap.token_out.clone(),
|
||||
transfer_from: if i == 0 { transfer_from } else { false },
|
||||
transfer: in_between_transfer,
|
||||
transfer_from_needed: if i == 0 { transfer_from_needed } else { false },
|
||||
transfer_needed: in_between_transfer,
|
||||
};
|
||||
|
||||
let mut grouped_protocol_data: Vec<u8> = vec![];
|
||||
@@ -369,11 +371,13 @@ impl StrategyEncoder for SequentialSwapStrategyEncoder {
|
||||
) {
|
||||
// The first swap is from a callback constrained protocol. This means that the in
|
||||
// transfer needs to happen at callback time and not before.
|
||||
transfer_from = false;
|
||||
funds_receiver = Address::ZERO.to_string();
|
||||
transfer_from_needed = false;
|
||||
token_in_receiver = Address::ZERO.to_string();
|
||||
}
|
||||
let funds_receiver = Address::from_str(&funds_receiver).map_err(|_| {
|
||||
EncodingError::FatalError(format!("Invalid funds receiver address: {funds_receiver}"))
|
||||
let token_in_receiver = Address::from_str(&token_in_receiver).map_err(|_| {
|
||||
EncodingError::FatalError(format!(
|
||||
"Invalid funds receiver address: {token_in_receiver}"
|
||||
))
|
||||
})?;
|
||||
let encoded_swaps = ple_encode(swaps);
|
||||
let method_calldata = if let Some(permit2) = self.permit2.clone() {
|
||||
@@ -391,8 +395,8 @@ impl StrategyEncoder for SequentialSwapStrategyEncoder {
|
||||
wrap,
|
||||
unwrap,
|
||||
bytes_to_address(&solution.receiver)?,
|
||||
transfer_from,
|
||||
funds_receiver,
|
||||
transfer_from_needed,
|
||||
token_in_receiver,
|
||||
permit,
|
||||
signature.as_bytes().to_vec(),
|
||||
encoded_swaps,
|
||||
@@ -407,8 +411,8 @@ impl StrategyEncoder for SequentialSwapStrategyEncoder {
|
||||
wrap,
|
||||
unwrap,
|
||||
bytes_to_address(&solution.receiver)?,
|
||||
transfer_from,
|
||||
funds_receiver,
|
||||
transfer_from_needed,
|
||||
token_in_receiver,
|
||||
encoded_swaps,
|
||||
)
|
||||
.abi_encode()
|
||||
@@ -570,7 +574,7 @@ impl StrategyEncoder for SplitSwapStrategyEncoder {
|
||||
tokens.push(solution.checked_token.clone());
|
||||
}
|
||||
|
||||
let (transfer_from, _funds_receiver, _transfer) = self
|
||||
let (transfer_from_needed, _token_in_receiver, _transfer_needed) = self
|
||||
.transfer_optimization
|
||||
.get_transfers(grouped_swaps[0].clone(), wrap);
|
||||
let mut swaps = vec![];
|
||||
@@ -589,7 +593,7 @@ impl StrategyEncoder for SplitSwapStrategyEncoder {
|
||||
} else {
|
||||
self.router_address.clone()
|
||||
};
|
||||
let transfer = self
|
||||
let transfer_needed = self
|
||||
.transfer_optimization
|
||||
.get_in_between_transfer(&protocol, false);
|
||||
let encoding_context = EncodingContext {
|
||||
@@ -598,8 +602,8 @@ impl StrategyEncoder for SplitSwapStrategyEncoder {
|
||||
router_address: Some(self.router_address.clone()),
|
||||
group_token_in: grouped_swap.token_in.clone(),
|
||||
group_token_out: grouped_swap.token_out.clone(),
|
||||
transfer_from: false,
|
||||
transfer,
|
||||
transfer_from_needed: false,
|
||||
transfer_needed,
|
||||
};
|
||||
|
||||
let mut grouped_protocol_data: Vec<u8> = vec![];
|
||||
@@ -643,7 +647,7 @@ impl StrategyEncoder for SplitSwapStrategyEncoder {
|
||||
unwrap,
|
||||
U256::from(tokens_len),
|
||||
bytes_to_address(&solution.receiver)?,
|
||||
transfer_from,
|
||||
transfer_from_needed,
|
||||
permit,
|
||||
signature.as_bytes().to_vec(),
|
||||
encoded_swaps,
|
||||
@@ -659,7 +663,7 @@ impl StrategyEncoder for SplitSwapStrategyEncoder {
|
||||
unwrap,
|
||||
U256::from(tokens_len),
|
||||
bytes_to_address(&solution.receiver)?,
|
||||
transfer_from,
|
||||
transfer_from_needed,
|
||||
encoded_swaps,
|
||||
)
|
||||
.abi_encode()
|
||||
|
||||
@@ -60,10 +60,10 @@ impl TransferOptimization {
|
||||
// Transfer from swapper to pool
|
||||
(true, swap.swaps[0].component.id.clone(), false)
|
||||
}
|
||||
// in transfer is not necessary for these protocols. Only make a transfer if the
|
||||
// tokens are not already in the router
|
||||
// in transfer is not necessary for these protocols. Only make a transfer from the swapper
|
||||
// to the router if the tokens are not already in the router
|
||||
} else if !self.token_in_already_in_router {
|
||||
// Transfer from swapper to router using permit2.
|
||||
// Transfer from swapper to router using.
|
||||
(true, self.router_address.to_string(), false)
|
||||
} else {
|
||||
(false, zero_address, false)
|
||||
|
||||
@@ -66,7 +66,7 @@ impl SwapEncoder for UniswapV2SwapEncoder {
|
||||
component_id,
|
||||
bytes_to_address(&encoding_context.receiver)?,
|
||||
zero_to_one,
|
||||
encoding_context.transfer,
|
||||
encoding_context.transfer_needed,
|
||||
);
|
||||
|
||||
Ok(args.abi_encode_packed())
|
||||
@@ -129,8 +129,8 @@ impl SwapEncoder for UniswapV3SwapEncoder {
|
||||
bytes_to_address(&encoding_context.receiver)?,
|
||||
component_id,
|
||||
zero_to_one,
|
||||
encoding_context.transfer_from,
|
||||
encoding_context.transfer,
|
||||
encoding_context.transfer_from_needed,
|
||||
encoding_context.transfer_needed,
|
||||
);
|
||||
|
||||
Ok(args.abi_encode_packed())
|
||||
@@ -207,8 +207,8 @@ impl SwapEncoder for UniswapV4SwapEncoder {
|
||||
group_token_in_address,
|
||||
group_token_out_address,
|
||||
zero_to_one,
|
||||
encoding_context.transfer_from,
|
||||
encoding_context.transfer,
|
||||
encoding_context.transfer_from_needed,
|
||||
encoding_context.transfer_needed,
|
||||
bytes_to_address(&encoding_context.receiver)?,
|
||||
pool_params,
|
||||
);
|
||||
@@ -345,8 +345,8 @@ impl SwapEncoder for EkuboSwapEncoder {
|
||||
let mut encoded = vec![];
|
||||
|
||||
if encoding_context.group_token_in == swap.token_in {
|
||||
encoded.extend((encoding_context.transfer_from as u8).to_be_bytes());
|
||||
encoded.extend((encoding_context.transfer as u8).to_be_bytes());
|
||||
encoded.extend((encoding_context.transfer_from_needed as u8).to_be_bytes());
|
||||
encoded.extend((encoding_context.transfer_needed as u8).to_be_bytes());
|
||||
encoded.extend(bytes_to_address(&encoding_context.receiver)?);
|
||||
encoded.extend(bytes_to_address(&swap.token_in)?);
|
||||
}
|
||||
@@ -621,7 +621,7 @@ impl SwapEncoder for MaverickV2SwapEncoder {
|
||||
bytes_to_address(&swap.token_in)?,
|
||||
component_id,
|
||||
bytes_to_address(&encoding_context.receiver)?,
|
||||
encoding_context.transfer,
|
||||
encoding_context.transfer_needed,
|
||||
);
|
||||
Ok(args.abi_encode_packed())
|
||||
}
|
||||
@@ -671,8 +671,8 @@ mod tests {
|
||||
router_address: Some(Bytes::zero(20)),
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = UniswapV2SwapEncoder::new(
|
||||
String::from("0x543778987b293C7E8Cf0722BB2e935ba6f4068D4"),
|
||||
@@ -731,8 +731,8 @@ mod tests {
|
||||
router_address: Some(Bytes::zero(20)),
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = UniswapV3SwapEncoder::new(
|
||||
String::from("0x543778987b293C7E8Cf0722BB2e935ba6f4068D4"),
|
||||
@@ -796,8 +796,8 @@ mod tests {
|
||||
router_address: Some(Bytes::zero(20)),
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: false,
|
||||
transfer_from: false,
|
||||
transfer_needed: false,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = BalancerV2SwapEncoder::new(
|
||||
String::from("0x543778987b293C7E8Cf0722BB2e935ba6f4068D4"),
|
||||
@@ -869,8 +869,8 @@ mod tests {
|
||||
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = UniswapV4SwapEncoder::new(
|
||||
String::from("0xF62849F9A0B5Bf2913b396098F7c7019b51A820a"),
|
||||
@@ -943,8 +943,8 @@ mod tests {
|
||||
group_token_in: group_token_in.clone(),
|
||||
// Token out is the same as the group token out
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
|
||||
let encoder = UniswapV4SwapEncoder::new(
|
||||
@@ -987,8 +987,8 @@ mod tests {
|
||||
router_address: Some(router_address.clone()),
|
||||
group_token_in: usde_address.clone(),
|
||||
group_token_out: wbtc_address.clone(),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
|
||||
// Setup - First sequence: USDE -> USDT
|
||||
@@ -1125,8 +1125,8 @@ mod tests {
|
||||
group_token_out: token_out.clone(),
|
||||
exact_out: false,
|
||||
router_address: Some(Bytes::default()),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
|
||||
let encoder =
|
||||
@@ -1174,8 +1174,8 @@ mod tests {
|
||||
group_token_out: group_token_out.clone(),
|
||||
exact_out: false,
|
||||
router_address: Some(Bytes::default()),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
|
||||
let first_swap = Swap {
|
||||
@@ -1373,8 +1373,8 @@ mod tests {
|
||||
router_address: None,
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: false,
|
||||
transfer_from: false,
|
||||
transfer_needed: false,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = CurveSwapEncoder::new(
|
||||
String::from("0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"),
|
||||
@@ -1442,8 +1442,8 @@ mod tests {
|
||||
router_address: None,
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: false,
|
||||
transfer_from: false,
|
||||
transfer_needed: false,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = CurveSwapEncoder::new(
|
||||
String::from("0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"),
|
||||
@@ -1512,8 +1512,8 @@ mod tests {
|
||||
router_address: None,
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: false,
|
||||
transfer_from: false,
|
||||
transfer_needed: false,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = CurveSwapEncoder::new(
|
||||
String::from("0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"),
|
||||
@@ -1582,8 +1582,8 @@ mod tests {
|
||||
router_address: Some(Bytes::default()),
|
||||
group_token_in: token_in.clone(),
|
||||
group_token_out: token_out.clone(),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let encoder = MaverickV2SwapEncoder::new(
|
||||
String::from("0x543778987b293C7E8Cf0722BB2e935ba6f4068D4"),
|
||||
|
||||
@@ -279,8 +279,8 @@ impl TychoExecutorEncoder {
|
||||
router_address: None,
|
||||
group_token_in: grouped_swap.token_in.clone(),
|
||||
group_token_out: grouped_swap.token_out.clone(),
|
||||
transfer: true,
|
||||
transfer_from: false,
|
||||
transfer_needed: true,
|
||||
transfer_from_needed: false,
|
||||
};
|
||||
let protocol_data = swap_encoder.encode_swap(swap.clone(), encoding_context.clone())?;
|
||||
grouped_protocol_data.extend(protocol_data);
|
||||
|
||||
Reference in New Issue
Block a user