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
776fea22
Commit
776fea22
authored
Jan 23, 2023
by
Andreas Bigger
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into refcell/l1_rpc
parents
cd64143e
747cf7b8
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1568 additions
and
73 deletions
+1568
-73
hardhat.go
op-bindings/hardhat/hardhat.go
+10
-0
hardhat_test.go
op-bindings/hardhat/hardhat_test.go
+14
-0
OptimismPortal.json
...gs/hardhat/testdata/deployments/alpha/OptimismPortal.json
+674
-0
OptimismPortalProxy.json
...rdhat/testdata/deployments/alpha/OptimismPortalProxy.json
+253
-0
Dockerfile
op-proposer/Dockerfile
+1
-0
docker.go.work
op-proposer/docker.go.work
+1
-0
flags.go
op-proposer/flags/flags.go
+2
-0
go.mod
op-proposer/go.mod
+4
-1
go.sum
op-proposer/go.sum
+9
-3
config.go
op-proposer/proposer/config.go
+8
-0
l2_output_submitter.go
op-proposer/proposer/l2_output_submitter.go
+46
-26
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+12
-10
L1StandardBridge.t.sol
...s/contracts-bedrock/contracts/test/L1StandardBridge.t.sol
+271
-23
L2StandardBridge.t.sol
...s/contracts-bedrock/contracts/test/L2StandardBridge.t.sol
+263
-10
No files found.
op-bindings/hardhat/hardhat.go
View file @
776fea22
...
@@ -76,6 +76,7 @@ func (h *Hardhat) init() error {
...
@@ -76,6 +76,7 @@ func (h *Hardhat) init() error {
// initDeployments reads all of the deployment json files from disk and then
// initDeployments reads all of the deployment json files from disk and then
// caches the deserialized `Deployment` structs.
// caches the deserialized `Deployment` structs.
func
(
h
*
Hardhat
)
initDeployments
()
error
{
func
(
h
*
Hardhat
)
initDeployments
()
error
{
knownDeployments
:=
make
(
map
[
string
]
string
)
for
_
,
deploymentPath
:=
range
h
.
DeploymentPaths
{
for
_
,
deploymentPath
:=
range
h
.
DeploymentPaths
{
fileSystem
:=
os
.
DirFS
(
filepath
.
Join
(
deploymentPath
,
h
.
network
))
fileSystem
:=
os
.
DirFS
(
filepath
.
Join
(
deploymentPath
,
h
.
network
))
err
:=
fs
.
WalkDir
(
fileSystem
,
"."
,
func
(
path
string
,
d
fs
.
DirEntry
,
err
error
)
error
{
err
:=
fs
.
WalkDir
(
fileSystem
,
"."
,
func
(
path
string
,
d
fs
.
DirEntry
,
err
error
)
error
{
...
@@ -103,7 +104,16 @@ func (h *Hardhat) initDeployments() error {
...
@@ -103,7 +104,16 @@ func (h *Hardhat) initDeployments() error {
}
}
deployment
.
Name
=
filepath
.
Base
(
name
[
:
len
(
name
)
-
5
])
deployment
.
Name
=
filepath
.
Base
(
name
[
:
len
(
name
)
-
5
])
if
knownDeployments
[
deployment
.
Name
]
!=
""
{
return
fmt
.
Errorf
(
"discovered duplicate deployment %s. old: %s, new: %s"
,
deployment
.
Name
,
knownDeployments
[
deployment
.
Name
],
name
,
)
}
h
.
deployments
=
append
(
h
.
deployments
,
&
deployment
)
h
.
deployments
=
append
(
h
.
deployments
,
&
deployment
)
knownDeployments
[
deployment
.
Name
]
=
name
return
nil
return
nil
})
})
if
err
!=
nil
{
if
err
!=
nil
{
...
...
op-bindings/hardhat/hardhat_test.go
View file @
776fea22
...
@@ -146,6 +146,20 @@ func TestHardhatGetDeployments(t *testing.T) {
...
@@ -146,6 +146,20 @@ func TestHardhatGetDeployments(t *testing.T) {
require
.
NotNil
(
t
,
deployment
)
require
.
NotNil
(
t
,
deployment
)
}
}
func
TestHardhatGetDeploymentsDuplicates
(
t
*
testing
.
T
)
{
t
.
Parallel
()
// Set the network to an empty string to simulate
// an invalid network name.
_
,
err
:=
hardhat
.
New
(
""
,
[]
string
{
"testdata/artifacts"
},
[]
string
{
"testdata/deployments"
},
)
require
.
Error
(
t
,
err
)
require
.
Contains
(
t
,
err
.
Error
(),
"duplicate deployment"
)
}
func
TestHardhatGetStorageLayout
(
t
*
testing
.
T
)
{
func
TestHardhatGetStorageLayout
(
t
*
testing
.
T
)
{
t
.
Parallel
()
t
.
Parallel
()
...
...
op-bindings/hardhat/testdata/deployments/alpha/OptimismPortal.json
0 → 100644
View file @
776fea22
This diff is collapsed.
Click to expand it.
op-bindings/hardhat/testdata/deployments/alpha/OptimismPortalProxy.json
0 → 100644
View file @
776fea22
This diff is collapsed.
Click to expand it.
op-proposer/Dockerfile
View file @
776fea22
...
@@ -8,6 +8,7 @@ COPY ./op-bindings /app/op-bindings
...
@@ -8,6 +8,7 @@ COPY ./op-bindings /app/op-bindings
COPY
./op-node /app/op-node
COPY
./op-node /app/op-node
COPY
./op-proposer /app/op-proposer
COPY
./op-proposer /app/op-proposer
COPY
./op-service /app/op-service
COPY
./op-service /app/op-service
COPY
./op-signer /app/op-signer
COPY
./.git /app/.git
COPY
./.git /app/.git
WORKDIR
/app/op-proposer
WORKDIR
/app/op-proposer
...
...
op-proposer/docker.go.work
View file @
776fea22
...
@@ -5,4 +5,5 @@ use (
...
@@ -5,4 +5,5 @@ use (
./op-node
./op-node
./op-proposer
./op-proposer
./op-service
./op-service
./op-signer
)
)
op-proposer/flags/flags.go
View file @
776fea22
...
@@ -8,6 +8,7 @@ import (
...
@@ -8,6 +8,7 @@ import (
opmetrics
"github.com/ethereum-optimism/optimism/op-service/metrics"
opmetrics
"github.com/ethereum-optimism/optimism/op-service/metrics"
oppprof
"github.com/ethereum-optimism/optimism/op-service/pprof"
oppprof
"github.com/ethereum-optimism/optimism/op-service/pprof"
oprpc
"github.com/ethereum-optimism/optimism/op-service/rpc"
oprpc
"github.com/ethereum-optimism/optimism/op-service/rpc"
opsigner
"github.com/ethereum-optimism/optimism/op-signer/client"
)
)
const
envVarPrefix
=
"OP_PROPOSER"
const
envVarPrefix
=
"OP_PROPOSER"
...
@@ -112,6 +113,7 @@ func init() {
...
@@ -112,6 +113,7 @@ func init() {
optionalFlags
=
append
(
optionalFlags
,
oplog
.
CLIFlags
(
envVarPrefix
)
...
)
optionalFlags
=
append
(
optionalFlags
,
oplog
.
CLIFlags
(
envVarPrefix
)
...
)
optionalFlags
=
append
(
optionalFlags
,
opmetrics
.
CLIFlags
(
envVarPrefix
)
...
)
optionalFlags
=
append
(
optionalFlags
,
opmetrics
.
CLIFlags
(
envVarPrefix
)
...
)
optionalFlags
=
append
(
optionalFlags
,
oppprof
.
CLIFlags
(
envVarPrefix
)
...
)
optionalFlags
=
append
(
optionalFlags
,
oppprof
.
CLIFlags
(
envVarPrefix
)
...
)
optionalFlags
=
append
(
optionalFlags
,
opsigner
.
CLIFlags
(
envVarPrefix
)
...
)
Flags
=
append
(
requiredFlags
,
optionalFlags
...
)
Flags
=
append
(
requiredFlags
,
optionalFlags
...
)
}
}
...
...
op-proposer/go.mod
View file @
776fea22
...
@@ -7,6 +7,7 @@ require (
...
@@ -7,6 +7,7 @@ require (
github.com/ethereum-optimism/optimism/op-bindings v0.10.10
github.com/ethereum-optimism/optimism/op-bindings v0.10.10
github.com/ethereum-optimism/optimism/op-node v0.10.10
github.com/ethereum-optimism/optimism/op-node v0.10.10
github.com/ethereum-optimism/optimism/op-service v0.10.10
github.com/ethereum-optimism/optimism/op-service v0.10.10
github.com/ethereum-optimism/optimism/op-signer v0.1.0
github.com/ethereum/go-ethereum v1.10.26
github.com/ethereum/go-ethereum v1.10.26
github.com/stretchr/testify v1.8.1
github.com/stretchr/testify v1.8.1
github.com/urfave/cli v1.22.9
github.com/urfave/cli v1.22.9
...
@@ -25,7 +26,9 @@ require (
...
@@ -25,7 +26,9 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set v1.8.0 // indirect
github.com/deckarep/golang-set v1.8.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/dyson/certman v0.3.0 // indirect
github.com/fjl/memsize v0.0.1 // indirect
github.com/fjl/memsize v0.0.1 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
...
@@ -89,7 +92,7 @@ require (
...
@@ -89,7 +92,7 @@ require (
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
golang.org/x/sync v0.
0.0-20220722155255-886fb9371eb4
// indirect
golang.org/x/sync v0.
1.0
// indirect
golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect
golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect
...
...
op-proposer/go.sum
View file @
776fea22
...
@@ -98,6 +98,8 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1
...
@@ -98,6 +98,8 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc=
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/dyson/certman v0.3.0 h1:S7WCUim5faT/OiBhiY3u5cMaiC9MNKiA+8PJDXLaIYQ=
github.com/dyson/certman v0.3.0/go.mod h1:RMWlyA9op6D9SxOBRRX3sxnParehv9gf52WWUJPd1JA=
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
...
@@ -113,12 +115,15 @@ github.com/ethereum-optimism/optimism/op-node v0.10.10 h1:edmxboiYSIk9n4A3paEF7I
...
@@ -113,12 +115,15 @@ github.com/ethereum-optimism/optimism/op-node v0.10.10 h1:edmxboiYSIk9n4A3paEF7I
github.com/ethereum-optimism/optimism/op-node v0.10.10/go.mod h1:EEcHgMdKiWasJGO5uzspRN2xM1/OB+ehgVgMj4RgPas=
github.com/ethereum-optimism/optimism/op-node v0.10.10/go.mod h1:EEcHgMdKiWasJGO5uzspRN2xM1/OB+ehgVgMj4RgPas=
github.com/ethereum-optimism/optimism/op-service v0.10.10 h1:B5mGpATX6zPkDABoh6smCjh6Z5mA2KWh71MD1i6T5ww=
github.com/ethereum-optimism/optimism/op-service v0.10.10 h1:B5mGpATX6zPkDABoh6smCjh6Z5mA2KWh71MD1i6T5ww=
github.com/ethereum-optimism/optimism/op-service v0.10.10/go.mod h1:wbtHqi1fv00B3agj7a2zdP3OFanEfGZ23zPgGgFCF/c=
github.com/ethereum-optimism/optimism/op-service v0.10.10/go.mod h1:wbtHqi1fv00B3agj7a2zdP3OFanEfGZ23zPgGgFCF/c=
github.com/ethereum-optimism/optimism/op-signer v0.1.0 h1:wH44Deai43YQWO0pEd44pDm3BahdAtSmrOHKiPvTB8Y=
github.com/ethereum-optimism/optimism/op-signer v0.1.0/go.mod h1:u8sN6X/c20pP9F1Ey7jH3fi19D08Y+T9ep3PGJfdyi8=
github.com/fjl/memsize v0.0.1 h1:+zhkb+dhUgx0/e+M8sF0QqiouvMQUiKR+QYvdxIOKcQ=
github.com/fjl/memsize v0.0.1 h1:+zhkb+dhUgx0/e+M8sF0QqiouvMQUiKR+QYvdxIOKcQ=
github.com/fjl/memsize v0.0.1/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0=
github.com/fjl/memsize v0.0.1/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays=
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
...
@@ -527,8 +532,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
...
@@ -527,8 +532,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.
0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw
=
golang.org/x/sync v0.
1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o
=
golang.org/x/sync v0.
0.0-20220722155255-886fb9371eb4
/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.
1.0
/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
...
@@ -586,6 +591,7 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc
...
@@ -586,6 +591,7 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4=
golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4=
golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
...
...
op-proposer/proposer/config.go
View file @
776fea22
...
@@ -14,6 +14,7 @@ import (
...
@@ -14,6 +14,7 @@ import (
opmetrics
"github.com/ethereum-optimism/optimism/op-service/metrics"
opmetrics
"github.com/ethereum-optimism/optimism/op-service/metrics"
oppprof
"github.com/ethereum-optimism/optimism/op-service/pprof"
oppprof
"github.com/ethereum-optimism/optimism/op-service/pprof"
oprpc
"github.com/ethereum-optimism/optimism/op-service/rpc"
oprpc
"github.com/ethereum-optimism/optimism/op-service/rpc"
opsigner
"github.com/ethereum-optimism/optimism/op-signer/client"
)
)
// Config contains the well typed fields that are used to initialize the output submitter.
// Config contains the well typed fields that are used to initialize the output submitter.
...
@@ -86,6 +87,9 @@ type CLIConfig struct {
...
@@ -86,6 +87,9 @@ type CLIConfig struct {
MetricsConfig
opmetrics
.
CLIConfig
MetricsConfig
opmetrics
.
CLIConfig
PprofConfig
oppprof
.
CLIConfig
PprofConfig
oppprof
.
CLIConfig
// SignerConfig contains the client config for op-signer service
SignerConfig
opsigner
.
CLIConfig
}
}
func
(
c
CLIConfig
)
Check
()
error
{
func
(
c
CLIConfig
)
Check
()
error
{
...
@@ -101,6 +105,9 @@ func (c CLIConfig) Check() error {
...
@@ -101,6 +105,9 @@ func (c CLIConfig) Check() error {
if
err
:=
c
.
PprofConfig
.
Check
();
err
!=
nil
{
if
err
:=
c
.
PprofConfig
.
Check
();
err
!=
nil
{
return
err
return
err
}
}
if
err
:=
c
.
SignerConfig
.
Check
();
err
!=
nil
{
return
err
}
return
nil
return
nil
}
}
...
@@ -124,5 +131,6 @@ func NewConfig(ctx *cli.Context) CLIConfig {
...
@@ -124,5 +131,6 @@ func NewConfig(ctx *cli.Context) CLIConfig {
LogConfig
:
oplog
.
ReadCLIConfig
(
ctx
),
LogConfig
:
oplog
.
ReadCLIConfig
(
ctx
),
MetricsConfig
:
opmetrics
.
ReadCLIConfig
(
ctx
),
MetricsConfig
:
opmetrics
.
ReadCLIConfig
(
ctx
),
PprofConfig
:
oppprof
.
ReadCLIConfig
(
ctx
),
PprofConfig
:
oppprof
.
ReadCLIConfig
(
ctx
),
SignerConfig
:
opsigner
.
ReadCLIConfig
(
ctx
),
}
}
}
}
op-proposer/proposer/l2_output_submitter.go
View file @
776fea22
...
@@ -18,6 +18,7 @@ import (
...
@@ -18,6 +18,7 @@ import (
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/ethclient"
...
@@ -34,6 +35,7 @@ import (
...
@@ -34,6 +35,7 @@ import (
opmetrics
"github.com/ethereum-optimism/optimism/op-service/metrics"
opmetrics
"github.com/ethereum-optimism/optimism/op-service/metrics"
oppprof
"github.com/ethereum-optimism/optimism/op-service/pprof"
oppprof
"github.com/ethereum-optimism/optimism/op-service/pprof"
oprpc
"github.com/ethereum-optimism/optimism/op-service/rpc"
oprpc
"github.com/ethereum-optimism/optimism/op-service/rpc"
opsigner
"github.com/ethereum-optimism/optimism/op-signer/client"
)
)
const
(
const
(
...
@@ -160,29 +162,54 @@ func NewL2OutputSubmitter(cfg CLIConfig, l log.Logger) (*L2OutputSubmitter, erro
...
@@ -160,29 +162,54 @@ func NewL2OutputSubmitter(cfg CLIConfig, l log.Logger) (*L2OutputSubmitter, erro
var
l2OutputPrivKey
*
ecdsa
.
PrivateKey
var
l2OutputPrivKey
*
ecdsa
.
PrivateKey
var
err
error
var
err
error
if
cfg
.
PrivateKey
!=
""
&&
cfg
.
Mnemonic
!=
""
{
var
signer
SignerFactory
return
nil
,
errors
.
New
(
"cannot specify both a private key and a mnemonic"
)
var
fromAddress
common
.
Address
}
if
cfg
.
SignerConfig
.
Enabled
()
{
signerClient
,
err
:=
opsigner
.
NewSignerClientFromConfig
(
l
,
cfg
.
SignerConfig
)
if
cfg
.
PrivateKey
==
""
{
// Parse l2output wallet private key and L2OO contract address.
wallet
,
err
:=
hdwallet
.
NewFromMnemonic
(
cfg
.
Mnemonic
)
if
err
!=
nil
{
if
err
!=
nil
{
l
.
Error
(
"Unable to create Signer Client"
,
"error"
,
err
)
return
nil
,
err
return
nil
,
err
}
}
fromAddress
=
common
.
BytesToAddress
(
hexutil
.
MustDecode
(
cfg
.
SignerConfig
.
Address
))
l2OutputPrivKey
,
err
=
wallet
.
PrivateKey
(
accounts
.
Account
{
signer
=
func
(
chainID
*
big
.
Int
)
SignerFn
{
URL
:
accounts
.
URL
{
return
func
(
ctx
context
.
Context
,
address
common
.
Address
,
tx
*
types
.
Transaction
)
(
*
types
.
Transaction
,
error
)
{
Path
:
cfg
.
L2OutputHDPath
,
if
address
.
String
()
!=
cfg
.
SignerConfig
.
Address
{
},
return
nil
,
fmt
.
Errorf
(
"attempting to sign for %s, expected %s: "
,
address
,
cfg
.
SignerConfig
.
Address
)
})
}
if
err
!=
nil
{
return
signerClient
.
SignTransaction
(
ctx
,
tx
)
return
nil
,
err
}
}
}
}
else
{
}
else
{
l2OutputPrivKey
,
err
=
crypto
.
HexToECDSA
(
strings
.
TrimPrefix
(
cfg
.
PrivateKey
,
"0x"
))
if
cfg
.
PrivateKey
!=
""
&&
cfg
.
Mnemonic
!=
""
{
if
err
!=
nil
{
return
nil
,
errors
.
New
(
"cannot specify both a private key and a mnemonic"
)
return
nil
,
err
}
if
cfg
.
PrivateKey
==
""
{
// Parse l2output wallet private key and L2OO contract address.
wallet
,
err
:=
hdwallet
.
NewFromMnemonic
(
cfg
.
Mnemonic
)
if
err
!=
nil
{
return
nil
,
err
}
l2OutputPrivKey
,
err
=
wallet
.
PrivateKey
(
accounts
.
Account
{
URL
:
accounts
.
URL
{
Path
:
cfg
.
L2OutputHDPath
,
},
})
if
err
!=
nil
{
return
nil
,
err
}
}
else
{
l2OutputPrivKey
,
err
=
crypto
.
HexToECDSA
(
strings
.
TrimPrefix
(
cfg
.
PrivateKey
,
"0x"
))
if
err
!=
nil
{
return
nil
,
err
}
}
fromAddress
=
crypto
.
PubkeyToAddress
(
l2OutputPrivKey
.
PublicKey
)
signer
=
func
(
chainID
*
big
.
Int
)
SignerFn
{
s
:=
opcrypto
.
PrivateKeySignerFn
(
l2OutputPrivKey
,
chainID
)
return
func
(
_
context
.
Context
,
addr
common
.
Address
,
tx
*
types
.
Transaction
)
(
*
types
.
Transaction
,
error
)
{
return
s
(
addr
,
tx
)
}
}
}
}
}
...
@@ -204,13 +231,6 @@ func NewL2OutputSubmitter(cfg CLIConfig, l log.Logger) (*L2OutputSubmitter, erro
...
@@ -204,13 +231,6 @@ func NewL2OutputSubmitter(cfg CLIConfig, l log.Logger) (*L2OutputSubmitter, erro
return
nil
,
err
return
nil
,
err
}
}
signer
:=
func
(
chainID
*
big
.
Int
)
SignerFn
{
s
:=
opcrypto
.
PrivateKeySignerFn
(
l2OutputPrivKey
,
chainID
)
return
func
(
_
context
.
Context
,
addr
common
.
Address
,
tx
*
types
.
Transaction
)
(
*
types
.
Transaction
,
error
)
{
return
s
(
addr
,
tx
)
}
}
txMgrConfg
:=
txmgr
.
Config
{
txMgrConfg
:=
txmgr
.
Config
{
Log
:
l
,
Log
:
l
,
Name
:
"L2Output Submitter"
,
Name
:
"L2Output Submitter"
,
...
@@ -227,7 +247,7 @@ func NewL2OutputSubmitter(cfg CLIConfig, l log.Logger) (*L2OutputSubmitter, erro
...
@@ -227,7 +247,7 @@ func NewL2OutputSubmitter(cfg CLIConfig, l log.Logger) (*L2OutputSubmitter, erro
L1Client
:
l1Client
,
L1Client
:
l1Client
,
RollupClient
:
rollupClient
,
RollupClient
:
rollupClient
,
AllowNonFinalized
:
cfg
.
AllowNonFinalized
,
AllowNonFinalized
:
cfg
.
AllowNonFinalized
,
From
:
crypto
.
PubkeyToAddress
(
l2OutputPrivKey
.
PublicKey
)
,
From
:
fromAddress
,
SignerFnFactory
:
signer
,
SignerFnFactory
:
signer
,
}
}
...
...
packages/contracts-bedrock/.gas-snapshot
View file @
776fea22
...
@@ -92,16 +92,17 @@ L1ERC721Bridge_Test:test_finalizeBridgeERC721_notFromRemoteMessenger_reverts() (
...
@@ -92,16 +92,17 @@ L1ERC721Bridge_Test:test_finalizeBridgeERC721_notFromRemoteMessenger_reverts() (
L1ERC721Bridge_Test:test_finalizeBridgeERC721_notViaLocalMessenger_reverts() (gas: 16093)
L1ERC721Bridge_Test:test_finalizeBridgeERC721_notViaLocalMessenger_reverts() (gas: 16093)
L1ERC721Bridge_Test:test_finalizeBridgeERC721_selfToken_reverts() (gas: 17593)
L1ERC721Bridge_Test:test_finalizeBridgeERC721_selfToken_reverts() (gas: 17593)
L1ERC721Bridge_Test:test_finalizeBridgeERC721_succeeds() (gas: 323814)
L1ERC721Bridge_Test:test_finalizeBridgeERC721_succeeds() (gas: 323814)
L1StandardBridge_DepositERC20To_Test:test_depositERC20To_succeeds() (gas:
576276
)
L1StandardBridge_DepositERC20To_Test:test_depositERC20To_succeeds() (gas:
624279
)
L1StandardBridge_DepositERC20_Test:test_depositERC20_succeeds() (gas:
574103
)
L1StandardBridge_DepositERC20_Test:test_depositERC20_succeeds() (gas:
621958
)
L1StandardBridge_DepositERC20_TestFail:test_depositERC20_notEoa_reverts() (gas: 22320)
L1StandardBridge_DepositERC20_TestFail:test_depositERC20_notEoa_reverts() (gas: 22320)
L1StandardBridge_DepositETHTo_Test:test_depositETHTo_succeeds() (gas: 3
24839
)
L1StandardBridge_DepositETHTo_Test:test_depositETHTo_succeeds() (gas: 3
58590
)
L1StandardBridge_DepositETH_Test:test_depositETH_succeeds() (gas:
367666
)
L1StandardBridge_DepositETH_Test:test_depositETH_succeeds() (gas:
401413
)
L1StandardBridge_DepositETH_TestFail:test_depositETH_notEoa_reverts() (gas: 40780)
L1StandardBridge_DepositETH_TestFail:test_depositETH_notEoa_reverts() (gas: 40780)
L1StandardBridge_FinalizeBridgeETH_Test:test_finalizeBridgeETH_succeeds() (gas: 48661)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 34207)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 34207)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 34288)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 34288)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 34257)
L1StandardBridge_FinalizeBridgeETH_TestFail:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 34257)
L1StandardBridge_FinalizeERC20Withdrawal_Test:test_finalizeERC20Withdrawal_succeeds() (gas: 49
2896
)
L1StandardBridge_FinalizeERC20Withdrawal_Test:test_finalizeERC20Withdrawal_succeeds() (gas: 49
5885
)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notMessenger_reverts() (gas: 31148)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notMessenger_reverts() (gas: 31148)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notOtherBridge_reverts() (gas: 31504)
L1StandardBridge_FinalizeERC20Withdrawal_TestFail:test_finalizeERC20Withdrawal_notOtherBridge_reverts() (gas: 31504)
L1StandardBridge_FinalizeETHWithdrawal_Test:test_finalizeETHWithdrawal_succeeds() (gas: 58686)
L1StandardBridge_FinalizeETHWithdrawal_Test:test_finalizeETHWithdrawal_succeeds() (gas: 58686)
...
@@ -163,16 +164,17 @@ L2OutputOracleUpgradeable_Test:test_initValuesOnProxy_succeeds() (gas: 26093)
...
@@ -163,16 +164,17 @@ L2OutputOracleUpgradeable_Test:test_initValuesOnProxy_succeeds() (gas: 26093)
L2OutputOracleUpgradeable_Test:test_initializeImpl_alreadyInitialized_reverts() (gas: 15149)
L2OutputOracleUpgradeable_Test:test_initializeImpl_alreadyInitialized_reverts() (gas: 15149)
L2OutputOracleUpgradeable_Test:test_initializeProxy_alreadyInitialized_reverts() (gas: 20131)
L2OutputOracleUpgradeable_Test:test_initializeProxy_alreadyInitialized_reverts() (gas: 20131)
L2OutputOracleUpgradeable_Test:test_upgrading_succeeds() (gas: 180413)
L2OutputOracleUpgradeable_Test:test_upgrading_succeeds() (gas: 180413)
L2StandardBridge_FinalizeBridgeETH_Test:test_finalizeBridgeETH_succeeds() (gas: 36076)
L2StandardBridge_Test:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 23843)
L2StandardBridge_Test:test_finalizeBridgeETH_incorrectValue_reverts() (gas: 23843)
L2StandardBridge_Test:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 23982)
L2StandardBridge_Test:test_finalizeBridgeETH_sendToMessenger_reverts() (gas: 23982)
L2StandardBridge_Test:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 23893)
L2StandardBridge_Test:test_finalizeBridgeETH_sendToSelf_reverts() (gas: 23893)
L2StandardBridge_Test:test_finalizeDeposit_succeeds() (gas:
89473
)
L2StandardBridge_Test:test_finalizeDeposit_succeeds() (gas:
90641
)
L2StandardBridge_Test:test_initialize_succeeds() (gas: 24270)
L2StandardBridge_Test:test_initialize_succeeds() (gas: 24270)
L2StandardBridge_Test:test_receive_succeeds() (gas: 1
41940
)
L2StandardBridge_Test:test_receive_succeeds() (gas: 1
76698
)
L2StandardBridge_Test:test_withdrawTo_succeeds() (gas: 3
44914
)
L2StandardBridge_Test:test_withdrawTo_succeeds() (gas: 3
84552
)
L2StandardBridge_Test:test_withdraw_insufficientValue_reverts() (gas: 19627)
L2StandardBridge_Test:test_withdraw_insufficientValue_reverts() (gas: 19627)
L2StandardBridge_Test:test_withdraw_notEOA_reverts() (gas: 251
798
)
L2StandardBridge_Test:test_withdraw_notEOA_reverts() (gas: 251
836
)
L2StandardBridge_Test:test_withdraw_succeeds() (gas: 3
44228
)
L2StandardBridge_Test:test_withdraw_succeeds() (gas: 3
82649
)
L2ToL1MessagePasserTest:test_burn_succeeds() (gas: 112572)
L2ToL1MessagePasserTest:test_burn_succeeds() (gas: 112572)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract_succeeds() (gas: 70423)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromContract_succeeds() (gas: 70423)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA_succeeds() (gas: 75874)
L2ToL1MessagePasserTest:test_initiateWithdrawal_fromEOA_succeeds() (gas: 75874)
...
...
packages/contracts-bedrock/contracts/test/L1StandardBridge.t.sol
View file @
776fea22
This diff is collapsed.
Click to expand it.
packages/contracts-bedrock/contracts/test/L2StandardBridge.t.sol
View file @
776fea22
This diff is collapsed.
Click to expand it.
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