omni / poa-bridge

POA <-> Ethereum bridge for self transfers of POA native token to POA20 (ERC20 representation). Not supported. Use TokenBridge instead
https://github.com/poanetwork/token-bridge
GNU General Public License v3.0
80 stars 39 forks source link

Remove dependency on 'solc' from build process #77

Open akolotov opened 6 years ago

akolotov commented 6 years ago

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

yrashk commented 6 years ago

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.

rstormsf commented 6 years ago

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

rstormsf commented 6 years ago

https://gist.github.com/rstormsf/998ae8acbe467788bdf95778fbc68cf0

3 files

akolotov commented 6 years ago

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

yrashk commented 6 years ago

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.

rstormsf commented 6 years ago

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

akolotov commented 6 years ago

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.

yrashk commented 6 years ago

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

akolotov commented 6 years ago

Created https://github.com/poanetwork/poa-bridge-contracts/issues/38 to upload ABIs to specification repo