getwax / wax

Wallet Account eXperiments Monorepo
MIT License
26 stars 13 forks source link

Support up-to-date solidity version and geth version #94

Open JohnGuilding opened 1 year ago

JohnGuilding commented 1 year ago

We are currently targeting solidity version 0.8.12 and running geth v1.10.26 for our Safe integration tests.

We may want to target an up-to-date solidity version and geth node to ensure we're running an up-to-date testing environment.

One change we had to make to the FCL libraries for the webauthn signatures is we had to target solidity version ^0.8.12 instead of ^0.8.20 which is the original solidity version. So if we want to remove all changes to the FCL libs, we need to support this solidity version. The eth-infinitism bundler readme still mentions using geth v1.10.26 when running locally. Apparently the eth-infinitism bundler may be not be the best source of truth for bundlers so we may not want to go off this. Either way, I expect we'll need use an up-to-date testing environment at some point.

Initial attempt

I tried updating solidity to 0.8.20 but ran into an error deploying the contracts in script/start.sh. My current assumption is that solidity 0.8.20 targets the shanghai hardfork by default. The current geth node we're starting in script/start.sh is a version of geth that does not support shanghai. I was able to start the node and deploy contracts successfully when targeting a more recently version of geth (At the time of writing that appears to be Zakros (v1.13.1) when using the ethereum/client-go:stable docker image).

I then had two errors when using a more recent version of geth - so I had to remove both of the following flags from the start.sh script: flag provided but not defined: -ignore-legacy-receipts flag provided but not defined: -miner.threads

We should make sure we're happy with the flags used when starting the geth node given this update.

Once I had updated the solidity version, pulled a more recently version of geth, and removed those two flags, I then ran into two of the following error when running the integration tests (one with the SafeECDSAPlugin and the other with the SafeWebAuthnPlugin test):

Error: could not decode result data (value="0x", info={ "method": "proxyCreationCode", "signature": "proxyCreationCode()" }, code=BAD_DATA, version=6.6.7)

I'm didn't look into this error further. This is as far as I investigated before raising this issue

jacque006 commented 1 year ago

@JohnGuilding I took care of the geth version bump in https://github.com/getwax/wax/pull/77/commits/af09f033cd05696b8c1366a655d159acecab8964