- add integration test
- cannot directly call _handleCallback from the locked method of the tycho router because of bytes memory to bytes callback conversion
- Rename to EkuboPoolKey because of conflict with USV4 pool key
- Bonus: fix bug where input token to swap method must be ERC20 (we should also support ETH)
- Add deployed executor address to json
- Build proper encoder for pancake v3
- Increase gas limit when setting executors (costs more since we set one more)
- Fix json filename in scripts/README.md
We only support cyclical trades when the repeated token is the first and the last token in the swap. We don't support cycles in between
--- don't change below this line ---
ENG-4331 Took 2 hours 4 minutes
(cherry picked from commit 55ffa4eb45)
Took 5 minutes
Took 2 minutes
We only support cyclical trades when the repeated token is the first and the last token in the swap. We don't support cycles in between
--- don't change below this line ---
ENG-4331 Took 2 hours 4 minutes
- Tried not to leave a single public function undocumented, though did not double-document public function with obvious names
- Remove all mentions of the strategy selector in favour of the strategy registry (to avoid confusion)
Interface changes:
- Rename StrategySelector to StrategyEncoderRegistry
- Implement clone for SwapEncoder
The StrategyEncoderRegistry needs to be initialised at the highest level and the passed to the TychoEncoder.
The TychoEncoder doesn't hold the chain nor the signer_pk as attributes anymore
The StrategyEncoderRegistry does:
- Initialises the SwapEncoderRegistry
- Initialises all the strategies and saves them in a HashMap
- Later, the TychoEncoder only reads from this hashmap
The StrategyEncoder now each holds a SwapEncoderRegistry as an attribute and they use this to get the correct SwapEncoder instead of reading from the global SWAP_ENCODER_REGISTRY
Simplified the SwapEncoderRegistry to not need a Config (everything is done inside itself)
All SwapEncoders implement clone
Took 2 hours 29 minutes
Took 11 seconds
Took 2 minutes
This was confusing me when I had all of them open at the same time. Better to be extra explicit
--- don't change below this line ---
ENG-4081 Took 2 minutes
- Move all evm code inside evm directory
- StrategyEncoder:
- Kept StrategyEncoder trait but created a new one: EVMStrategyEncoder to implement encode_protocol_header (that is evm specific).
- All StrategyEncoders implement both traits now
- Renamed DefaultStrategySelector -> EVMStrategySelector
- RouterEncoder:
- Created a RouterEncoder trait and a EVMRouterEncoder that implements it
- Moved utils inside evm directory as well
- Renamed config.json -> executor_addresses.json and moved it to a higher config directory
- Make alloy optional and dependent on the evm feature gate
--- don't change below this line ---
ENG-4075 <#DTT#>