Call with state overrides #983
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using
eth_calltogether with state overrides is pretty useful and widely supported thing. Currently we need to use very ugly workaround in https://github.com/cowprotocol/services to use state overrides withethcontract-rs.In order to make everyone's lives easier it makes the most sense to make
call_with_state_overridesa first class citizen inethcontract-rs.StateOverridestruct which defines the format of things that can be overridencall_with_state_overridesonMethodCallBuilderandViewCallBuilderweb3crate not have any nice helper functions for using state overrides so I implemented the call with the underlying logic that theweb3crate would have calledTest Plan
I tested this by pointing the ethcontract dependency in the cowprotocol repo to a local checkout with this patch and did a manual test to make sure things work. Given that we are about to completely abandon this crate I think it's fine to check in a test specific for this.