-
Notifications
You must be signed in to change notification settings - Fork 157
chore(deps): alloyification #3406
Description
Background
Recently with the advent of EIP-7702, it is possible to enable more advanced order types and significantly smooth user experience for EOA wallets. Advanced order features are heavily biased towards Safe, which disregards a vast array of users out there that wish to use advanced functionality.
On analysing the potential implementations / improvements in order to enable the use of EIP-7702 (as a means of delivering such via a grant) within CoW Protocol, specifically with reference to modifying / updating cow-shed to be delegate-compatible (as well as some other quality of life improvements), it was determined that updating the order payload to include authorisations and enabling authorization tuples to be included in settlement transactions (Type 4 transaction), would create the smoothest user experience and preserve gas-less trading mechanisms for CoW Protocol for EOAs.
Given that the services makes use ofethcontract-rs, which in turn uses the web3 crate (last updated 2 years ago - notably without Type 4 transaction support), it is not possible with CoW Protocol's current implementation to support this significant user experience improvement.
Details
The objective would be to deprecate ethcontract-rs in favour of alloy in the code-base on a one-shot basis. Given that this represents significant overhead for the backend team, I suggest a set of grantees to do this (myself and another), allowing for pushing fast and acting independently so as to not impede the backend team's workflow and feature schedule (we can handle the unpleasantness of dealing with merge conflicts).
Acceptance criteria
-
ethcontract-rsdeprecated - Code base migrated to
alloywith no breaking changes to the API - Testing demonstrating the use of legacy (pre-alloy codebase) driver/solvers interacting with the alloy code-base, demonstrating zero regressions
- Not impeding backend teams' feature schedule