Open chriseth opened 5 years ago
After a quick test, adding these seems to need more effort to be put into our script then just adding the URLs:
npm ethereumjs-testrpc
which does not work out of the boxsolc
to be installed (need to find out why)Ah, nice. I will give it a try!
Let's re-try at least PoCo.
We should also try 0x: https://github.com/0xProject/0x-monorepo - it seems to use a different test setup, perhaps that is also not the right repository.
Some interesting ones: veil.co, kyber.network, bounties.network, gitcoin contracts (such as the grant eip1337), compound.finance, 0x, dai contracts (cdp portal, etc.), delphy, ens contracts, cent.co
Not fully sure if all of them have open sources, like cent.co probably doesn't.
Also USDC (https://www.centre.io/usdc) and TUSD (https://www.trusttoken.com/trueusd/) could be interesting, but they are only regular token contracts with a (un)lock, mint and burn functions.
Verfied that these can't be added yet, since they do not meet one or more requirement:
Still on Truffle 4.x.x (forcing the compiler version does not work):
package.json
)pre-0.5.0:
Depend on node 9.3 (we could add another Circle job with node 9 installed):
Do not support petersburg
:
No single Truffle project /w contracts:
Testing ABIEncoderV2 with any new external project that we add is also important: https://github.com/ethereum/solidity/issues/5956
@erak what is the status here?
@chriseth I checked the the list again and all of them seem to be still blocked. I'd try to get in touch with the people behind those projects in order to see if they're interested in being part of our test infrastructure and if they would make some effort in supporting us with that.
Is this still relevant for 0.6.0?
Moved #3127 here.
I have updated the description to add more details, some projects we brainstormed with @hrkrshnn on gitter yesterday and some links for finding more projects.
Added tokens from @erak's comment to the description. Unfortunately all of them seem to have remained on older versions. None of them is even on 0.7.x yet.
Added 11 more projects to the list in the issue description.
Unfortunately I'm not sure what to choose to integrate next - every one has some minor downside. Many rely on multiple Solidity versions which often requires workarounds. Some use a framework other than Hardhat or Truffle which will require extra work to add support for that framework in our external tests. Others are quite small and don't exercise the compiler very much.
I checked these projects in a bit more detail and here's what I'd pick based mostly on ease of integration and how important or interesting they are:
Other important/interesting projects, which look like they'll require more work. I think it would be good to integrate them eventually:
Others that require extra work and do not seem as important/interesting:
Too old or not interesting:
@hrkrshnn rightly pointed out that cow-token is really just a token and not a token + DEX as I thought. So I'm demoting it to non-interesting but I'll try to integrate gp-v2-contracts instead, which seems to be the set of contracts behind cowswap.
Some contracts that are 0.8.*
Looks like Optimism's contracts are mostly 0.8.9. Contracts targetting L2 would be an interesting addition.
A few places where we might find projects that use modern compiler versions, suitable to hook up as tests: