go-nitro icon indicating copy to clipboard operation
go-nitro copied to clipboard

build(nitro-protocol): upgrade Solidity version

Open maxpushka opened this issue 1 year ago • 3 comments

Upgrade Solidity version

Body

  • Upgraded and pinned version (with ^) in solidity 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.)

maxpushka avatar Jan 03 '24 15:01 maxpushka

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

netlify[bot] avatar Jan 03 '24 15:01 netlify[bot]

Deploy Preview for nitrodocs processing.

Name Link
Latest commit 6087949f733c47fb6af8f5839406788acf11dfe6
Latest deploy log https://app.netlify.com/sites/nitrodocs/deploys/65957f702fd71e00089a16b8

netlify[bot] avatar Jan 03 '24 15:01 netlify[bot]

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.

NiloCK avatar Jan 05 '24 15:01 NiloCK