fix: Don't leak evm specific code to interfaces(PrivateKeySigner, Chain)

Pass the signer's private key as a string around and only create a PrivateKeySigner inside Permit2 (where it's needed)
Use tycho-core Chain instead of Alloy ChainID. Create a temp method to convert between them
Create a EVMSwapEncoder that implements the executor_selector (that is evm specific)

--- don't change below this line ---
ENG-4081 Took 1 hour 7 minutes
This commit is contained in:
Diana Carvalho
2025-01-30 13:17:23 +00:00
parent feb91cc639
commit 7a8872cc41
8 changed files with 69 additions and 58 deletions

View File

@@ -1,6 +1,4 @@
use alloy::signers::local::PrivateKeySigner;
use alloy_primitives::ChainId;
use tycho_core::Bytes;
use tycho_core::{models::Chain, Bytes};
use crate::encoding::{errors::EncodingError, models::Solution};
@@ -19,7 +17,7 @@ pub trait StrategySelector {
fn select_strategy(
&self,
solution: &Solution,
signer: Option<PrivateKeySigner>,
chain_id: ChainId,
signer_pk: Option<String>,
chain_id: Chain,
) -> Result<Box<dyn StrategyEncoder>, EncodingError>;
}