Skip to content
This repository has been archived by the owner on Jan 24, 2024. It is now read-only.

go: Better handle solidity bindings #368

Open
trianglesphere opened this issue Apr 11, 2022 · 3 comments
Open

go: Better handle solidity bindings #368

trianglesphere opened this issue Apr 11, 2022 · 3 comments

Comments

@trianglesphere
Copy link
Contributor

We would like to address the following issues:

  • Ensure that the compiler version is deterministic and locked
    • We do this with solidity pragmas for version 0.8.10, but should be better
  • We want a CI check that ensures that if a contract changes, the go bindings also change
  • We may want to restructure where contract bindings are located / how they are built
    • The output oracle contract bindings are split from the opnode contract bindings requiring two makefile invocations
    • The opnode contracts are built in a specific folder. That makefile should probably be lifted to the main makefile (or we should add recursive make)
@tynes
Copy link
Contributor

tynes commented Apr 12, 2022

foundry is supportive of adding forge bind go which would use abigen to build bindings

@protolambda
Copy link
Collaborator

The bindings have a separate go module now, with a single makefile, which is checked in CI to be equal to the bindings that are generated from the latest contracts: #446

Aside from compiler-version locking I think this issue can be closed.

@tynes
Copy link
Contributor

tynes commented May 17, 2022

The compiler version is locked by foundry, it's the version of abigen that is not locked. Currently we use latest, as the check in ci uses the master branch of geth to install abigen

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants