build(nitro-protocol): upgrade Solidity version
Upgrade Solidity version
Body
- Upgraded and pinned version (with
^) insolidity pragma - Updated gas benchmarks
- Generated adjudicator bindings
Restricting major compiler version allow contract inheritance to compile with higher solidity versions, loosely coupling the versions. Hence, the risk of introducing breaking changes into the project is lowered. Major version increments (as per semantic versioning) usually include changes that are not backwards-compatible. Using the caret symbol helps maintain stability in the project.
How Has This Been Tested?
Tests were run with yarn test
Code quality
- [x] I have written clear commit messages
- [x] I have performed a self-review of my own code
- [x] This change does not have an unduly wide scope
- [x] I have separated logic changes from refactor changes (formatting, renames, etc.)
Deploy Preview for nitro-payment-demo canceled.
| Name | Link |
|---|---|
| Latest commit | 6087949f733c47fb6af8f5839406788acf11dfe6 |
| Latest deploy log | https://app.netlify.com/sites/nitro-payment-demo/deploys/65957f70fe7f2e00088f9a2f |
Deploy Preview for nitrodocs processing.
| Name | Link |
|---|---|
| Latest commit | 6087949f733c47fb6af8f5839406788acf11dfe6 |
| Latest deploy log | https://app.netlify.com/sites/nitrodocs/deploys/65957f702fd71e00089a16b8 |
Updating compiler target is OK, and I'm also fine with including the ^ modifier.
Q: should all compiler pragmas include the ^? Seems right now like only the "core" contracts / interfaces do.
Problem: after running the tests, this seems to have broken some dependencies.
First guess at root cause is that the simulatedbackend service used in the tests does not implement PUSH0, which was added in 0.8.20. See: https://medium.com/coinmonks/push0-opcode-a-significant-update-in-the-latest-solidity-version-0-8-20-ea028668028a
First guess at a fix would be to update the go-ethereum dependencies that the SimulatedBackend uses.