Skip to content

Conversation

@jorgemmsilva
Copy link
Collaborator

@jorgemmsilva jorgemmsilva commented Sep 18, 2025

this is a re-opening of #763 that got closed when the staging branch was deleted

Ticket

What does this PR do?

  • Summary:
    • Add upgradability to core contracts + factory.
    • CI check for SyndicateSequencingChain contract storage slots
    • Factory bytecodes allowlist

Breaking changes?

  • Yes

Documentation

  • Add markdown file about contract upgradeability.

How can this PR be tested?

  • forge test

ibremseth and others added 30 commits August 27, 2025 17:45
namespaced storage slots are an alternative to gap variables that prevent
storage layout conflicts when modifying the base contracts
use struct_link instead of link as the contract storage variable is now
a struct field
enable gas traacking in the syndicate sequencing chain contract
update certora tests
Previously, signed transactions were represented verbatim, unsigned ones
as the unsigned tx type prefix, and compressed ones as null. Now
unsigned transactions include the full tx data so that the sequencing module
can use it as part of the isAllowed() check. Additionally, signed transactions
include the signed transaction type prefix to make them easier to detect,
prevent collisions with the other tx types, and allow for new tx types
with a different prefix byte to be added in the future. Finally
compressed transactions are represented as the compressed tx prefix byte
instead of null to prevent reverts when checking the tx type.
* add implementations list and gas ban to the factory, make sequencing contract call back to the factory for upgrades

* bindings, e2e upgrade lifecycle test

* cleanup

* use minimal UUPS for deterministic addresses

* update storage layout
gustavoguimaraes and others added 27 commits October 21, 2025 11:39
* Update storage checks to confirm an empty object

* add namespaced storage to GasArchive and Syndicatefactory

* make -C shared create-contract-bindings

* update storage layout

* fix lint
* New gas metering contract used to track how much gas appchains use per epoch

* fix test

* PR updates and contract bindings

* assembly

* fix merge mistake

* fix certora

* certora fix attempt #2

* skip flaky fork test and fix certora syntax

* fmt, cerotra fix, and cli fix

* one more certora fix

* fix cli

* fix cli

* fix tests

* fmt

* fmt

* updates to fix tests

* fix clippy

* fix gas estimation issue

* fmt
* hardcode version

* bindings

* fix create-chain abis
…act (#896)

* wip

* new forwarder for deployment and cleanup factories

* delete factory from check

* remove factories from create chain

* comment out script and add todos

* add helper func and some comments
@ibremseth ibremseth changed the title [DO NOT MERGE] UUPS upgradability for the Sequencing chain contract + factory [DO NOT MERGE] UUPS upgradability for the Sequencing chain contract + deployer Nov 14, 2025
* Adding placeholder contract for controlling forwarders

* remove unneeded func
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants