euler-xyz / fee-flow

Efficient, decentralised and MEV resistant mechanism to convert fee assets to a single token.
GNU General Public License v2.0
18 stars 1 forks source link

Fix: certora broken tests + add more rules #12

Closed rori4 closed 6 months ago

rori4 commented 6 months ago

added the rules suggested:

NOTE: Most of the balance check rules had to have the following assumptions in order to pass:

require(assetsReceiver != feeFlowController); // make sure the receiver is not feeFlowController
require(assets[0] != getPaymentToken()); // make sure the asset is not the payment token
require(getPaymentReceiver() != e.msg.sender); // make sure the payment receiver is not the buyer

Also the tests are done with optimistic dispatches of standard ERC20 tokens. With weird tokens with fee on transfer tokens, the rules might break

The github actions are set to run on every push. I wanted to set them on pull_request sync but there is a weird issue that setup the github submodules are not fetched and the actions can't find the remote repos.

rori4 commented 6 months ago

https://prover.certora.com/output/13/8f5a9b490d964fa490bd96b336c38011?anonymousKey=b511ee78f92a4620645fc25254807b3e12ef9320