Skip to content

Conversation

@jjtny1
Copy link
Contributor

@jjtny1 jjtny1 commented Oct 16, 2025

This PR introduces a way for us to switch base to a permissioned game and retire existing dispute games.

This will require signatures from the OP security council

@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Oct 16, 2025

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/2
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 2
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 2
2
1 if commit is unverified 0
Sum 2

@jjtny1 jjtny1 requested review from jackchuma and xenoliss October 30, 2025 19:09
Copy link
Contributor

@jackchuma jackchuma left a comment

Choose a reason for hiding this comment

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

Can you update the root readme with instructions on using this template similar to how the other templates are introduced?

@jjtny1 jjtny1 requested a review from jackchuma October 30, 2025 20:48
@jackchuma
Copy link
Contributor

It'd be ideal if this could integrate with the task signer tool as well. Can see an example here: https://github.com/base/contract-deployments/tree/jack/task-signer-tool-demo/mainnet/2025-11-03-test-upgrade

@jjtny1 jjtny1 requested a review from jackchuma November 5, 2025 21:10
jackchuma
jackchuma previously approved these changes Nov 6, 2025
@jjtny1 jjtny1 requested a review from leopoldjoy November 7, 2025 16:30

.PHONY: run-script
run-script:
cd $(SIGNER_TOOL_PATH); \
Copy link
Contributor

Choose a reason for hiding this comment

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

There must be an empty validations/ directory added to the root of this task sub-directory, otherwise this error occurs when running make gen-validation:

119 |   const sdc = new StateDiffClient();
120 |   const { result } = await sdc.simulate(opts.rpcUrl, forgeCmdParts, workdir);
121 | 
122 |   if (opts.out) {
123 |     const outPath = path.resolve(process.cwd(), opts.out);
124 |     writeFileSync(outPath, JSON.stringify(result, null, 2) + '\n');
          ^
ENOENT: no such file or directory, open '/Users/user/contract-deployments/mainnet/2025-11-07-switch-to-permissioned-game/validations/op-signer.json'
    path: "/Users/user/contract-deployments/mainnet/2025-11-07-switch-to-permissioned-game/validations/op-signer.json",
 syscall: "open",
   errno: -2,
    code: "ENOENT"

      at main (/Users/user/contract-deployments/mainnet/2025-11-07-switch-to-permissioned-game/signer-tool/scripts/genValidationFile.ts:124:5)
Suggested change
cd $(SIGNER_TOOL_PATH); \
mkdir validations; \
cd $(SIGNER_TOOL_PATH); \

Copy link
Contributor

Choose a reason for hiding this comment

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

Lines 19 and 20 need to switch order (as in my example above), since the validations/ sub-directory must exist at the task's root.

@jjtny1 jjtny1 requested a review from leopoldjoy November 14, 2025 18:39
@cb-heimdall cb-heimdall dismissed jackchuma’s stale review November 14, 2025 18:39

Approved review 3428335944 from jackchuma is now dismissed due to new commit. Re-request for approval.

@jjtny1 jjtny1 requested a review from jackchuma November 14, 2025 19:47
This template is used to switch Base to a Permissioned Game.

1. Ensure you have followed the instructions above in `setup`.
1. Run `mmake setup-switch-to-permissioned-game network=<network>` and go to the folder that was created by this command.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
1. Run `mmake setup-switch-to-permissioned-game network=<network>` and go to the folder that was created by this command.
1. Run `make setup-switch-to-permissioned-game network=<network>` and go to the folder that was created by this command.


### 3. Open the UI at [http://localhost:3000](http://localhost:3000)

### 4. Send signature to facilitator
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
### 4. Send signature to facilitator
### 4. Send signature to facilitator
You may now kill the Signer Tool process in your terminal window by running `Ctrl + C`.


.PHONY: run-script
run-script:
cd $(SIGNER_TOOL_PATH); \
Copy link
Contributor

Choose a reason for hiding this comment

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

Lines 19 and 20 need to switch order (as in my example above), since the validations/ sub-directory must exist at the task's root.

Comment on lines +22 to +23
bun run scripts/genValidationFile.ts --rpc-url $(L1_RPC_URL) \
--workdir .. --forge-cmd 'forge script --rpc-url $(L1_RPC_URL) \
Copy link
Contributor

@leopoldjoy leopoldjoy Nov 15, 2025

Choose a reason for hiding this comment

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

Since we already created the RPC_URL variable in this file:

Suggested change
bun run scripts/genValidationFile.ts --rpc-url $(L1_RPC_URL) \
--workdir .. --forge-cmd 'forge script --rpc-url $(L1_RPC_URL) \
bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \
--workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \

/// @notice This script updates the respectedGameType and retires existing games in the AnchorStateRegistry.
contract SwitchToPermissionedGame is MultisigScript {
// TODO: Confirm expected version
string public constant EXPECTED_VERSION = "1.4.1";
Copy link
Contributor

Choose a reason for hiding this comment

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

Where is this EXPECTED_VERSION variable used?

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.

5 participants