Skip to content

fix: publish FWSS library ABIs#522

Open
rvagg wants to merge 2 commits into
mainfrom
rvagg/moar-abis
Open

fix: publish FWSS library ABIs#522
rvagg wants to merge 2 commits into
mainfrom
rvagg/moar-abis

Conversation

@rvagg

@rvagg rvagg commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Rails library in particular has event signatures, and I've just discovered that we don't have these published ABI artifacts. I guess we've missed the 1.3.0 boat but we should remember for next time - any non-empty library we extract should have ABI artifcats included.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR ensures ABI artifacts are published not only for core FWSS contracts, but also for non-empty first-party libraries (notably Rails, which defines event signatures consumed externally).

Changes:

  • Updates make update-abi to rebuild from a clean Foundry build and (intended to) discover non-empty ABIs for libraries under src/lib/.
  • Documents that consumers should include Rails.abi.json in addition to the main FWSS ABI to subscribe to proxy-emitted events.
  • Adds checked-in ABI JSON artifacts for Rails and SignatureVerificationLib.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
service_contracts/README.md Updates ABI management docs to include library ABIs and event-consumer guidance.
service_contracts/Makefile Reworks update-abi to regenerate ABIs from a clean build and attempt library ABI discovery from artifacts.
service_contracts/abi/SignatureVerificationLib.abi.json Adds published ABI artifact for the signature helper library.
service_contracts/abi/Rails.abi.json Adds published ABI artifact for Rails-emitted FWSS proxy events.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread service_contracts/Makefile Outdated
@wjmelements

Copy link
Copy Markdown
Contributor

This creates a separate abi.json for the libraries but ideally we would want the events from those libraries included in the ABI of the implementation that links them. This is because web3 libraries reading ABI will assume the events were emitted from the contract address with the ABI, but libraries are accessed via DELEGATECALL. So we want to merge library events into the abi.json of the contracts that use them, and discard other library fields such as their method ABI, which are useless externally.

We could keep them separate like this but then the merging would need to happen in all of the consumers. I think it best we merge the ABIs in one place.

A similar problem occurs with proxy ABI; what these have in common is DELEGATECALL.

@rjan90 rjan90 added this to the M4.5: GA Fast Follows milestone Jun 12, 2026
@rjan90 rjan90 moved this from 📌 Triage to 🔎 Awaiting review in FOC Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🔎 Awaiting review

Development

Successfully merging this pull request may close these issues.

5 participants