Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TENDERLY_GAS=15000000
22 changes: 22 additions & 0 deletions src/tasks/sep/063-U18-rev-share-permissioned-betanet/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 063-U18-rev-share-permissioned-betanet

Status: [READY TO SIGN]

## Objective

Updates RevShare Permissioned Betanet (revshare-beta-1) to U18.

## Simulation & Signing

```bash
cd src/tasks/sep/063-U18-rev-share-permissioned-betanet

# Testing
just simulate-stack sep 063-U18-rev-share-permissioned-betanet

# Commands to execute
just --dotenv-path $(pwd)/.env simulate
USE_KEYSTORE=1 just --dotenv-path $(pwd)/.env sign
# or USE_KEYSTORE=1 just sign-stack sep 063-U18-rev-share-permissioned-betanet
SIGNATURES=0x just execute
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Expected Domain and Message Hashes

First, we need to validate the domain and message hashes. These values should match both the values on your ledger and
the values printed to the terminal when you run the task.

> [!CAUTION]
>
> Before signing, ensure the below hashes match what is on your ledger.
>
> ### Betanet 1/1 Safe (`0xe934Dc97E347C6aCef74364B50125bb8689c40ff`)
>
> - Domain Hash: `0x07e03428d7125835eca12b6dd1a02903029b456da3a091ecd66fda859fbce61e`
> - Message Hash: `0xfe77a44c0e5184419bbfc8fe268e6cab595146fb802948580493a3f84fd91266`

## Task Calldata

```
0x82ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f0a2e224519e876979ea6b2cd15ef5cc3d6703bd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4cbeda5a700000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000421b686408b5e5d87834868290ec9b4a2fad6f2203218cc6ba6287c4a55d57c62fd4e2e1cee9fb1f80f8b427596670d59a25db8d037b5e42b4c540f321b326e72b1cf8a2502ae8bc8a3d32d75866b1a84996166700000000000000000000000000000000000000000000000000000000
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"420120034": {
"ProxyAdminOwner": "0xe934Dc97E347C6aCef74364B50125bb8689c40ff",
"SystemConfigProxy": "0x421b686408b5e5d87834868290ec9b4a2fad6f22",
"L1CrossDomainMessengerProxy": "0xf116b86545360fcf0f8f931ec4543af6d082a6e7",
"L1StandardBridgeProxy": "0xeb2a61a4b3ce24b5565f39ab6a558b9ec5989b7e",
"OptimismPortalProxy": "0xa68b3c6c2147caf13a760a4ec79855b0d859d9e5",
"DisputeGameFactoryProxy": "0x100e147e79eb824f53fba8eaba36f6267637cd98",
"DelayedWETHProxy": "0x258a2eb6e1b186fad8fb389f0533e1d9b7582839",
"PermissionedDelayedWETHProxy": "0x258a2eb6e1b186fad8fb389f0533e1d9b7582839",
"AnchorStateRegistryProxy": "0xbf3e146ae42f3b25243b7064b3ac6fa10be35523",
"AddressManager": "0xeb6e8b25b6c513f0c364520fb440a65ad7227794",
"L1ERC721BridgeProxy": "0x440de09dec54e1e8c3ec8344fe30fda5e9704f01",
"Proposer": "0x87be7931c05b3f0b780557af07fbbbda741a0075",
"Challenger": "0x94e6f45d675105507f3297fe64fe6cb59eaaf820",
"OptimismMintableERC20FactoryProxy": "0xa7f819eaabc0852a5425fdf804da52ffb5d838c9"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# RevShare Betanet on U18
l2chains = [
{name = "revshare-beta-1", chainId = 420120034}
]

# Addresses for this task can be found here: https://github.com/ethereum-optimism/devnets/tree/main/betanets/revshare-beta

fallbackAddressesJsonPath = "src/tasks/sep/063-U18-rev-share-permissioned-betanet/addresses.json"

templateName = "OPCMUpgradeV600"

[[opcmUpgrades]]
chainId = 420120034
# U18 prestates for betanet: https://github.com/ethereum-optimism/devnets/blob/main/betanets/revshare-beta/op-program/prestates-revshare-1-after-update.json
cannonPrestate = "0x03218cc6ba6287c4a55d57c62fd4e2e1cee9fb1f80f8b427596670d59a25db8d"
cannonKonaPrestate = "0x037b5e42b4c540f321b326e72b1cf8a2502ae8bc8a3d32d75866b1a849961667"
expectedValidationErrors = "OVERRIDES-L1PAOMULTISIG,OVERRIDES-CHALLENGER,SYSCON-130,PLDG-10,CKDG-10"
# OVERRIDES-L1PAOMULTISIG,OVERRIDES-CHALLENGER: these are expected as they are not the standard OP Sepolia ones
# SYSCON-130: this is expected as the SystemConfig proxyAdmin on betanets is not the standard OP Sepolia one
# PLDG-10: There are no permissionless dispute games on Soneium - expected
# CKDG-10: There are no permissionless dispute games on Soneium - expected
Comment thread
Wazabie marked this conversation as resolved.

[addresses]
OPCM = "0xf0a2e224519e876979ea6b2cd15ef5cc3d6703bd" # v600 OPCM source: https://github.com/ethereum-optimism/superchain-registry/blob/c84ed822ae5a65500d8c0e323460fa688cfcca22/validation/standard/standard-versions-sepolia.toml#L23C56-L23C98

[stateOverrides]
0xe934Dc97E347C6aCef74364B50125bb8689c40ff = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 69}
]
1 change: 1 addition & 0 deletions src/tasks/sep/064-permissioned-betanet-rev-share/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TENDERLY_GAS=16700000
38 changes: 38 additions & 0 deletions src/tasks/sep/064-permissioned-betanet-rev-share/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 064 permissioned-betanet-rev-share: RevShare Upgrade and Setup for Betanet

Status: [READY TO SIGN]

## Objective

Upgrade proxies and setup RevShare contracts for the RevShare Betanet chain. This task:

1. Deploys all needed contract implementations:
- FeeVaults
- FeeSplitter
- L1Withdrawer (pointing to the FeesDepositor on L1)
- RevShareCalculator (pointing to the L1Withdrawer and the ChainFeesRecipient)
2. Upgrades the fee vault proxy implementations (SequencerFeeVault, BaseFeeVault, L1FeeVault, OperatorFeeVault) on the Betanet L2
3. Sets FeeSplitter predeploy to point to the new FeeSplitter implementation and initializes it with the RevShareCalculator address

Target chain:

- revshare-beta-1 (chainId: 420120034)

## Simulation & Signing

Simulation commands for each safe:

```bash
# For stacked simulation (recommended for validation):
just simulate-stack sep 064-permissioned-betanet-rev-share

# For individual simulation:
cd src/tasks/sep/064-permissioned-betanet-rev-share
SIMULATE_WITHOUT_LEDGER=1 just --dotenv-path "$(pwd)"/.env --justfile ../../../justfile simulate

# Commands to execute
just --dotenv-path $(pwd)/.env simulate
USE_KEYSTORE=1 just --dotenv-path $(pwd)/.env sign
# or USE_KEYSTORE=1 just sign-stack sep 064-permissioned-betanet-rev-share
SIGNATURES=0x just execute
```
19 changes: 19 additions & 0 deletions src/tasks/sep/064-permissioned-betanet-rev-share/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Expected Domain and Message Hashes

First, we need to validate the domain and message hashes. These values should match both the values on your ledger and
the values printed to the terminal when you run the task.

> [!CAUTION]
>
> Before signing, ensure the below hashes match what is on your ledger.
>
> ### Betanet 1/1 Safe (`0xe934Dc97E347C6aCef74364B50125bb8689c40ff`)
>
> - Domain Hash: `0x07e03428d7125835eca12b6dd1a02903029b456da3a091ecd66fda859fbce61e`
> - Message Hash: `0xbff661d2fa8f5737db0bf2165aa9f44ffa0d8a04dbc2c0f873fef922a2557e2d`

## Task Calldata

```
0x82ad56cb00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000071241bbae674967dd523e621c272ea32cf33119a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e41a80dc3800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a68b3c6c2147caf13a760a4ec79855b0d859d9e50000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000ed9b99a703bad32ac96fddc313c0652e379251fd00000000000000000000000000000000000000000000000000000000000c3500000000000000000000000000ee7d049e5f573a08bb5a358fcefb3d4af992fdcb00000000000000000000000000000000000000000000000000000000
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"420120034": {
"ProxyAdminOwner": "0xe934Dc97E347C6aCef74364B50125bb8689c40ff"
}
}
36 changes: 36 additions & 0 deletions src/tasks/sep/064-permissioned-betanet-rev-share/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# RevShare Upgrade And Setup Configuration

templateName = "RevShareUpgradeAndSetup"

# L2 chains to target
l2chains = [{name = "revshare-beta-1", chainId = 420120034}]

safeAddress = "ProxyAdminOwner"

# RevShareContractsUpgrader https://sepolia.etherscan.io/address/0x71241bbae674967dd523e621c272ea32cf33119a
revShareUpgrader = "0x71241bbae674967dd523e621c272ea32cf33119a"

# RevShare configurations (one per chain)
# Betanet Portal in Sepolia https://sepolia.etherscan.io/address/0xa68B3c6C2147Caf13a760a4eC79855B0d859D9e5
# Source https://github.com/ethereum-optimism/devnets/blob/main/betanets/revshare-beta/op-deployer-revshare-1/state.json#L101
portals = ["0xa68B3c6C2147Caf13a760a4eC79855B0d859D9e5"]

# SequencerFeeVault.RECIPIENT() in the betanet.
chainFeesRecipients = ["0xee7d049e5f573a08bb5a358fcefb3d4af992fdcb"]

# 2 ether
l1WithdrawerMinWithdrawalAmounts = [2000000000000000000]

# FeesDepositor https://sepolia.etherscan.io/address/0xed9B99a703BaD32AC96FDdc313c0652e379251Fd
l1WithdrawerRecipients = ["0xed9B99a703BaD32AC96FDdc313c0652e379251Fd"]
l1WithdrawerGasLimits = [800000]

fallbackAddressesJsonPath = "src/tasks/sep/064-permissioned-betanet-rev-share/addresses.json"

[addresses]
ProxyAdminOwner = "0xe934Dc97E347C6aCef74364B50125bb8689c40ff"

[stateOverrides]
0xe934Dc97E347C6aCef74364B50125bb8689c40ff = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 70}
]