-
Notifications
You must be signed in to change notification settings - Fork 1
refactor(deploy): V4 authoriser clone deploy is now EOA-broadcast #242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 7 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
f8370ef
refactor(deploy): V4 authoriser clone deploy is now EOA-broadcast
be60166
ci(deploy): CI-broadcast the V4 authoriser clone deploy from secrets.…
8bb7a5c
fix(deploy): transfer all 7 admin roles + pre-hydrate the clone codehash
dd76f5a
test/lib: use ERC1167_PREFIX/SUFFIX for the clone proxy check
thedavidmeister feea619
Merge remote-tracking branch 'origin/main' into work-242
thedavidmeister adb3981
test(deploy): validate V4 authoriser clone deploy assertions
thedavidmeister c318fee
style: forge fmt V4 clone deploy test files
thedavidmeister 8b0691b
ci: retrigger static (transient nix-cachix-setup infra failure)
thedavidmeister 4b920c5
ci(broadcast): scope manual-broadcast GITHUB_TOKEN to contents:read
thedavidmeister File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| name: manual-broadcast | ||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| script: | ||
| description: 'Broadcast script to dispatch (broadcasts as the CI deploy key)' | ||
| required: true | ||
| type: choice | ||
| options: | ||
| # Append-only registry: add new entries at the bottom; never reorder | ||
| # or delete. Re-dispatching a historical (executed) script must | ||
| # remain possible — a signer/auditor may want to re-run its | ||
| # pre-flight against on-chain reality to confirm what landed. | ||
| # | ||
| # Each entry is the date-prefixed filename (without `.s.sol`) of a | ||
| # broadcast script under `script/`. Convention: | ||
| # `YYYYMMDD-<kebab-name>`, where the date is the day the script was | ||
| # added to this dropdown. Execution status (PENDING / EXECUTED) | ||
| # lives in the script's file-level NatSpec — this dropdown is a | ||
| # registry of *which* scripts exist, not *whether* they've run. | ||
| - 20260619-deploy-v4-authoriser-clone | ||
| # Dispatches an operational broadcast script from `script/` and sends the | ||
| # resulting transactions from the CI deploy key (`secrets.PRIVATE_KEY`, | ||
| # the same secret `manual-sol-artifacts.yaml` uses for Zoltu impl deploys). | ||
| # | ||
| # When to use this dispatcher vs. run-script.yaml: | ||
| # - `run-script.yaml` is for scripts that emit off-chain artifacts | ||
| # (Safe Tx Builder JSON) for a Safe multisig to sign later. Runs | ||
| # without `--broadcast`. | ||
| # - THIS workflow is for scripts that broadcast on-chain directly from | ||
| # the deploy key — same key that runs `manual-sol-artifacts.yaml` for | ||
| # impl deploys. Runs with `--broadcast`. | ||
| # | ||
| # The `slow` flag makes forge wait for each tx to confirm before sending | ||
| # the next; without it a script that lands a sequence of dependent txs | ||
| # (e.g. deploy → grantRole using the deploy) can race the nonce. | ||
| jobs: | ||
| broadcast: | ||
| name: Broadcast operational script | ||
| runs-on: ubuntu-latest | ||
| # Serialise dispatches of the same script so overlapping runs don't | ||
| # race on the same nonce / pre-flight state. | ||
| concurrency: | ||
| group: manual-broadcast-${{ inputs.script }} | ||
| cancel-in-progress: false | ||
| steps: | ||
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: DeterminateSystems/nix-installer-action@21a544727d0c62386e78b4befe52d19ad12692e3 # v17 | ||
| - name: Install Soldeer dependencies | ||
| run: nix develop --command forge soldeer install | ||
| - name: Broadcast script | ||
| env: | ||
| BASE_RPC_URL: ${{ secrets.RPC_URL_BASE_FORK }} | ||
| # Pass the choice input via env rather than template-expanding it | ||
| # into the command, so the dispatched script name is used as a | ||
| # literal argument and cannot inject shell. | ||
| SCRIPT: ${{ inputs.script }} | ||
| # PRIVATE_KEY is only available inside this step — matching | ||
| # `manual-sol-artifacts.yaml`. The workflow file itself does not | ||
| # persist it anywhere else. | ||
| PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | ||
| run: | | ||
| nix develop --command forge script "script/${SCRIPT}.s.sol" \ | ||
| --sig 'run()' \ | ||
| --rpc-url base \ | ||
| --no-storage-caching \ | ||
| --slow \ | ||
| --broadcast \ | ||
| --private-key "${PRIVATE_KEY}" | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.