From bab30e3958ee62091b322ac0bc540939c050ee9e Mon Sep 17 00:00:00 2001 From: zach Date: Fri, 11 Apr 2025 08:43:03 +0800 Subject: [PATCH] fix: add maverick for build --- src/encoding/evm/swap_encoder/builder.rs | 9 +++++++-- .../evm/swap_encoder/swap_encoders.rs | 20 ++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/encoding/evm/swap_encoder/builder.rs b/src/encoding/evm/swap_encoder/builder.rs index bbe2c2d..735029c 100644 --- a/src/encoding/evm/swap_encoder/builder.rs +++ b/src/encoding/evm/swap_encoder/builder.rs @@ -3,8 +3,8 @@ use std::collections::HashMap; use crate::encoding::{ errors::EncodingError, evm::swap_encoder::swap_encoders::{ - BalancerV2SwapEncoder, CurveSwapEncoder, EkuboSwapEncoder, UniswapV2SwapEncoder, - UniswapV3SwapEncoder, UniswapV4SwapEncoder, + BalancerV2SwapEncoder, CurveSwapEncoder, EkuboSwapEncoder, MaverickV2SwapEncoder, + UniswapV2SwapEncoder, UniswapV3SwapEncoder, UniswapV4SwapEncoder, }, models::Chain, swap_encoder::SwapEncoder, @@ -76,6 +76,11 @@ impl SwapEncoderBuilder { "vm:curve" => { Ok(Box::new(CurveSwapEncoder::new(self.executor_address, self.chain, self.config)?)) } + "vm::maverick_v2" => Ok(Box::new(MaverickV2SwapEncoder::new( + self.executor_address, + self.chain, + self.config, + )?)), _ => Err(EncodingError::FatalError(format!( "Unknown protocol system: {}", self.protocol_system diff --git a/src/encoding/evm/swap_encoder/swap_encoders.rs b/src/encoding/evm/swap_encoder/swap_encoders.rs index 370f638..b38a3cf 100644 --- a/src/encoding/evm/swap_encoder/swap_encoders.rs +++ b/src/encoding/evm/swap_encoder/swap_encoders.rs @@ -570,9 +570,14 @@ pub struct MaverickV2SwapEncoder { } impl SwapEncoder for MaverickV2SwapEncoder { - fn new(executor_address: String) -> Self { - Self { executor_address } + fn new( + executor_address: String, + _chain: Chain, + _config: Option>, + ) -> Result { + Ok(Self { executor_address }) } + fn encode_swap( &self, swap: Swap, @@ -1451,12 +1456,17 @@ mod tests { // The receiver was generated with `makeAddr("bob") using forge` receiver: Bytes::from("0x1d96f2f6bef1202e4ce1ff6dad0c2cb002861d3e"), exact_out: false, - router_address: Bytes::zero(20), + router_address: Some(Bytes::default()), group_token_in: token_in.clone(), group_token_out: token_out.clone(), }; - let encoder = - MaverickV2SwapEncoder::new(String::from("0x543778987b293C7E8Cf0722BB2e935ba6f4068D4")); + let encoder = MaverickV2SwapEncoder::new( + String::from("0x543778987b293C7E8Cf0722BB2e935ba6f4068D4"), + TychoCoreChain::Ethereum.into(), + None, + ) + .unwrap(); + let encoded_swap = encoder .encode_swap(swap, encoding_context) .unwrap();