diff --git a/foundry/test/TychoRouter.t.sol b/foundry/test/TychoRouter.t.sol index 718e4b5..129e903 100644 --- a/foundry/test/TychoRouter.t.sol +++ b/foundry/test/TychoRouter.t.sol @@ -1389,7 +1389,6 @@ contract TychoRouterTest is TychoRouterTestSetup { vm.stopPrank(); } - function testCyclicSwapUnwrapOutputIntegration() public { vm.deal(tychoRouterAddr, 1 ether); diff --git a/src/encoding/evm/strategy_encoder/strategy_encoders.rs b/src/encoding/evm/strategy_encoder/strategy_encoders.rs index 1c1fca7..988af9a 100644 --- a/src/encoding/evm/strategy_encoder/strategy_encoders.rs +++ b/src/encoding/evm/strategy_encoder/strategy_encoders.rs @@ -1299,7 +1299,12 @@ mod tests { .encode_strategy(solution) .unwrap(); - println!("{}", hex::encode(&calldata)); + let hex_calldata = encode(&calldata); + let encoded_swap_header = "d499aa880000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000005f4308e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000cd09f75e2bf2a4d11f3ab23f1389fcc1621c0cc2".to_string(); + let encoded_swaps = "00000000000000000000000000000000000000000000000000000000000000de006d0001000000dd8559c917393fc8dd2b4dd289c52ff445fde1b0a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f43ede3eca2a72b3aecc820e955b36f38437d0139588e6a0c2ddd26feeb64f039a2c41296fcb3f564001006d0100000000dd8559c917393fc8dd2b4dd289c52ff445fde1b0c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000bb83ede3eca2a72b3aecc820e955b36f38437d013958ad599c3a0ff1de082011efddc58f1908eb6e6d8000000".to_string(); + assert_eq!(hex_calldata[..520], encoded_swap_header); + assert_eq!(hex_calldata[1288..], encoded_swaps); + println!("{}", hex_calldata); } #[test] @@ -1410,7 +1415,12 @@ mod tests { .encode_strategy(solution) .unwrap(); - println!("{}", hex::encode(&calldata)); + let hex_calldata = hex::encode(&calldata); + let encoded_swap_header = "d499aa880000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000005ef619b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000cd09f75e2bf2a4d11f3ab23f1389fcc1621c0cc2".to_string(); + let encoded_swaps = "0000000000000000000000000000000000000000000000000000000000000136006d0001999999dd8559c917393fc8dd2b4dd289c52ff445fde1b0a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20001f43ede3eca2a72b3aecc820e955b36f38437d0139588e6a0c2ddd26feeb64f039a2c41296fcb3f564001006d0001000000dd8559c917393fc8dd2b4dd289c52ff445fde1b0a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000bb83ede3eca2a72b3aecc820e955b36f38437d013958ad599c3a0ff1de082011efddc58f1908eb6e6d80100560100000000f6c5be66fff9dc69962d73da0a617a827c382329c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2b4e16d0168e52d35cacd2c6185b44281ec28c9dc3ede3eca2a72b3aecc820e955b36f38437d013950000000000000000000000".to_string(); + assert_eq!(hex_calldata[..520], encoded_swap_header); + assert_eq!(hex_calldata[1288..], encoded_swaps); + println!("{}", hex_calldata); } #[test] @@ -1517,7 +1527,12 @@ mod tests { .encode_strategy(solution) .unwrap(); - println!("{}", hex::encode(&calldata)); + let hex_calldata = hex::encode(&calldata); + let encoded_swap_header = "d499aa880000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000005eea514000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000cd09f75e2bf2a4d11f3ab23f1389fcc1621c0cc2".to_string(); + let encoded_swaps = "000000000000000000000000000000000000000000000000000000000000013600560001000000f6c5be66fff9dc69962d73da0a617a827c382329a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48b4e16d0168e52d35cacd2c6185b44281ec28c9dc3ede3eca2a72b3aecc820e955b36f38437d0139501006d0100999999dd8559c917393fc8dd2b4dd289c52ff445fde1b0c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480001f43ede3eca2a72b3aecc820e955b36f38437d0139588e6a0c2ddd26feeb64f039a2c41296fcb3f564000006d0100000000dd8559c917393fc8dd2b4dd289c52ff445fde1b0c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000bb83ede3eca2a72b3aecc820e955b36f38437d013958ad599c3a0ff1de082011efddc58f1908eb6e6d80000000000000000000000".to_string(); + assert_eq!(hex_calldata[..520], encoded_swap_header); + assert_eq!(hex_calldata[1288..], encoded_swaps); + println!("{}", hex_calldata); } #[test] @@ -1598,13 +1613,18 @@ mod tests { sender: Bytes::from_str("0xcd09f75E2BF2A4d11F3AB23f1389FcC1621c0cc2").unwrap(), receiver: Bytes::from_str("0xcd09f75E2BF2A4d11F3AB23f1389FcC1621c0cc2").unwrap(), native_action: Some(NativeAction::Unwrap), - ..Default::default() }; let (calldata, _) = encoder .encode_strategy(solution) .unwrap(); - println!("{}", hex::encode(&calldata)); + let hex_calldata = hex::encode(&calldata); + + let expected_input_swap_header = "d499aa880000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dc86dafa1b2b3e3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000cd09f75e2bf2a4d11f3ab23f1389fcc1621c0cc2".to_string(); + let expected_input_swaps = "00000000000000000000000000000000000000000000000000000000000000e100700001000000042c0ebbeab9d9987c2f64ee05f2b3aeb86eaf7000000000000000000000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c59901042c0ebbeab9d9987c2f64ee05f2b3aeb86eaf702260fac5e5542a773aa44fbcfedf7c193bc2c599000bb800003c006d0102000000dd8559c917393fc8dd2b4dd289c52ff445fde1b02260fac5e5542a773aa44fbcfedf7c193bc2c599c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000bb83ede3eca2a72b3aecc820e955b36f38437d01395cbcdf9626bc03e24f779434178a73a0b4bad62ed0100000000000000000000000000000000000000000000000000000000000000".to_string(); + assert_eq!(hex_calldata[..520], expected_input_swap_header); + assert_eq!(hex_calldata[1288..], expected_input_swaps); + println!("{}", hex_calldata); } }