omni/poa-bridge

Remove dependency on 'solc' from build process

akolotov opened this issue · 9 comments

Since bridge contracts are in separate project just now and deployed separately, 'solc' is not needed as dependency for the bridge.

Bridge relies on these contracts to generate calls, transactions and event filters, so I don't think it's reasonable to drop this dependency at this moment. What will happen after we're done transitioning integration tests is that we can replace contracts in this project with interfaces from actual contracts to keep things leaner inside. But we'll still need solc.

maybe you only need ABIs ?
those are just JSON files.
Just get latest ABIs or I can provide it to you and that should be it.
I don't think you need solc in order to get it. solc is only used to produce bytecode and ABIs

Agree with Roman. I think you could use git submodules to link to repos: poa-bridge and poa-parity-bridge-contracts.

Yes, ABI will do if we want to get rid of solc dependency. They will just make it a tad harder to synchronize between sub-projects (instead of copying files, we'd need to use solc to compile them to .abi every time we sync). If we're willing to compromise here, then sure. Ideally, interfaces should not change too often.

@akolotov poa-parity-bridge-contracts doesn't seem to contain ABIs as is.

Correct, those are artifacts, which I already provided in the gist above

OK. Let's take ABI's from poa-parity-bridge-contracts and will update them in poa-bridge as soon as interfaces are being changed. Since interfaces changes will require changes on Rust side anyway it seems to be logical to follow this procedure.

As per @rstormsf it might be better to store those in https://github.com/poanetwork/poa-chain-spec

Created omni/tokenbridge-contracts#38 to upload ABIs to specification repo