Skip to content

deploy: decaf, stake table v3 proposals#4650

Open
sveitser wants to merge 1 commit into
mainfrom
ma/stake-table-v3-multisig-upgrade-proposals
Open

deploy: decaf, stake table v3 proposals#4650
sveitser wants to merge 1 commit into
mainfrom
ma/stake-table-v3-multisig-upgrade-proposals

Conversation

@sveitser

@sveitser sveitser commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@gemini-code-assist

Copy link
Copy Markdown
Contributor
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

@claude

claude Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Claude finished @sveitser's task in 2m 34s —— View job


Code Review: Stake Table V3 Deployment Proposals

  • Read repo guidelines (CLAUDE.md)
  • Read existing review comments
  • Review changed files
  • Verify cross-file consistency
  • Post review feedback

This PR adds machine-generated Safe multisig transaction batches for upgrading StakeTable from V2 to V3 on the decaf (Sepolia) network via a timelock controller.

Verification Summary

Cross-file consistency — all addresses, salts, predecessors, chain IDs, and encoded payloads are consistent across the three files:

Field proposal.toml schedule.json execute.json
Timelock (to) 0x8e3b...767f 0x8e3b...767F 0x8e3b...767F
Proxy (target) 0x4030...a037 0x4030...a037 0x4030...a037
Impl 0x8ed0...5630 embedded in data embedded in payload
Salt 0xfac5...fcf7 0xfac5...fcf7 0xfac5...fcf7
Predecessor 0x0000...0000 0x0000...0000 0x0000...0000
Chain ID 11155111 11155111 11155111
Delay 300 "300" n/a (not needed)

Payload: The encoded calldata (0x4f1ef286...) in schedule.json (data) and execute.json (payload) are identical. The outer selector 0x4f1ef286 corresponds to upgradeToAndCall(address,bytes), targeting the new implementation 0x8ed0b40c... with an inner initialization call (0x8e454b10).

Nonces: Sequential — schedule uses nonce 24, execute uses nonce 25. Same Safe address (0xb768...0620) and domain for both.

Structure: The proposal.toml header states these are generated by deploy and validated by deploy verify-proposal and CI.

Observations

  • PR title typo: "depoy" should be "deploy".
  • The files are well-structured and internally consistent. No hand-editing concerns since these are tool-generated.
  • This is the first proposal in the contracts/deployments/proposals/ directory, establishing the pattern for future proposals.

LGTM — the proposal files are consistent and correctly structured for a Safe multisig timelock upgrade flow.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Upgrade proposal verification

contracts/deployments/proposals/decaf/20260707-stake-table-v3: PASS ✅

=== Upgrade Proposal Verification ===
  contract:    StakeTableV3
  network:     decaf
  proxy:       0x40304FbE94D5E7D1492Dd90c53a2D63E8506a037
  new_impl:    0x8eD0B40C67A8f0e50DeEaC4736431518fAd15630
  route:       timelock two-phase
  description: Schedule StakeTable V2 -> V3 upgrade via timelock 0x8e3b6563d683b87964104a2c3a4bf542bb70767f (proxy 0x40304fbe94d5e7d1492dd90c53a2d63e8506a037, impl 0x8ed0b40c67a8f0e50deeac4736431518fad15630)
  onchain_solc: 0.8.35
  ref_solc:     0.8.35

CHECK                                    RESULT DETAIL
--------------------------------------------------------------------------------
toml:network                             PASS   decaf chain_id=11155111
toml:chain_id                            PASS   11155111
decode                                   PASS   outer_to=0x8e3b6563D683b87964104A2c3A4bf542bb70767F
toml:proxy                               PASS   0x40304FbE94D5E7D1492Dd90c53a2D63E8506a037
toml:impl                                PASS   0x8eD0B40C67A8f0e50DeEaC4736431518fAd15630
toml:timelock                            PASS   0x8e3b6563D683b87964104A2c3A4bf542bb70767F
toml:salt                                PASS   0xfac521a6a662d266308639d1f13593d145c5f1029dbf78c5bfdf83851980fcf7
toml:predecessor                         PASS   0x0000000000000000000000000000000000000000000000000000000000000000
toml:delay                               PASS   300
value==0                                 PASS   ok
predecessor==0                           PASS   ok
timelock-addr-match                      PASS   outer_to=0x8e3b6563D683b87964104A2c3A4bf542bb70767F matches deployment-info
proxy-addr-match                         PASS   proxy=0x40304FbE94D5E7D1492Dd90c53a2D63E8506a037 matches deployment-info
bytecode-match                           PASS   FullMatch solc=0.8.35
init-selector                            PASS   ok selector=0x38e454b1
toml:schedule.safe                       PASS   0xB76834E371B666feEe48e5d7d9A97CA08b5a0620 is a known proposer
toml:execute.safe                        PASS   0xB76834E371B666feEe48e5d7d9A97CA08b5a0620 is a known executor
toml:schedule.domain                     PASS   0x8f560c9d209e6d9320305560aee98fa1dea01510aa5451a9c0911401893835c6
toml:schedule.message                    PASS   0x38e3a3fca0b95c5395030bb0b4b5f13795a7d45daff17c99529b6647973a356e
toml:schedule.safe_tx                    PASS   0xf13fd7693c3f500954a3a9cf224cb82800094aedf950e31724412d1d7e7d7c47
toml:execute.domain                      PASS   0x8f560c9d209e6d9320305560aee98fa1dea01510aa5451a9c0911401893835c6
toml:execute.message                     PASS   0x899a95a8a09ac01e62640ee3702173234f217762142484a5ea0d33616979af77
toml:execute.safe_tx                     PASS   0xf357bea820f2f9f565b4d1ae19a02e313359f09404602c84c078b8e7cc4f2b14
toml:schedule.nonce                      PASS   nonce=24
toml:execute.nonce                       PASS   WARN: onchain nonce=24 != toml=25; hashes in toml use recorded nonce; signer must reconfirm
owner==timelock                          PASS   owner=0x8e3b6563D683b87964104A2c3A4bf542bb70767F
delay>=minDelay                          PASS   delay=300 minDelay=300
version-prereq                           PASS   proxy_major=2 >= required=2

--- Safe tx hashes (operation=0, single-tx; confirm against Safe UI) ---
  schedule (nonce=24):
    domain:   0x8f560c9d209e6d9320305560aee98fa1dea01510aa5451a9c0911401893835c6
    message:  0x38e3a3fca0b95c5395030bb0b4b5f13795a7d45daff17c99529b6647973a356e
    safe_tx:  0xf13fd7693c3f500954a3a9cf224cb82800094aedf950e31724412d1d7e7d7c47
  execute (nonce=25):
    domain:   0x8f560c9d209e6d9320305560aee98fa1dea01510aa5451a9c0911401893835c6
    message:  0x899a95a8a09ac01e62640ee3702173234f217762142484a5ea0d33616979af77
    safe_tx:  0xf357bea820f2f9f565b4d1ae19a02e313359f09404602c84c078b8e7cc4f2b14

Result: ALL PASS

Workflow run

@sveitser sveitser changed the title depoy: decaf, stake table v3 proposals deploy: decaf, stake table v3 proposals Jul 7, 2026
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.

1 participant