-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update solc versions #1364
Update solc versions #1364
Conversation
Morpho-aave-v2 gas impacts (eth-mainnet)
🧾 Summary
Full diff report 👇
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- The Morpho-AaveV2 Lens solc version was updated: I believe it's a mistake
- I'm not comfortable with allowing versions higher than 0.8.x in libraries, because we don't know how they'll behave with
>=0.9.0
. Even for Types libraries (so I would revert changes in libraries and only open interfaces)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would have fixed the versions of the libraries, otherwise looks good !
I don't thnk so it's a more pain for integrators than anything else |
160fd6f
to
9b80355
Compare
9b80355
to
ee4b2bc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could also fix the following files, they should be compiled with 0.8.13
I believe:
contracts/common/rewards-distribution/RewardsDistributor.sol
contracts/common/test/FakeToken.sol
test-foundry/aave-v2/TestRatesLens.t.sol
test-foundry/common/TestDoubleLinkedList.t.sol
test-foundry/common/helpers/MorphoToken.sol
Discussed with @QGarchery tests can be compiled with any 0.8 versions since the imported contracts will set the solc version anyway |
Morpho-compound gas impacts (eth-mainnet)
🧾 Summary
Full diff report 👇
|
But integrators should not need the libraries. They should only need the interfaces (otherwise we should refactor the files). |
I disagree, you can need Types for example |
So why not putting |
Why would this be true? Take Uniswap's I don't understand your POV as libraries are made for the purpose of sharing pure logic code... This means they should be made usable by third parties (outside the main application I mean, which in this context is Morpho)
The former objective of fixing contracts version is to indicate which version was used to compile contracts. But they don't have an inherent, fixed version. We only do so to fix a version to the protocol. But libraries are made to be usable outside the protocol, so there version can't be fixed Allowing versions to be in 0.8.x is not a security threat to me. If we consider it a threat, then I agree libraries should have a fixed version, but it would come at a cost for integrators (but again, I would be ok for it). |
Ultimately, I would lean towards being lenient with the solidity versions for libs. If libs are being imported for use by integrators, it is their responsibility to make sure that there is nothing breaking, which is how I personally approach importing libs. |
Fixes #1351
Allow easier integrations by allowing more solc versions in libs and interfaces