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-receiptsflag 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
We are currently targeting solidity version
0.8.12
and running gethv1.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 gethv1.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 inscript/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 beZakros (v1.13.1)
when using theethereum/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 theSafeWebAuthnPlugin
test):I'm didn't look into this error further. This is as far as I investigated before raising this issue