Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
eaa371a0
Unverified
Commit
eaa371a0
authored
Oct 21, 2022
by
mergify[bot]
Committed by
GitHub
Oct 21, 2022
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3302 from ethereum-optimism/fix/l2-proxy-admin-predeploy
predeploys: add L2 `ProxyAdmin`
parents
7d0ae302
964425c3
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
118 additions
and
90 deletions
+118
-90
Makefile
op-bindings/Makefile
+1
-1
gaspriceoracle_more.go
op-bindings/bindings/gaspriceoracle_more.go
+1
-1
governancetoken_more.go
op-bindings/bindings/governancetoken_more.go
+1
-1
l1crossdomainmessenger_more.go
op-bindings/bindings/l1crossdomainmessenger_more.go
+1
-1
l2crossdomainmessenger_more.go
op-bindings/bindings/l2crossdomainmessenger_more.go
+1
-1
l2erc721bridge_more.go
op-bindings/bindings/l2erc721bridge_more.go
+1
-1
l2standardbridge_more.go
op-bindings/bindings/l2standardbridge_more.go
+1
-1
legacyerc20eth_more.go
op-bindings/bindings/legacyerc20eth_more.go
+1
-1
optimismmintableerc721factory_more.go
op-bindings/bindings/optimismmintableerc721factory_more.go
+1
-1
optimismportal_more.go
op-bindings/bindings/optimismportal_more.go
+1
-1
proxyadmin_more.go
op-bindings/bindings/proxyadmin_more.go
+25
-0
addresses.go
op-bindings/predeploys/addresses.go
+3
-0
config.go
op-chain-ops/genesis/config.go
+17
-6
layer_two.go
op-chain-ops/genesis/layer_two.go
+9
-20
layer_two_test.go
op-chain-ops/genesis/layer_two_test.go
+6
-25
setters.go
op-chain-ops/genesis/setters.go
+10
-5
test-deploy-config-full.json
op-chain-ops/genesis/testdata/test-deploy-config-full.json
+2
-1
setup.go
op-e2e/e2eutils/setup.go
+1
-0
cmd.go
op-node/cmd/genesis/cmd.go
+2
-12
Predeploys.sol
...ages/contracts-bedrock/contracts/libraries/Predeploys.sol
+5
-0
hardhat.config.ts
packages/contracts-bedrock/hardhat.config.ts
+4
-0
constants.ts
packages/contracts-bedrock/src/constants.ts
+5
-0
rekey.ts
packages/contracts-bedrock/tasks/rekey.ts
+1
-1
predeploys.md
specs/predeploys.md
+18
-10
No files found.
op-bindings/Makefile
View file @
eaa371a0
...
@@ -108,7 +108,7 @@ more:
...
@@ -108,7 +108,7 @@ more:
go run ./gen/main.go
\
go run ./gen/main.go
\
-artifacts
../packages/contracts-bedrock/artifacts
\
-artifacts
../packages/contracts-bedrock/artifacts
\
-out
./bindings
\
-out
./bindings
\
-contracts
OptimismMintableERC20Factory,L2StandardBridge,L1BlockNumber,LegacyMessagePasser,DeployerWhitelist,Proxy,OptimismPortal,L2ToL1MessagePasser,L2CrossDomainMessenger,GasPriceOracle,SequencerFeeVault,L1Block,LegacyERC20ETH,WETH9,GovernanceToken,L1CrossDomainMessenger,L2ERC721Bridge,OptimismMintableERC721Factory
\
-contracts
OptimismMintableERC20Factory,L2StandardBridge,L1BlockNumber,LegacyMessagePasser,DeployerWhitelist,Proxy,OptimismPortal,L2ToL1MessagePasser,L2CrossDomainMessenger,GasPriceOracle,SequencerFeeVault,L1Block,LegacyERC20ETH,WETH9,GovernanceToken,L1CrossDomainMessenger,L2ERC721Bridge,OptimismMintableERC721Factory
,ProxyAdmin
\
-package
bindings
-package
bindings
mkdir
:
mkdir
:
...
...
op-bindings/bindings/gaspriceoracle_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
GasPriceOracleStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:285
09
,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1953,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
spacer_1_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1956,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
spacer_2_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1959,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
overhead
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1962,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
scalar
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1965,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
decimals
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_uint256
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
const
GasPriceOracleStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:285
13
,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1953,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
spacer_1_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1956,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
spacer_2_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1959,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
overhead
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1962,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
scalar
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:1965,
\"
contract
\"
:
\"
contracts/L2/GasPriceOracle.sol:GasPriceOracle
\"
,
\"
label
\"
:
\"
decimals
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_uint256
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
var
GasPriceOracleStorageLayout
=
new
(
solc
.
StorageLayout
)
var
GasPriceOracleStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/governancetoken_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
GovernanceTokenStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:288
59,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_balances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},{
\"
astId
\"
:28865,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_allowances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:28867,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_totalSupply
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28869,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_name
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:28871,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_symbol
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:30236,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_nonces
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_struct(Counter)32422_storage)
\"
},{
\"
astId
\"
:30244,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_PERMIT_TYPEHASH_DEPRECATED_SLOT
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
6
\"
,
\"
type
\"
:
\"
t_bytes32
\"
},{
\"
astId
\"
:29577,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_delegates
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
7
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_address)
\"
},{
\"
astId
\"
:29583,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_checkpoints
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
8
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_array(t_struct(Checkpoint)29568_storage)dyn_storage)
\"
},{
\"
astId
\"
:29587,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_totalSupplyCheckpoints
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
9
\"
,
\"
type
\"
:
\"
t_array(t_struct(Checkpoint)29568_storage)dyn_storage
\"
},{
\"
astId
\"
:28509,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
10
\"
,
\"
type
\"
:
\"
t_address
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_struct(Checkpoint)29568_storage)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
struct ERC20Votes.Checkpoint[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_address,t_address)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
address)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_address
\"
},
\"
t_mapping(t_address,t_array(t_struct(Checkpoint)29568_storage)dyn_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
struct ERC20Votes.Checkpoint[])
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_array(t_struct(Checkpoint)29568_storage)dyn_storage
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_struct(Counter)32422_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
struct Counters.Counter)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_struct(Counter)32422_storage
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_string_storage
\"
:{
\"
encoding
\"
:
\"
bytes
\"
,
\"
label
\"
:
\"
string
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_struct(Checkpoint)29568_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct ERC20Votes.Checkpoint
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_struct(Counter)32422
_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct Counters.Counter
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint224
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint224
\"
,
\"
numberOfBytes
\"
:
\"
28
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint32
\"
,
\"
numberOfBytes
\"
:
\"
4
\"
}}}"
const
GovernanceTokenStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:288
63,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_balances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},{
\"
astId
\"
:28869,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_allowances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:28871,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_totalSupply
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28873,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_name
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:28875,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_symbol
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:30240,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_nonces
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_struct(Counter)32426_storage)
\"
},{
\"
astId
\"
:30248,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_PERMIT_TYPEHASH_DEPRECATED_SLOT
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
6
\"
,
\"
type
\"
:
\"
t_bytes32
\"
},{
\"
astId
\"
:29581,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_delegates
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
7
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_address)
\"
},{
\"
astId
\"
:29587,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_checkpoints
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
8
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_array(t_struct(Checkpoint)29572_storage)dyn_storage)
\"
},{
\"
astId
\"
:29591,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_totalSupplyCheckpoints
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
9
\"
,
\"
type
\"
:
\"
t_array(t_struct(Checkpoint)29572_storage)dyn_storage
\"
},{
\"
astId
\"
:28513,
\"
contract
\"
:
\"
contracts/L2/GovernanceToken.sol:GovernanceToken
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
10
\"
,
\"
type
\"
:
\"
t_address
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_struct(Checkpoint)29572_storage)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
struct ERC20Votes.Checkpoint[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_address,t_address)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
address)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_address
\"
},
\"
t_mapping(t_address,t_array(t_struct(Checkpoint)29572_storage)dyn_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
struct ERC20Votes.Checkpoint[])
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_array(t_struct(Checkpoint)29572_storage)dyn_storage
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_struct(Counter)32426_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
struct Counters.Counter)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_struct(Counter)32426_storage
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_string_storage
\"
:{
\"
encoding
\"
:
\"
bytes
\"
,
\"
label
\"
:
\"
string
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_struct(Checkpoint)29572_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct ERC20Votes.Checkpoint
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_struct(Counter)32426
_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct Counters.Counter
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint224
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint224
\"
,
\"
numberOfBytes
\"
:
\"
28
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint32
\"
,
\"
numberOfBytes
\"
:
\"
4
\"
}}}"
var
GovernanceTokenStorageLayout
=
new
(
solc
.
StorageLayout
)
var
GovernanceTokenStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/l1crossdomainmessenger_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
L1CrossDomainMessengerStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:2490
0,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_0_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27886,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:20,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:27889,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:21,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28500,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_array(t_uint256)50_storage
\"
},{
\"
astId
\"
:27758,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
51
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27878,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
52
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28051,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_paused
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
101
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28156,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
102
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28171,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_status
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
151
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28215,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
152
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:24952,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_201_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
201
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24957,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_202_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
202
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24962,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
successfulMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
203
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24965,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
xDomainMsgSender
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
204
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:24968,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
msgNonce
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
205
\"
,
\"
type
\"
:
\"
t_uint240
\"
},{
\"
astId
\"
:24973,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
receivedMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
206
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24978
,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
207
\"
,
\"
type
\"
:
\"
t_array(t_uint256)42_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)42_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[42]
\"
,
\"
numberOfBytes
\"
:
\"
1344
\"
},
\"
t_array(t_uint256)49_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[49]
\"
,
\"
numberOfBytes
\"
:
\"
1568
\"
},
\"
t_array(t_uint256)50_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[50]
\"
,
\"
numberOfBytes
\"
:
\"
1600
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_bytes32,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(bytes32 =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_bytes32
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_uint240
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint240
\"
,
\"
numberOfBytes
\"
:
\"
30
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
const
L1CrossDomainMessengerStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:2490
4,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_0_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27890,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:20,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:27893,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:21,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28504,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_array(t_uint256)50_storage
\"
},{
\"
astId
\"
:27762,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
51
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27882,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
52
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28055,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_paused
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
101
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28160,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
102
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28175,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_status
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
151
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28219,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
152
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:24956,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_201_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
201
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24961,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_202_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
202
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24966,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
successfulMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
203
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24969,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
xDomainMsgSender
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
204
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:24972,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
msgNonce
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
205
\"
,
\"
type
\"
:
\"
t_uint240
\"
},{
\"
astId
\"
:24977,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
receivedMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
206
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24982
,
\"
contract
\"
:
\"
contracts/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
207
\"
,
\"
type
\"
:
\"
t_array(t_uint256)42_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)42_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[42]
\"
,
\"
numberOfBytes
\"
:
\"
1344
\"
},
\"
t_array(t_uint256)49_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[49]
\"
,
\"
numberOfBytes
\"
:
\"
1568
\"
},
\"
t_array(t_uint256)50_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[50]
\"
,
\"
numberOfBytes
\"
:
\"
1600
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_bytes32,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(bytes32 =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_bytes32
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_uint240
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint240
\"
,
\"
numberOfBytes
\"
:
\"
30
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
var
L1CrossDomainMessengerStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L1CrossDomainMessengerStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/l2crossdomainmessenger_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
L2CrossDomainMessengerStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:2490
0,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_0_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27886,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:20,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:27889,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:21,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28500,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_array(t_uint256)50_storage
\"
},{
\"
astId
\"
:27758,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
51
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27878,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
52
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28051,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_paused
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
101
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28156,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
102
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28171,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_status
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
151
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28215,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
152
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:24952,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_201_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
201
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24957,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_202_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
202
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24962,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
successfulMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
203
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24965,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
xDomainMsgSender
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
204
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:24968,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
msgNonce
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
205
\"
,
\"
type
\"
:
\"
t_uint240
\"
},{
\"
astId
\"
:24973,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
receivedMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
206
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24978
,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
207
\"
,
\"
type
\"
:
\"
t_array(t_uint256)42_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)42_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[42]
\"
,
\"
numberOfBytes
\"
:
\"
1344
\"
},
\"
t_array(t_uint256)49_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[49]
\"
,
\"
numberOfBytes
\"
:
\"
1568
\"
},
\"
t_array(t_uint256)50_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[50]
\"
,
\"
numberOfBytes
\"
:
\"
1600
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_bytes32,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(bytes32 =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_bytes32
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_uint240
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint240
\"
,
\"
numberOfBytes
\"
:
\"
30
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
const
L2CrossDomainMessengerStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:2490
4,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_0_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27890,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:20,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:27893,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:21,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28504,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_array(t_uint256)50_storage
\"
},{
\"
astId
\"
:27762,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
51
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27882,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
52
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28055,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_paused
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
101
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:28160,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
102
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:28175,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
_status
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
151
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28219,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
152
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
},{
\"
astId
\"
:24956,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_201_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
201
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24961,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
spacer_202_0_32
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
202
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24966,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
successfulMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
203
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24969,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
xDomainMsgSender
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
204
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:24972,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
msgNonce
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
205
\"
,
\"
type
\"
:
\"
t_uint240
\"
},{
\"
astId
\"
:24977,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
receivedMessages
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
206
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
},{
\"
astId
\"
:24982
,
\"
contract
\"
:
\"
contracts/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
207
\"
,
\"
type
\"
:
\"
t_array(t_uint256)42_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)42_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[42]
\"
,
\"
numberOfBytes
\"
:
\"
1344
\"
},
\"
t_array(t_uint256)49_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[49]
\"
,
\"
numberOfBytes
\"
:
\"
1568
\"
},
\"
t_array(t_uint256)50_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[50]
\"
,
\"
numberOfBytes
\"
:
\"
1600
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_bytes32,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(bytes32 =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_bytes32
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_uint240
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint240
\"
,
\"
numberOfBytes
\"
:
\"
30
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
var
L2CrossDomainMessengerStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L2CrossDomainMessengerStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/l2erc721bridge_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
L2ERC721BridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:254
06
,
\"
contract
\"
:
\"
contracts/L2/L2ERC721Bridge.sol:L2ERC721Bridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
}],
\"
types
\"
:{
\"
t_array(t_uint256)49_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[49]
\"
,
\"
numberOfBytes
\"
:
\"
1568
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
const
L2ERC721BridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:254
10
,
\"
contract
\"
:
\"
contracts/L2/L2ERC721Bridge.sol:L2ERC721Bridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_array(t_uint256)49_storage
\"
}],
\"
types
\"
:{
\"
t_array(t_uint256)49_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[49]
\"
,
\"
numberOfBytes
\"
:
\"
1568
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
var
L2ERC721BridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L2ERC721BridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/l2standardbridge_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
L2StandardBridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:270
59,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_0_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27062,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_1_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27069,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
deposits
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:27074
,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_array(t_uint256)47_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)47_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[47]
\"
,
\"
numberOfBytes
\"
:
\"
1504
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
const
L2StandardBridgeStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:270
63,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_0_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27066,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
spacer_1_0_20
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:27073,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
deposits
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:27078
,
\"
contract
\"
:
\"
contracts/L2/L2StandardBridge.sol:L2StandardBridge
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_array(t_uint256)47_storage
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)47_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[47]
\"
,
\"
numberOfBytes
\"
:
\"
1504
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
var
L2StandardBridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
var
L2StandardBridgeStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/legacyerc20eth_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
LegacyERC20ETHStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:288
59,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_balances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},{
\"
astId
\"
:28865,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_allowances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:28867,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_totalSupply
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28869,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_name
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:28871,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_symbol
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:25635,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
remoteToken
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:25638
,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
bridge
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
6
\"
,
\"
type
\"
:
\"
t_address
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_string_storage
\"
:{
\"
encoding
\"
:
\"
bytes
\"
,
\"
label
\"
:
\"
string
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
const
LegacyERC20ETHStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:288
63,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_balances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},{
\"
astId
\"
:28869,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_allowances
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
},{
\"
astId
\"
:28871,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_totalSupply
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_uint256
\"
},{
\"
astId
\"
:28873,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_name
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:28875,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
_symbol
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_string_storage
\"
},{
\"
astId
\"
:25639,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
remoteToken
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:25642
,
\"
contract
\"
:
\"
contracts/legacy/LegacyERC20ETH.sol:LegacyERC20ETH
\"
,
\"
label
\"
:
\"
bridge
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
6
\"
,
\"
type
\"
:
\"
t_address
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_mapping(t_address,t_mapping(t_address,t_uint256))
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
mapping(address =
\u003e
uint256))
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_string_storage
\"
:{
\"
encoding
\"
:
\"
bytes
\"
,
\"
label
\"
:
\"
string
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
var
LegacyERC20ETHStorageLayout
=
new
(
solc
.
StorageLayout
)
var
LegacyERC20ETHStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/optimismmintableerc721factory_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
OptimismMintableERC721FactoryStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:261
58
,
\"
contract
\"
:
\"
contracts/universal/OptimismMintableERC721Factory.sol:OptimismMintableERC721Factory
\"
,
\"
label
\"
:
\"
isOptimismMintableERC721
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_bool)
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_mapping(t_address,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_bool
\"
}}}"
const
OptimismMintableERC721FactoryStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:261
62
,
\"
contract
\"
:
\"
contracts/universal/OptimismMintableERC721Factory.sol:OptimismMintableERC721Factory
\"
,
\"
label
\"
:
\"
isOptimismMintableERC721
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_bool)
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_mapping(t_address,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_bool
\"
}}}"
var
OptimismMintableERC721FactoryStorageLayout
=
new
(
solc
.
StorageLayout
)
var
OptimismMintableERC721FactoryStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/optimismportal_more.go
View file @
eaa371a0
...
@@ -9,7 +9,7 @@ import (
...
@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
OptimismPortalStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:28
699,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:28702
,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1603,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
params
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_struct(ResourceParams)1573_storage
\"
},{
\"
astId
\"
:1608,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_array(t_uint256)48_storage
\"
},{
\"
astId
\"
:1179,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
l2Sender
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
50
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1192,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
finalizedWithdrawals
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
51
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)48_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[48]
\"
,
\"
numberOfBytes
\"
:
\"
1536
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_bytes32,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(bytes32 =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_bytes32
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_struct(ResourceParams)1573_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct ResourceMetering.ResourceParams
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint128
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint128
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint64
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint64
\"
,
\"
numberOfBytes
\"
:
\"
8
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
const
OptimismPortalStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:28
703,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
_initialized
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_uint8
\"
},{
\"
astId
\"
:28706
,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
_initializing
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1603,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
params
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_struct(ResourceParams)1573_storage
\"
},{
\"
astId
\"
:1608,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
__gap
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_array(t_uint256)48_storage
\"
},{
\"
astId
\"
:1179,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
l2Sender
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
50
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:1192,
\"
contract
\"
:
\"
contracts/L1/OptimismPortal.sol:OptimismPortal
\"
,
\"
label
\"
:
\"
finalizedWithdrawals
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
51
\"
,
\"
type
\"
:
\"
t_mapping(t_bytes32,t_bool)
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_uint256)48_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256[48]
\"
,
\"
numberOfBytes
\"
:
\"
1536
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_bytes32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bytes32
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_mapping(t_bytes32,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(bytes32 =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_bytes32
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_struct(ResourceParams)1573_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct ResourceMetering.ResourceParams
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint128
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint128
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint64
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint64
\"
,
\"
numberOfBytes
\"
:
\"
8
\"
},
\"
t_uint8
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint8
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
}}}"
var
OptimismPortalStorageLayout
=
new
(
solc
.
StorageLayout
)
var
OptimismPortalStorageLayout
=
new
(
solc
.
StorageLayout
)
...
...
op-bindings/bindings/proxyadmin_more.go
0 → 100644
View file @
eaa371a0
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package
bindings
import
(
"encoding/json"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
const
ProxyAdminStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:35963,
\"
contract
\"
:
\"
contracts/universal/ProxyAdmin.sol:ProxyAdmin
\"
,
\"
label
\"
:
\"
owner
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_address
\"
},{
\"
astId
\"
:26535,
\"
contract
\"
:
\"
contracts/universal/ProxyAdmin.sol:ProxyAdmin
\"
,
\"
label
\"
:
\"
proxyType
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_enum(ProxyType)26529)
\"
},{
\"
astId
\"
:26540,
\"
contract
\"
:
\"
contracts/universal/ProxyAdmin.sol:ProxyAdmin
\"
,
\"
label
\"
:
\"
implementationName
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_string_storage)
\"
},{
\"
astId
\"
:26544,
\"
contract
\"
:
\"
contracts/universal/ProxyAdmin.sol:ProxyAdmin
\"
,
\"
label
\"
:
\"
addressManager
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_contract(AddressManager)3238
\"
},{
\"
astId
\"
:26548,
\"
contract
\"
:
\"
contracts/universal/ProxyAdmin.sol:ProxyAdmin
\"
,
\"
label
\"
:
\"
upgrading
\"
,
\"
offset
\"
:20,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_bool
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_contract(AddressManager)3238
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
contract AddressManager
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_enum(ProxyType)26529
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
enum ProxyAdmin.ProxyType
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_mapping(t_address,t_enum(ProxyType)26529)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
enum ProxyAdmin.ProxyType)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_enum(ProxyType)26529
\"
},
\"
t_mapping(t_address,t_string_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
string)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_string_storage
\"
},
\"
t_string_storage
\"
:{
\"
encoding
\"
:
\"
bytes
\"
,
\"
label
\"
:
\"
string
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
var
ProxyAdminStorageLayout
=
new
(
solc
.
StorageLayout
)
var
ProxyAdminDeployedBin
=
"0x6080604052600436106100f35760003560e01c8063860f7cda1161008a57806399a88ec41161005957806399a88ec4146102db5780639b2ea4bd146102fb578063b79472621461031b578063f3b7dead1461035657600080fd5b8063860f7cda1461025b5780638d52d4a01461027b5780638da5cb5b1461029b5780639623609d146102c857600080fd5b8063238181ae116100c6578063238181ae146101a45780633ab76e9f146101d15780636bd9f516146101fe5780637eff275e1461023b57600080fd5b80630652b57a146100f857806307c8f7b01461011a57806313af40351461013a578063204e1c7a1461015a575b600080fd5b34801561010457600080fd5b506101186101133660046114c6565b610376565b005b34801561012657600080fd5b506101186101353660046114e3565b610443565b34801561014657600080fd5b506101186101553660046114c6565b61050e565b34801561016657600080fd5b5061017a6101753660046114c6565b6105ff565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101b057600080fd5b506101c46101bf3660046114c6565b610820565b60405161019b919061157b565b3480156101dd57600080fd5b5060035461017a9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561020a57600080fd5b5061022e6102193660046114c6565b60016020526000908152604090205460ff1681565b60405161019b91906115bd565b34801561024757600080fd5b506101186102563660046115fe565b6108ba565b34801561026757600080fd5b50610118610276366004611759565b610ae6565b34801561028757600080fd5b506101186102963660046117a9565b610b96565b3480156102a757600080fd5b5060005461017a9073ffffffffffffffffffffffffffffffffffffffff1681565b6101186102d63660046117db565b610c83565b3480156102e757600080fd5b506101186102f63660046115fe565b610f13565b34801561030757600080fd5b50610118610316366004611851565b61121c565b34801561032757600080fd5b5060035474010000000000000000000000000000000000000000900460ff16604051901515815260200161019b565b34801561036257600080fd5b5061017a6103713660046114c6565b61132b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b6003805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461058f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205460ff168181600281111561063b5761063b61158e565b036106b6578273ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106af9190611898565b9392505050565b60018160028111156106ca576106ca61158e565b0361071a578273ffffffffffffffffffffffffffffffffffffffff1663aaf10f426040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068b573d6000803e3d6000fd5b600281600281111561072e5761072e61158e565b036107b85760035473ffffffffffffffffffffffffffffffffffffffff8481166000908152600260205260409081902090517fbf40fac1000000000000000000000000000000000000000000000000000000008152919092169163bf40fac19161079b9190600401611902565b602060405180830381865afa15801561068b573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f50726f787941646d696e3a20756e6b6e6f776e2070726f78792074797065000060448201526064016103f3565b50919050565b60026020526000908152604090208054610839906118b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610865906118b5565b80156108b25780601f10610887576101008083540402835291602001916108b2565b820191906000526020600020905b81548152906001019060200180831161089557829003601f168201915b505050505081565b60005473ffffffffffffffffffffffffffffffffffffffff16331461093b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205460ff16908160028111156109775761097761158e565b03610a03576040517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690638f283970906024015b600060405180830381600087803b1580156109e657600080fd5b505af11580156109fa573d6000803e3d6000fd5b50505050505050565b6001816002811115610a1757610a1761158e565b03610a70576040517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906313af4035906024016109cc565b6002816002811115610a8457610a8461158e565b036107b8576003546040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529091169063f2fde38b906024016109cc565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020610ae182826119f1565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160208190526040909120805483927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911690836002811115610c7a57610c7a61158e565b02179055505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610d04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081205460ff1690816002811115610d4057610d4061158e565b03610e06576040517f4f1ef28600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851690634f1ef286903490610d9b9087908790600401611b0b565b60006040518083038185885af1158015610db9573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e009190810190611b42565b50610f0d565b610e108484610f13565b60008473ffffffffffffffffffffffffffffffffffffffff163484604051610e389190611bb9565b60006040518083038185875af1925050503d8060008114610e75576040519150601f19603f3d011682016040523d82523d6000602084013e610e7a565b606091505b5050905080610f0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f50726f787941646d696e3a2063616c6c20746f2070726f78792061667465722060448201527f75706772616465206661696c656400000000000000000000000000000000000060648201526084016103f3565b505b50505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205460ff1690816002811115610fd057610fd061158e565b03611029576040517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152841690633659cfe6906024016109cc565b600181600281111561103d5761103d61158e565b036110bc576040517f9b0b0fda0000000000000000000000000000000000000000000000000000000081527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152841690639b0b0fda906044016109cc565b60028160028111156110d0576110d061158e565b036112145773ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604081208054611105906118b5565b80601f0160208091040260200160405190810160405280929190818152602001828054611131906118b5565b801561117e5780601f106111535761010080835404028352916020019161117e565b820191906000526020600020905b81548152906001019060200180831161116157829003601f168201915b50506003546040517f9b2ea4bd00000000000000000000000000000000000000000000000000000000815294955073ffffffffffffffffffffffffffffffffffffffff1693639b2ea4bd93506111dc92508591508790600401611bd5565b600060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b5050505050505050565b610ae1611c0d565b60005473ffffffffffffffffffffffffffffffffffffffff16331461129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103f3565b6003546040517f9b2ea4bd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690639b2ea4bd906112f59085908590600401611bd5565b600060405180830381600087803b15801561130f57600080fd5b505af1158015611323573d6000803e3d6000fd5b505050505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081205460ff16818160028111156113675761136761158e565b036113b7578273ffffffffffffffffffffffffffffffffffffffff1663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068b573d6000803e3d6000fd5b60018160028111156113cb576113cb61158e565b0361141b578273ffffffffffffffffffffffffffffffffffffffff1663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068b573d6000803e3d6000fd5b600281600281111561142f5761142f61158e565b036107b857600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068b573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146114c357600080fd5b50565b6000602082840312156114d857600080fd5b81356106af816114a1565b6000602082840312156114f557600080fd5b813580151581146106af57600080fd5b60005b83811015611520578181015183820152602001611508565b83811115610f0d5750506000910152565b60008151808452611549816020860160208601611505565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006106af6020830184611531565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106115f8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561161157600080fd5b823561161c816114a1565b9150602083013561162c816114a1565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156116ad576116ad611637565b604052919050565b600067ffffffffffffffff8211156116cf576116cf611637565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600061170e611709846116b5565b611666565b905082815283838301111561172257600080fd5b828260208301376000602084830101529392505050565b600082601f83011261174a57600080fd5b6106af838335602085016116fb565b6000806040838503121561176c57600080fd5b8235611777816114a1565b9150602083013567ffffffffffffffff81111561179357600080fd5b61179f85828601611739565b9150509250929050565b600080604083850312156117bc57600080fd5b82356117c7816114a1565b915060208301356003811061162c57600080fd5b6000806000606084860312156117f057600080fd5b83356117fb816114a1565b9250602084013561180b816114a1565b9150604084013567ffffffffffffffff81111561182757600080fd5b8401601f8101861361183857600080fd5b611847868235602084016116fb565b9150509250925092565b6000806040838503121561186457600080fd5b823567ffffffffffffffff81111561187b57600080fd5b61188785828601611739565b925050602083013561162c816114a1565b6000602082840312156118aa57600080fd5b81516106af816114a1565b600181811c908216806118c957607f821691505b60208210810361081a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000602080835260008454611916816118b5565b80848701526040600180841660008114611937576001811461196f5761199d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a01528284151560051b8a0101955061199d565b896000528660002060005b858110156119955781548b820186015290830190880161197a565b8a0184019650505b509398975050505050505050565b601f821115610ae157600081815260208120601f850160051c810160208610156119d25750805b601f850160051c820191505b81811015611323578281556001016119de565b815167ffffffffffffffff811115611a0b57611a0b611637565b611a1f81611a1984546118b5565b846119ab565b602080601f831160018114611a725760008415611a3c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611323565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611abf57888601518255948401946001909101908401611aa0565b5085821015611afb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000611b3a6040830184611531565b949350505050565b600060208284031215611b5457600080fd5b815167ffffffffffffffff811115611b6b57600080fd5b8201601f81018413611b7c57600080fd5b8051611b8a611709826116b5565b818152856020838501011115611b9f57600080fd5b611bb0826020830160208601611505565b95945050505050565b60008251611bcb818460208701611505565b9190910192915050565b604081526000611be86040830185611531565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea164736f6c634300080f000a"
func
init
()
{
if
err
:=
json
.
Unmarshal
([]
byte
(
ProxyAdminStorageLayoutJSON
),
ProxyAdminStorageLayout
);
err
!=
nil
{
panic
(
err
)
}
layouts
[
"ProxyAdmin"
]
=
ProxyAdminStorageLayout
deployedBytecodes
[
"ProxyAdmin"
]
=
ProxyAdminDeployedBin
}
op-bindings/predeploys/addresses.go
View file @
eaa371a0
...
@@ -18,6 +18,7 @@ const (
...
@@ -18,6 +18,7 @@ const (
LegacyMessagePasser
=
"0x4200000000000000000000000000000000000000"
LegacyMessagePasser
=
"0x4200000000000000000000000000000000000000"
L2ERC721Bridge
=
"0x4200000000000000000000000000000000000014"
L2ERC721Bridge
=
"0x4200000000000000000000000000000000000014"
OptimismMintableERC721Factory
=
"0x4200000000000000000000000000000000000017"
OptimismMintableERC721Factory
=
"0x4200000000000000000000000000000000000017"
ProxyAdmin
=
"0x4200000000000000000000000000000000000018"
)
)
var
(
var
(
...
@@ -36,6 +37,7 @@ var (
...
@@ -36,6 +37,7 @@ var (
LegacyMessagePasserAddr
=
common
.
HexToAddress
(
LegacyMessagePasser
)
LegacyMessagePasserAddr
=
common
.
HexToAddress
(
LegacyMessagePasser
)
L2ERC721BridgeAddr
=
common
.
HexToAddress
(
L2ERC721Bridge
)
L2ERC721BridgeAddr
=
common
.
HexToAddress
(
L2ERC721Bridge
)
OptimismMintableERC721FactoryAddr
=
common
.
HexToAddress
(
OptimismMintableERC721Factory
)
OptimismMintableERC721FactoryAddr
=
common
.
HexToAddress
(
OptimismMintableERC721Factory
)
ProxyAdminAddr
=
common
.
HexToAddress
(
ProxyAdmin
)
Predeploys
=
make
(
map
[
string
]
*
common
.
Address
)
Predeploys
=
make
(
map
[
string
]
*
common
.
Address
)
)
)
...
@@ -56,4 +58,5 @@ func init() {
...
@@ -56,4 +58,5 @@ func init() {
Predeploys
[
"LegacyMessagePasser"
]
=
&
LegacyMessagePasserAddr
Predeploys
[
"LegacyMessagePasser"
]
=
&
LegacyMessagePasserAddr
Predeploys
[
"L2ERC721Bridge"
]
=
&
L2ERC721BridgeAddr
Predeploys
[
"L2ERC721Bridge"
]
=
&
L2ERC721BridgeAddr
Predeploys
[
"OptimismMintableERC721Factory"
]
=
&
OptimismMintableERC721FactoryAddr
Predeploys
[
"OptimismMintableERC721Factory"
]
=
&
OptimismMintableERC721FactoryAddr
Predeploys
[
"ProxyAdmin"
]
=
&
ProxyAdminAddr
}
}
op-chain-ops/genesis/config.go
View file @
eaa371a0
...
@@ -63,6 +63,7 @@ type DeployConfig struct {
...
@@ -63,6 +63,7 @@ type DeployConfig struct {
L2GenesisBlockParentHash
common
.
Hash
`json:"l2GenesisBlockParentHash"`
L2GenesisBlockParentHash
common
.
Hash
`json:"l2GenesisBlockParentHash"`
L2GenesisBlockBaseFeePerGas
*
hexutil
.
Big
`json:"l2GenesisBlockBaseFeePerGas"`
L2GenesisBlockBaseFeePerGas
*
hexutil
.
Big
`json:"l2GenesisBlockBaseFeePerGas"`
ProxyAdminOwner
common
.
Address
`json:"proxyAdminOwner"`
L2CrossDomainMessengerOwner
common
.
Address
`json:"l2CrossDomainMessengerOwner"`
L2CrossDomainMessengerOwner
common
.
Address
`json:"l2CrossDomainMessengerOwner"`
OptimismBaseFeeRecipient
common
.
Address
`json:"optimismBaseFeeRecipient"`
OptimismBaseFeeRecipient
common
.
Address
`json:"optimismBaseFeeRecipient"`
OptimismL1FeeRecipient
common
.
Address
`json:"optimismL1FeeRecipient"`
OptimismL1FeeRecipient
common
.
Address
`json:"optimismL1FeeRecipient"`
...
@@ -104,22 +105,26 @@ func NewDeployConfigWithNetwork(network, path string) (*DeployConfig, error) {
...
@@ -104,22 +105,26 @@ func NewDeployConfigWithNetwork(network, path string) (*DeployConfig, error) {
// NewL2ImmutableConfig will create an ImmutableConfig given an instance of a
// NewL2ImmutableConfig will create an ImmutableConfig given an instance of a
// Hardhat and a DeployConfig.
// Hardhat and a DeployConfig.
func
NewL2ImmutableConfig
(
config
*
DeployConfig
,
block
*
types
.
Block
,
proxyL1StandardBridge
,
proxyL1CrossDomainMessenger
,
proxyL1ERC721Bridge
common
.
Addres
s
)
(
immutables
.
ImmutableConfig
,
error
)
{
func
NewL2ImmutableConfig
(
config
*
DeployConfig
,
block
*
types
.
Block
,
l2Addrs
*
L2Addresse
s
)
(
immutables
.
ImmutableConfig
,
error
)
{
immutable
:=
make
(
immutables
.
ImmutableConfig
)
immutable
:=
make
(
immutables
.
ImmutableConfig
)
if
proxyL1ERC721Bridge
==
(
common
.
Address
{})
{
if
l2Addrs
==
nil
{
return
immutable
,
errors
.
New
(
"must pass L1 contract addresses"
)
}
if
l2Addrs
.
L1ERC721BridgeProxy
==
(
common
.
Address
{})
{
return
immutable
,
errors
.
New
(
"L1ERC721BridgeProxy cannot be address(0)"
)
return
immutable
,
errors
.
New
(
"L1ERC721BridgeProxy cannot be address(0)"
)
}
}
immutable
[
"L2StandardBridge"
]
=
immutables
.
ImmutableValues
{
immutable
[
"L2StandardBridge"
]
=
immutables
.
ImmutableValues
{
"otherBridge"
:
proxyL1StandardBridge
,
"otherBridge"
:
l2Addrs
.
L1StandardBridgeProxy
,
}
}
immutable
[
"L2CrossDomainMessenger"
]
=
immutables
.
ImmutableValues
{
immutable
[
"L2CrossDomainMessenger"
]
=
immutables
.
ImmutableValues
{
"otherMessenger"
:
proxyL1CrossDomainMessenger
,
"otherMessenger"
:
l2Addrs
.
L1CrossDomainMessengerProxy
,
}
}
immutable
[
"L2ERC721Bridge"
]
=
immutables
.
ImmutableValues
{
immutable
[
"L2ERC721Bridge"
]
=
immutables
.
ImmutableValues
{
"messenger"
:
predeploys
.
L2CrossDomainMessengerAddr
,
"messenger"
:
predeploys
.
L2CrossDomainMessengerAddr
,
"otherBridge"
:
proxyL1ERC721Bridge
,
"otherBridge"
:
l2Addrs
.
L1ERC721BridgeProxy
,
}
}
immutable
[
"OptimismMintableERC721Factory"
]
=
immutables
.
ImmutableValues
{
immutable
[
"OptimismMintableERC721Factory"
]
=
immutables
.
ImmutableValues
{
"bridge"
:
predeploys
.
L2ERC721BridgeAddr
,
"bridge"
:
predeploys
.
L2ERC721BridgeAddr
,
...
@@ -131,7 +136,7 @@ func NewL2ImmutableConfig(config *DeployConfig, block *types.Block, proxyL1Stand
...
@@ -131,7 +136,7 @@ func NewL2ImmutableConfig(config *DeployConfig, block *types.Block, proxyL1Stand
// NewL2StorageConfig will create a StorageConfig given an instance of a
// NewL2StorageConfig will create a StorageConfig given an instance of a
// Hardhat and a DeployConfig.
// Hardhat and a DeployConfig.
func
NewL2StorageConfig
(
config
*
DeployConfig
,
block
*
types
.
Block
,
proxyL1StandardBridge
common
.
Address
,
proxyL1CrossDomainMessenger
common
.
Addres
s
)
(
state
.
StorageConfig
,
error
)
{
func
NewL2StorageConfig
(
config
*
DeployConfig
,
block
*
types
.
Block
,
l2Addrs
*
L2Addresse
s
)
(
state
.
StorageConfig
,
error
)
{
storage
:=
make
(
state
.
StorageConfig
)
storage
:=
make
(
state
.
StorageConfig
)
if
block
.
Number
()
==
nil
{
if
block
.
Number
()
==
nil
{
...
@@ -140,6 +145,9 @@ func NewL2StorageConfig(config *DeployConfig, block *types.Block, proxyL1Standar
...
@@ -140,6 +145,9 @@ func NewL2StorageConfig(config *DeployConfig, block *types.Block, proxyL1Standar
if
block
.
BaseFee
()
==
nil
{
if
block
.
BaseFee
()
==
nil
{
return
storage
,
errors
.
New
(
"block base fee not set"
)
return
storage
,
errors
.
New
(
"block base fee not set"
)
}
}
if
l2Addrs
==
nil
{
return
storage
,
errors
.
New
(
"must pass L1 address info"
)
}
storage
[
"L2ToL1MessagePasser"
]
=
state
.
StorageValues
{
storage
[
"L2ToL1MessagePasser"
]
=
state
.
StorageValues
{
"nonce"
:
0
,
"nonce"
:
0
,
...
@@ -187,5 +195,8 @@ func NewL2StorageConfig(config *DeployConfig, block *types.Block, proxyL1Standar
...
@@ -187,5 +195,8 @@ func NewL2StorageConfig(config *DeployConfig, block *types.Block, proxyL1Standar
// TODO: this should be set to the MintManager
// TODO: this should be set to the MintManager
"_owner"
:
common
.
Address
{},
"_owner"
:
common
.
Address
{},
}
}
storage
[
"ProxyAdmin"
]
=
state
.
StorageValues
{
"owner"
:
l2Addrs
.
ProxyAdminOwner
,
}
return
storage
,
nil
return
storage
,
nil
}
}
op-chain-ops/genesis/layer_two.go
View file @
eaa371a0
...
@@ -9,8 +9,10 @@ import (
...
@@ -9,8 +9,10 @@ import (
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core"
)
)
// L2Addresses represents L1 contract addresses
// that are required for the construction of an L2 state
type
L2Addresses
struct
{
type
L2Addresses
struct
{
ProxyAdmin
common
.
Address
ProxyAdmin
Owner
common
.
Address
L1StandardBridgeProxy
common
.
Address
L1StandardBridgeProxy
common
.
Address
L1CrossDomainMessengerProxy
common
.
Address
L1CrossDomainMessengerProxy
common
.
Address
L1ERC721BridgeProxy
common
.
Address
L1ERC721BridgeProxy
common
.
Address
...
@@ -31,9 +33,11 @@ func BuildL2DeveloperGenesis(config *DeployConfig, l1StartBlock *types.Block, l2
...
@@ -31,9 +33,11 @@ func BuildL2DeveloperGenesis(config *DeployConfig, l1StartBlock *types.Block, l2
}
}
SetPrecompileBalances
(
db
)
SetPrecompileBalances
(
db
)
// Use the known developer addresses if they are not set
if
l2Addrs
==
nil
{
if
l2Addrs
==
nil
{
l2Addrs
=
&
L2Addresses
{
l2Addrs
=
&
L2Addresses
{
ProxyAdmin
:
predeploys
.
DevProxyAdminAddr
,
// corresponds to m/44'/60'/0'/0/1 in the 'test test... junk' mnemonic
ProxyAdminOwner
:
common
.
HexToAddress
(
"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
),
L1StandardBridgeProxy
:
predeploys
.
DevL1StandardBridgeAddr
,
L1StandardBridgeProxy
:
predeploys
.
DevL1StandardBridgeAddr
,
L1CrossDomainMessengerProxy
:
predeploys
.
DevL1CrossDomainMessengerAddr
,
L1CrossDomainMessengerProxy
:
predeploys
.
DevL1CrossDomainMessengerAddr
,
L1ERC721BridgeProxy
:
predeploys
.
DevL1ERC721BridgeAddr
,
L1ERC721BridgeProxy
:
predeploys
.
DevL1ERC721BridgeAddr
,
...
@@ -45,31 +49,16 @@ func BuildL2DeveloperGenesis(config *DeployConfig, l1StartBlock *types.Block, l2
...
@@ -45,31 +49,16 @@ func BuildL2DeveloperGenesis(config *DeployConfig, l1StartBlock *types.Block, l2
// BuildL2Genesis will build the L2 Optimism Genesis Block
// BuildL2Genesis will build the L2 Optimism Genesis Block
func
BuildL2Genesis
(
db
*
state
.
MemoryStateDB
,
config
*
DeployConfig
,
l1Block
*
types
.
Block
,
l2Addrs
*
L2Addresses
)
(
*
core
.
Genesis
,
error
)
{
func
BuildL2Genesis
(
db
*
state
.
MemoryStateDB
,
config
*
DeployConfig
,
l1Block
*
types
.
Block
,
l2Addrs
*
L2Addresses
)
(
*
core
.
Genesis
,
error
)
{
// TODO(tynes): need a function for clearing old, unused storage slots.
if
err
:=
SetL2Proxies
(
db
);
err
!=
nil
{
// Each deployed contract on L2 needs to have its existing storage
// inspected and then cleared if they are no longer used.
if
err
:=
SetL2Proxies
(
db
,
l2Addrs
.
ProxyAdmin
);
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
storage
,
err
:=
NewL2StorageConfig
(
storage
,
err
:=
NewL2StorageConfig
(
config
,
l1Block
,
l2Addrs
)
config
,
l1Block
,
l2Addrs
.
L1StandardBridgeProxy
,
l2Addrs
.
L1CrossDomainMessengerProxy
,
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
immutable
,
err
:=
NewL2ImmutableConfig
(
immutable
,
err
:=
NewL2ImmutableConfig
(
config
,
l1Block
,
l2Addrs
)
config
,
l1Block
,
l2Addrs
.
L1StandardBridgeProxy
,
l2Addrs
.
L1CrossDomainMessengerProxy
,
l2Addrs
.
L1ERC721BridgeProxy
,
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
op-chain-ops/genesis/layer_two_test.go
View file @
eaa371a0
...
@@ -16,7 +16,6 @@ import (
...
@@ -16,7 +16,6 @@ import (
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum-optimism/optimism/op-bindings/hardhat"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum-optimism/optimism/op-chain-ops/genesis"
"github.com/ethereum-optimism/optimism/op-chain-ops/genesis"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/require"
...
@@ -31,19 +30,9 @@ func init() {
...
@@ -31,19 +30,9 @@ func init() {
var
testKey
,
_
=
crypto
.
HexToECDSA
(
"b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291"
)
var
testKey
,
_
=
crypto
.
HexToECDSA
(
"b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291"
)
func
TestBuildL2DeveloperGenesis
(
t
*
testing
.
T
)
{
func
TestBuildL2DeveloperGenesis
(
t
*
testing
.
T
)
{
hh
,
err
:=
hardhat
.
New
(
"alpha-1"
,
nil
,
[]
string
{
"../../packages/contracts-bedrock/deployments"
},
)
require
.
Nil
(
t
,
err
)
config
,
err
:=
genesis
.
NewDeployConfig
(
"./testdata/test-deploy-config-devnet-l1.json"
)
config
,
err
:=
genesis
.
NewDeployConfig
(
"./testdata/test-deploy-config-devnet-l1.json"
)
require
.
Nil
(
t
,
err
)
require
.
Nil
(
t
,
err
)
proxyAdmin
,
err
:=
hh
.
GetDeployment
(
"ProxyAdmin"
)
require
.
Nil
(
t
,
err
)
backend
:=
backends
.
NewSimulatedBackend
(
backend
:=
backends
.
NewSimulatedBackend
(
core
.
GenesisAlloc
{
core
.
GenesisAlloc
{
crypto
.
PubkeyToAddress
(
testKey
.
PublicKey
)
:
{
Balance
:
big
.
NewInt
(
10000000000000000
)},
crypto
.
PubkeyToAddress
(
testKey
.
PublicKey
)
:
{
Balance
:
big
.
NewInt
(
10000000000000000
)},
...
@@ -52,12 +41,8 @@ func TestBuildL2DeveloperGenesis(t *testing.T) {
...
@@ -52,12 +41,8 @@ func TestBuildL2DeveloperGenesis(t *testing.T) {
)
)
block
,
err
:=
backend
.
BlockByNumber
(
context
.
Background
(),
common
.
Big0
)
block
,
err
:=
backend
.
BlockByNumber
(
context
.
Background
(),
common
.
Big0
)
require
.
NoError
(
t
,
err
)
require
.
NoError
(
t
,
err
)
gen
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
config
,
block
,
&
genesis
.
L2Addresses
{
ProxyAdmin
:
proxyAdmin
.
Address
,
gen
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
config
,
block
,
nil
)
L1ERC721BridgeProxy
:
predeploys
.
DevL1ERC721BridgeAddr
,
L1CrossDomainMessengerProxy
:
predeploys
.
DevL1CrossDomainMessengerAddr
,
L1StandardBridgeProxy
:
predeploys
.
DevL1StandardBridgeAddr
,
})
require
.
Nil
(
t
,
err
)
require
.
Nil
(
t
,
err
)
require
.
NotNil
(
t
,
gen
)
require
.
NotNil
(
t
,
gen
)
...
@@ -71,13 +56,13 @@ func TestBuildL2DeveloperGenesis(t *testing.T) {
...
@@ -71,13 +56,13 @@ func TestBuildL2DeveloperGenesis(t *testing.T) {
require
.
Equal
(
t
,
ok
,
true
)
require
.
Equal
(
t
,
ok
,
true
)
require
.
Greater
(
t
,
len
(
account
.
Code
),
0
)
require
.
Greater
(
t
,
len
(
account
.
Code
),
0
)
if
name
==
"GovernanceToken"
||
name
==
"LegacyERC20ETH"
{
if
name
==
"GovernanceToken"
||
name
==
"LegacyERC20ETH"
||
name
==
"ProxyAdmin"
{
continue
continue
}
}
adminSlot
,
ok
:=
account
.
Storage
[
genesis
.
AdminSlot
]
adminSlot
,
ok
:=
account
.
Storage
[
genesis
.
AdminSlot
]
require
.
Equal
(
t
,
ok
,
true
)
require
.
Equal
(
t
,
ok
,
true
)
require
.
Equal
(
t
,
adminSlot
,
pr
oxyAdmin
.
Address
.
Hash
())
require
.
Equal
(
t
,
adminSlot
,
pr
edeploys
.
ProxyAdminAddr
.
Hash
())
require
.
Equal
(
t
,
account
.
Code
,
depB
)
require
.
Equal
(
t
,
account
.
Code
,
depB
)
}
}
require
.
Equal
(
t
,
2341
,
len
(
gen
.
Alloc
))
require
.
Equal
(
t
,
2341
,
len
(
gen
.
Alloc
))
...
@@ -101,12 +86,8 @@ func TestBuildL2DeveloperGenesisDevAccountsFunding(t *testing.T) {
...
@@ -101,12 +86,8 @@ func TestBuildL2DeveloperGenesisDevAccountsFunding(t *testing.T) {
)
)
block
,
err
:=
backend
.
BlockByNumber
(
context
.
Background
(),
common
.
Big0
)
block
,
err
:=
backend
.
BlockByNumber
(
context
.
Background
(),
common
.
Big0
)
require
.
NoError
(
t
,
err
)
require
.
NoError
(
t
,
err
)
gen
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
config
,
block
,
&
genesis
.
L2Addresses
{
ProxyAdmin
:
common
.
Address
{},
gen
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
config
,
block
,
nil
)
L1ERC721BridgeProxy
:
predeploys
.
DevL1ERC721BridgeAddr
,
L1CrossDomainMessengerProxy
:
predeploys
.
DevL1CrossDomainMessengerAddr
,
L1StandardBridgeProxy
:
predeploys
.
DevL1StandardBridgeAddr
,
})
require
.
NoError
(
t
,
err
)
require
.
NoError
(
t
,
err
)
require
.
Equal
(
t
,
2319
,
len
(
gen
.
Alloc
))
require
.
Equal
(
t
,
2319
,
len
(
gen
.
Alloc
))
}
}
op-chain-ops/genesis/setters.go
View file @
eaa371a0
...
@@ -25,8 +25,8 @@ func FundDevAccounts(db vm.StateDB) {
...
@@ -25,8 +25,8 @@ func FundDevAccounts(db vm.StateDB) {
// a Proxy and ProxyAdmin deployment present so that the Proxy bytecode
// a Proxy and ProxyAdmin deployment present so that the Proxy bytecode
// can be set in state and the ProxyAdmin can be set as the admin of the
// can be set in state and the ProxyAdmin can be set as the admin of the
// Proxy.
// Proxy.
func
SetL2Proxies
(
db
vm
.
StateDB
,
proxyAdminAddr
common
.
Address
)
error
{
func
SetL2Proxies
(
db
vm
.
StateDB
)
error
{
return
setProxies
(
db
,
proxyAdminAddr
,
bigL2PredeployNamespace
,
2048
)
return
setProxies
(
db
,
pr
edeploys
.
Pr
oxyAdminAddr
,
bigL2PredeployNamespace
,
2048
)
}
}
// SetL1Proxies will set each of the proxies in the state. It requires
// SetL1Proxies will set each of the proxies in the state. It requires
...
@@ -47,8 +47,10 @@ func setProxies(db vm.StateDB, proxyAdminAddr common.Address, namespace *big.Int
...
@@ -47,8 +47,10 @@ func setProxies(db vm.StateDB, proxyAdminAddr common.Address, namespace *big.Int
bigAddr
:=
new
(
big
.
Int
)
.
Or
(
namespace
,
new
(
big
.
Int
)
.
SetUint64
(
i
))
bigAddr
:=
new
(
big
.
Int
)
.
Or
(
namespace
,
new
(
big
.
Int
)
.
SetUint64
(
i
))
addr
:=
common
.
BigToAddress
(
bigAddr
)
addr
:=
common
.
BigToAddress
(
bigAddr
)
// There is no proxy at the governance token address
// There is no proxy at the governance token address or
if
addr
==
predeploys
.
GovernanceTokenAddr
{
// the proxy admin address. LegacyERC20ETH lives in the
// 0xDead namespace so it can be ignored here
if
addr
==
predeploys
.
GovernanceTokenAddr
||
addr
==
predeploys
.
ProxyAdminAddr
{
continue
continue
}
}
...
@@ -69,13 +71,16 @@ func SetImplementations(db vm.StateDB, storage state.StorageConfig, immutable im
...
@@ -69,13 +71,16 @@ func SetImplementations(db vm.StateDB, storage state.StorageConfig, immutable im
}
}
for
name
,
address
:=
range
predeploys
.
Predeploys
{
for
name
,
address
:=
range
predeploys
.
Predeploys
{
// Convert the address to the code address
// Convert the address to the code address unless it is
// designed to not be behind a proxy
var
addr
common
.
Address
var
addr
common
.
Address
switch
*
address
{
switch
*
address
{
case
predeploys
.
GovernanceTokenAddr
:
case
predeploys
.
GovernanceTokenAddr
:
addr
=
predeploys
.
GovernanceTokenAddr
addr
=
predeploys
.
GovernanceTokenAddr
case
predeploys
.
LegacyERC20ETHAddr
:
case
predeploys
.
LegacyERC20ETHAddr
:
addr
=
predeploys
.
LegacyERC20ETHAddr
addr
=
predeploys
.
LegacyERC20ETHAddr
case
predeploys
.
ProxyAdminAddr
:
addr
=
predeploys
.
ProxyAdminAddr
default
:
default
:
addr
,
err
=
AddressToCodeNamespace
(
*
address
)
addr
,
err
=
AddressToCodeNamespace
(
*
address
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
op-chain-ops/genesis/testdata/test-deploy-config-full.json
View file @
eaa371a0
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
"optimismL1FeeRecipient"
:
"0x0000000000000000000000000000000000000000"
,
"optimismL1FeeRecipient"
:
"0x0000000000000000000000000000000000000000"
,
"l2CrossDomainMessengerOwner"
:
"0x42000000000000000000000000000000000000f2"
,
"l2CrossDomainMessengerOwner"
:
"0x42000000000000000000000000000000000000f2"
,
"gasPriceOracleOwner"
:
"0x42000000000000000000000000000000000000f3"
,
"gasPriceOracleOwner"
:
"0x42000000000000000000000000000000000000f3"
,
"proxyAdminOwner"
:
"0x0000000000000000000000000000000000000000"
,
"gasPriceOracleOverhead"
:
2100
,
"gasPriceOracleOverhead"
:
2100
,
"gasPriceOracleScalar"
:
1000000
,
"gasPriceOracleScalar"
:
1000000
,
"gasPriceOracleDecimals"
:
6
,
"gasPriceOracleDecimals"
:
6
,
...
...
op-e2e/e2eutils/setup.go
View file @
eaa371a0
...
@@ -168,6 +168,7 @@ func Setup(t require.TestingT, deployParams *DeployParams, alloc *AllocParams) *
...
@@ -168,6 +168,7 @@ func Setup(t require.TestingT, deployParams *DeployParams, alloc *AllocParams) *
}
}
l1Block
:=
l1Genesis
.
ToBlock
()
l1Block
:=
l1Genesis
.
ToBlock
()
l2Genesis
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
deployConf
,
l1Block
,
nil
)
l2Genesis
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
deployConf
,
l1Block
,
nil
)
require
.
NoError
(
t
,
err
,
"failed to create l2 genesis"
)
require
.
NoError
(
t
,
err
,
"failed to create l2 genesis"
)
if
alloc
.
PrefundTestUsers
{
if
alloc
.
PrefundTestUsers
{
...
...
op-node/cmd/genesis/cmd.go
View file @
eaa371a0
...
@@ -57,13 +57,7 @@ var Subcommands = cli.Commands{
...
@@ -57,13 +57,7 @@ var Subcommands = cli.Commands{
}
}
l1StartBlock
:=
l1Genesis
.
ToBlock
()
l1StartBlock
:=
l1Genesis
.
ToBlock
()
l2Addrs
:=
&
genesis
.
L2Addresses
{
l2Genesis
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
config
,
l1StartBlock
,
nil
)
ProxyAdmin
:
predeploys
.
DevProxyAdminAddr
,
L1StandardBridgeProxy
:
predeploys
.
DevL1StandardBridgeAddr
,
L1CrossDomainMessengerProxy
:
predeploys
.
DevL1CrossDomainMessengerAddr
,
L1ERC721BridgeProxy
:
predeploys
.
DevL1ERC721BridgeAddr
,
}
l2Genesis
,
err
:=
genesis
.
BuildL2DeveloperGenesis
(
config
,
l1StartBlock
,
l2Addrs
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -136,10 +130,6 @@ var Subcommands = cli.Commands{
...
@@ -136,10 +130,6 @@ var Subcommands = cli.Commands{
return
err
return
err
}
}
proxyAdmin
,
err
:=
hh
.
GetDeployment
(
"ProxyAdmin"
)
if
err
!=
nil
{
return
err
}
l1SBP
,
err
:=
hh
.
GetDeployment
(
"L1StandardBridgeProxy"
)
l1SBP
,
err
:=
hh
.
GetDeployment
(
"L1StandardBridgeProxy"
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
...
@@ -158,7 +148,7 @@ var Subcommands = cli.Commands{
...
@@ -158,7 +148,7 @@ var Subcommands = cli.Commands{
}
}
l2Addrs
:=
&
genesis
.
L2Addresses
{
l2Addrs
:=
&
genesis
.
L2Addresses
{
ProxyAdmin
:
proxyAdmin
.
Address
,
ProxyAdmin
Owner
:
config
.
ProxyAdminOwner
,
L1StandardBridgeProxy
:
l1SBP
.
Address
,
L1StandardBridgeProxy
:
l1SBP
.
Address
,
L1CrossDomainMessengerProxy
:
l1XDMP
.
Address
,
L1CrossDomainMessengerProxy
:
l1XDMP
.
Address
,
L1ERC721BridgeProxy
:
l1ERC721BP
.
Address
,
L1ERC721BridgeProxy
:
l1ERC721BP
.
Address
,
...
...
packages/contracts-bedrock/contracts/libraries/Predeploys.sol
View file @
eaa371a0
...
@@ -89,4 +89,9 @@ library Predeploys {
...
@@ -89,4 +89,9 @@ library Predeploys {
* L2ToL1MessagePasser contract instead.
* L2ToL1MessagePasser contract instead.
*/
*/
address internal constant LEGACY_MESSAGE_PASSER = 0x4200000000000000000000000000000000000000;
address internal constant LEGACY_MESSAGE_PASSER = 0x4200000000000000000000000000000000000000;
/**
* @notice Address of the ProxyAdmin predeploy.
*/
address internal constant PROXY_ADMIN = 0x4200000000000000000000000000000000000018;
}
}
packages/contracts-bedrock/hardhat.config.ts
View file @
eaa371a0
...
@@ -309,6 +309,10 @@ const config: HardhatUserConfig = {
...
@@ -309,6 +309,10 @@ const config: HardhatUserConfig = {
type
:
'
address
'
,
type
:
'
address
'
,
default
:
ethers
.
constants
.
AddressZero
,
default
:
ethers
.
constants
.
AddressZero
,
},
},
proxyAdminOwner
:
{
type
:
'
address
'
,
default
:
ethers
.
constants
.
AddressZero
,
},
gasPriceOracleOwner
:
{
gasPriceOracleOwner
:
{
type
:
'
address
'
,
type
:
'
address
'
,
default
:
ethers
.
constants
.
AddressZero
,
default
:
ethers
.
constants
.
AddressZero
,
...
...
packages/contracts-bedrock/src/constants.ts
View file @
eaa371a0
...
@@ -22,4 +22,9 @@ export const predeploys = {
...
@@ -22,4 +22,9 @@ export const predeploys = {
LegacyMessagePasser
:
'
0x4200000000000000000000000000000000000000
'
,
LegacyMessagePasser
:
'
0x4200000000000000000000000000000000000000
'
,
L2ERC721Bridge
:
'
0x4200000000000000000000000000000000000014
'
,
L2ERC721Bridge
:
'
0x4200000000000000000000000000000000000014
'
,
OptimismMintableERC721Factory
:
'
0x4200000000000000000000000000000000000017
'
,
OptimismMintableERC721Factory
:
'
0x4200000000000000000000000000000000000017
'
,
ProxyAdmin
:
'
0x4200000000000000000000000000000000000018
'
,
}
export
const
futurePredeploys
=
{
System1
:
'
0x4200000000000000000000000000000000000014
'
,
}
}
packages/contracts-bedrock/tasks/rekey.ts
View file @
eaa371a0
...
@@ -8,7 +8,7 @@ task('rekey', 'Generates a new set of keys for a test network').setAction(
...
@@ -8,7 +8,7 @@ task('rekey', 'Generates a new set of keys for a test network').setAction(
const
pathPrefix
=
"
m/44'/60'/0'/0
"
const
pathPrefix
=
"
m/44'/60'/0'/0
"
const
labels
=
[
const
labels
=
[
'
l2OutputOracleProposer
'
,
'
l2OutputOracleProposer
'
,
'
proxyAdmin
'
,
'
proxyAdmin
Owner
'
,
'
optimismBaseFeeRecipient
'
,
'
optimismBaseFeeRecipient
'
,
'
optimismL1FeeRecipient
'
,
'
optimismL1FeeRecipient
'
,
'
optimismL2FeeRecipient
'
,
'
optimismL2FeeRecipient
'
,
...
...
specs/predeploys.md
View file @
eaa371a0
...
@@ -5,8 +5,8 @@
...
@@ -5,8 +5,8 @@
**Table of Contents**
**Table of Contents**
-
[
Overview
](
#overview
)
-
[
Overview
](
#overview
)
-
[
OVM\_L2ToL1MessagePasser
](
#ovm%5C_
l2tol1messagepasser
)
-
[
L2ToL1MessagePasser
](
#
l2tol1messagepasser
)
-
[
OVM\_DeployerWhitelist
](
#ovm%5C_
deployerwhitelist
)
-
[
DeployerWhitelist
](
#
deployerwhitelist
)
-
[
OVM\_ETH
](
#ovm%5C_eth
)
-
[
OVM\_ETH
](
#ovm%5C_eth
)
-
[
WETH9
](
#weth9
)
-
[
WETH9
](
#weth9
)
-
[
L2CrossDomainMessenger
](
#l2crossdomainmessenger
)
-
[
L2CrossDomainMessenger
](
#l2crossdomainmessenger
)
...
@@ -14,8 +14,9 @@
...
@@ -14,8 +14,9 @@
-
[
SequencerFeeVault
](
#sequencerfeevault
)
-
[
SequencerFeeVault
](
#sequencerfeevault
)
-
[
OptimismMintableERC20Factory
](
#optimismmintableerc20factory
)
-
[
OptimismMintableERC20Factory
](
#optimismmintableerc20factory
)
-
[
L1BlockNumber
](
#l1blocknumber
)
-
[
L1BlockNumber
](
#l1blocknumber
)
-
[
OVM\_GasPriceOracle
](
#ovm%5C_
gaspriceoracle
)
-
[
GasPriceOracle
](
#
gaspriceoracle
)
-
[
L1Block
](
#l1block
)
-
[
L1Block
](
#l1block
)
-
[
ProxyAdmin
](
#proxyadmin
)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
...
@@ -52,8 +53,9 @@ or `Bedrock`. Deprecated contracts should not be used.
...
@@ -52,8 +53,9 @@ or `Bedrock`. Deprecated contracts should not be used.
| L2ToL1MessagePasser | 0x4200000000000000000000000000000000000016 | Bedrock | No |
| L2ToL1MessagePasser | 0x4200000000000000000000000000000000000016 | Bedrock | No |
| L2ERC721Bridge | 0x4200000000000000000000000000000000000014 | Legacy | No |
| L2ERC721Bridge | 0x4200000000000000000000000000000000000014 | Legacy | No |
| OptimismMintableERC721Factory | 0x4200000000000000000000000000000000000017 | Bedrock | No |
| OptimismMintableERC721Factory | 0x4200000000000000000000000000000000000017 | Bedrock | No |
| ProxyAdmin | 0x4200000000000000000000000000000000000018 | Bedrock | No |
##
OVM\_
L2ToL1MessagePasser
## L2ToL1MessagePasser
The
`OVM_L2ToL1MessagePasser`
stores commitments to withdrawal transactions.
The
`OVM_L2ToL1MessagePasser`
stores commitments to withdrawal transactions.
When a user is submitting the withdrawing transaction on L1, they provide a
When a user is submitting the withdrawing transaction on L1, they provide a
...
@@ -73,9 +75,9 @@ interface iLegacyOVM_L2ToL1MessagePasser {
...
@@ -73,9 +75,9 @@ interface iLegacyOVM_L2ToL1MessagePasser {
}
}
```
```
##
OVM\_
DeployerWhitelist
## DeployerWhitelist
The
`
OVM_
DeployerWhitelist`
is a predeploy used to provide additional
The
`DeployerWhitelist`
is a predeploy used to provide additional
safety during the initial phases of Optimism. It is owned by the
safety during the initial phases of Optimism. It is owned by the
Optimism team, and defines accounts which are allowed to deploy contracts to the
Optimism team, and defines accounts which are allowed to deploy contracts to the
network.
network.
...
@@ -90,7 +92,7 @@ In the Bedrock system, this contract will no longer be used as part of the
...
@@ -90,7 +92,7 @@ In the Bedrock system, this contract will no longer be used as part of the
This contract is deprecated and its usage should be avoided.
This contract is deprecated and its usage should be avoided.
```
solidity
```
solidity
interface i
OVM_
DeployerWhitelist {
interface iDeployerWhitelist {
event OwnerChanged(address,address);
event OwnerChanged(address,address);
event WhitelistStatusChanged(address,bool);
event WhitelistStatusChanged(address,bool);
event WhitelistDisabled(address);
event WhitelistDisabled(address);
...
@@ -249,9 +251,9 @@ interface iOVM_L1BlockNumber {
...
@@ -249,9 +251,9 @@ interface iOVM_L1BlockNumber {
}
}
```
```
##
OVM\_
GasPriceOracle
## GasPriceOracle
The
`
OVM_
GasPriceOracle`
is pushed the L1 basefee and the L2 gas price by
The
`GasPriceOracle`
is pushed the L1 basefee and the L2 gas price by
an offchain actor. The offchain actor observes the L1 blockheaders to get the
an offchain actor. The offchain actor observes the L1 blockheaders to get the
L1 basefee as well as the gas usage on L2 to compute what the L2 gas price
L1 basefee as well as the gas usage on L2 to compute what the L2 gas price
should be based on a congestion control algorithm.
should be based on a congestion control algorithm.
...
@@ -261,7 +263,7 @@ Bedrock, but it is still used to hold the `overhead`, `scalar`, and `decimals`
...
@@ -261,7 +263,7 @@ Bedrock, but it is still used to hold the `overhead`, `scalar`, and `decimals`
values which are used to compute the L1 portion of the transaction fee.
values which are used to compute the L1 portion of the transaction fee.
```
solidity
```
solidity
interface
OVM_
GasPriceOracle {
interface GasPriceOracle {
/**
/**
* @dev Returns the current gas price on L2
* @dev Returns the current gas price on L2
*/
*/
...
@@ -370,3 +372,9 @@ interface L1Block {
...
@@ -370,3 +372,9 @@ interface L1Block {
) external;
) external;
}
}
```
```
## ProxyAdmin
The
`ProxyAdmin`
is the owner of all of the proxy contracts set at the
predeploys. It is not behind a proxy itself. The owner of the
`ProxyAdmin`
will
have the ability to upgrade any of the other predeploy contracts.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment