In this test, we replaced goodClient with a client that used the solidity patricia tree. All subsequent tests then used it, which I think has been causing intermittent issues in CI. Given I don't think this was a deliberate (tests affecting how each other run is bad, after all), I've stopped that from happening.
Of course, it should work, but I think running that down should be separate. Indeed, arguably the priority should be to work out how to remove ganache, and then make whatever that replacement is sufficiently performant enough for the tests to work if the soldity trie is in use, but I don't think it's possible to drop-in hardhat as a replacement the way we've used ganache here.
The important piece of functionality around the solidity tree is to make sure it gives the same results as the javascript tree, and the tests still do that. In addition, we use the javascript tree in production (because it's faster), so I'm not too worried about this.
In this test, we replaced
goodClient
with a client that used the solidity patricia tree. All subsequent tests then used it, which I think has been causing intermittent issues in CI. Given I don't think this was a deliberate (tests affecting how each other run is bad, after all), I've stopped that from happening.Of course, it should work, but I think running that down should be separate. Indeed, arguably the priority should be to work out how to remove
ganache
, and then make whatever that replacement is sufficiently performant enough for the tests to work if the soldity trie is in use, but I don't think it's possible to drop-inhardhat
as a replacement the way we've usedganache
here.The important piece of functionality around the solidity tree is to make sure it gives the same results as the javascript tree, and the tests still do that. In addition, we use the javascript tree in production (because it's faster), so I'm not too worried about this.