Skip to content

Commit 514c21d

Browse files
authored
Merge branch 'ethereum-optimism:develop' into develop
2 parents 1caafbd + 9047beb commit 514c21d

File tree

299 files changed

+25746
-2419
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

299 files changed

+25746
-2419
lines changed

Diff for: .circleci/config.yml

+20-15
Original file line numberDiff line numberDiff line change
@@ -239,15 +239,18 @@ jobs:
239239
- ".devnet/allocs-l1.json"
240240
- ".devnet/allocs-l2.json"
241241
- ".devnet/allocs-l2-delta.json"
242+
- ".devnet/allocs-l2-ecotone.json"
242243
- ".devnet/addresses.json"
243244
- ".devnet-fault-proofs/allocs-l1.json"
244245
- ".devnet-fault-proofs/addresses.json"
245246
- ".devnet-fault-proofs/allocs-l2.json"
246247
- ".devnet-fault-proofs/allocs-l2-delta.json"
248+
- ".devnet-fault-proofs/allocs-l2-ecotone.json"
247249
- ".devnet-plasma/allocs-l1.json"
248250
- ".devnet-plasma/addresses.json"
249251
- ".devnet-plasma/allocs-l2.json"
250252
- ".devnet-plasma/allocs-l2-delta.json"
253+
- ".devnet-plasma/allocs-l2-ecotone.json"
251254
- "packages/contracts-bedrock/deploy-config/devnetL1.json"
252255
- "packages/contracts-bedrock/deployments/devnetL1"
253256
- notify-failures-on-develop
@@ -333,20 +336,20 @@ jobs:
333336
echo "Tags at commit:\n$tags_at_commit"
334337
335338
filtered_tags=$(echo "$tags_at_commit" | grep "^<<parameters.docker_name>>/" || true)
336-
echo "Filtered tags:\n$filtered_tags"
339+
echo "Filtered tags: $filtered_tags"
337340
338341
if [ -z "$filtered_tags" ]; then
339342
export GIT_VERSION="untagged"
340343
else
341344
sorted_tags=$(echo "$filtered_tags" | sed "s/<<parameters.docker_name>>\///" | sort -V)
342-
echo "Sorted tags:\n$sorted_tags"
345+
echo "Sorted tags: $sorted_tags"
343346
344347
# prefer full release tag over "-rc" release candidate tag if both exist
345348
full_release_tag=$(echo "$sorted_tags" | grep -v -- "-rc" || true)
346349
if [ -z "$full_release_tag" ]; then
347350
export GIT_VERSION=$(echo "$sorted_tags" | tail -n 1)
348351
else
349-
export GIT_VERSION=$(echo "$full_release_tag")
352+
export GIT_VERSION=$(echo "$full_release_tag" | tail -n 1)
350353
fi
351354
fi
352355
@@ -567,11 +570,21 @@ jobs:
567570
- run:
568571
name: Install dependencies
569572
command: pnpm install:ci
570-
# Note: this step needs to come first because one of the later steps modifies the cache & forces a contracts rebuild
571573
- run:
572574
name: forge version
573575
command: forge --version
574576
- run:
577+
# The solc warnings check must be the first step to build the contracts, that way the
578+
# warnings are output here. On subsequent runs, forge will read artifacts from the cache
579+
# so warnings would not occur.
580+
name: solc warnings check
581+
command: |
582+
forge build --deny-warnings || echo "export SOLC_WARNINGS_CHECK=1" >> "$BASH_ENV"
583+
environment:
584+
FOUNDRY_PROFILE: ci
585+
working_directory: packages/contracts-bedrock
586+
- run:
587+
# Semver lock must come second because one of the later steps may modify the cache & force a contracts rebuild.
575588
name: semver lock
576589
command: |
577590
pnpm semver-lock
@@ -586,16 +599,6 @@ jobs:
586599
command: |
587600
pnpm lint:check || echo "export LINT_STATUS=1" >> "$BASH_ENV"
588601
working_directory: packages/contracts-bedrock
589-
- run:
590-
# The solc warnings check must be the first step to build the contracts, that way the
591-
# warnings are output here. On subsequent runs, forge will read artifacts from the cache
592-
# so warnings would not occur.
593-
name: solc warnings check
594-
command: |
595-
forge build --deny-warnings || echo "export SOLC_WARNINGS_CHECK=1" >> "$BASH_ENV"
596-
environment:
597-
FOUNDRY_PROFILE: ci
598-
working_directory: packages/contracts-bedrock
599602
- run:
600603
name: gas snapshot
601604
command: |
@@ -1018,6 +1021,7 @@ jobs:
10181021
mkdir -p .devnet
10191022
cp /tmp/workspace/.devnet<<parameters.fpac>>/allocs-l2.json .devnet/allocs-l2.json
10201023
cp /tmp/workspace/.devnet<<parameters.fpac>>/allocs-l2-delta.json .devnet/allocs-l2-delta.json
1024+
cp /tmp/workspace/.devnet<<parameters.fpac>>/allocs-l2-ecotone.json .devnet/allocs-l2-ecotone.json
10211025
cp /tmp/workspace/.devnet<<parameters.fpac>>/allocs-l1.json .devnet/allocs-l1.json
10221026
cp /tmp/workspace/.devnet<<parameters.fpac>>/addresses.json .devnet/addresses.json
10231027
cp /tmp/workspace/packages/contracts-bedrock/deploy-config/devnetL1.json packages/contracts-bedrock/deploy-config/devnetL1.json
@@ -1260,6 +1264,7 @@ jobs:
12601264
paths:
12611265
- ".devnet/allocs-l2.json"
12621266
- ".devnet/allocs-l2-delta.json"
1267+
- ".devnet/allocs-l2-ecotone.json"
12631268
- ".devnet/allocs-l1.json"
12641269
- ".devnet/addresses.json"
12651270
- "packages/contracts-bedrock/deploy-config/devnetL1.json"
@@ -1643,7 +1648,7 @@ jobs:
16431648
command: make submodules
16441649
- check-changed:
16451650
no_go_deps: "true"
1646-
patterns: contracts-bedrock/test/kontrol,contracts-bedrock/src/L1/OptimismPortal\.sol,contracts-bedrock/src/L1/L1CrossDomainMessenger\.sol,contracts-bedrock/src/L1/L1ERC721Bridge\.sol,contracts-bedrock/src/L1/L1StandardBridge\.sol,contracts-bedrock/src/L1/ResourceMetering\.sol,contracts-bedrock/src/universal/StandardBridge\.sol,contracts-bedrock/src/universal/ERC721Bridge\.sol,contracts-bedrock/src/universal/CrossDomainMessenger\.sol
1651+
patterns: contracts-bedrock/test/kontrol,contracts-bedrock/src/L1/OptimismPortal\.sol,contracts-bedrock/src/L1/OptimismPortal2\.sol,contracts-bedrock/src/L1/L1CrossDomainMessenger\.sol,contracts-bedrock/src/L1/L1ERC721Bridge\.sol,contracts-bedrock/src/L1/L1StandardBridge\.sol,contracts-bedrock/src/L1/ResourceMetering\.sol,contracts-bedrock/src/universal/StandardBridge\.sol,contracts-bedrock/src/universal/ERC721Bridge\.sol,contracts-bedrock/src/universal/CrossDomainMessenger\.sol
16471652
- setup_remote_docker:
16481653
docker_layer_caching: true
16491654
- run:

Diff for: .github/CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
/op-heartbeat @ethereum-optimism/go-reviewers
1919
/op-node @ethereum-optimism/go-reviewers
2020
/op-node/rollup @protolambda @trianglesphere @ajsutton
21+
/op-plasma @ethereum-optimism/go-reviewers
2122
/op-preimage @ethereum-optimism/go-reviewers
2223
/op-program @ethereum-optimism/go-reviewers
2324
/op-proposer @ethereum-optimism/go-reviewers

Diff for: Makefile

-5
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,6 @@ test-unit:
217217
pnpm test
218218
.PHONY: test-unit
219219

220-
test-integration:
221-
bash ./ops-bedrock/test-integration.sh \
222-
./packages/contracts-bedrock/deployments/devnetL1
223-
.PHONY: test-integration
224-
225220
# Remove the baseline-commit to generate a base reading & show all issues
226221
semgrep:
227222
$(eval DEV_REF := $(shell git rev-parse develop))

Diff for: bedrock-devnet/devnet/__init__.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ def devnet_l2_allocs(paths):
170170

171171
# For the previous forks, and the latest fork (default, thus empty prefix),
172172
# move the forge-dumps into place as .devnet allocs.
173-
for suffix in ["-delta", ""]:
173+
for suffix in ["-delta", "-ecotone", ""]:
174174
input_path = pjoin(paths.contracts_bedrock_dir, f"state-dump-901{suffix}.json")
175175
output_path = pjoin(paths.devnet_dir, f'allocs-l2{suffix}.json')
176176
shutil.move(src=input_path, dst=output_path)
@@ -273,8 +273,10 @@ def devnet_deploy(paths):
273273

274274
if DEVNET_PLASMA:
275275
docker_env['PLASMA_ENABLED'] = 'true'
276+
docker_env['PLASMA_DA_SERVICE'] = 'false'
276277
else:
277278
docker_env['PLASMA_ENABLED'] = 'false'
279+
docker_env['PLASMA_DA_SERVICE'] = 'false'
278280

279281
# Bring up the rest of the services.
280282
log.info('Bringing up `op-node`, `op-proposer` and `op-batcher`.')

Diff for: cannon/Makefile

+14-9
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ LDFLAGSSTRING +=-X github.com/ethereum-optimism/optimism/op-program/version.Vers
88
LDFLAGSSTRING +=-X github.com/ethereum-optimism/optimism/op-program/version.Meta=$(VERSION_META)
99
LDFLAGS := -ldflags "$(LDFLAGSSTRING)"
1010

11+
# Use the old Apple linker to workaround broken xcode - https://github.com/golang/go/issues/65169
12+
ifeq ($(shell uname),Darwin)
13+
FUZZLDFLAGS := -ldflags=-extldflags=-Wl,-ld_classic
14+
endif
15+
1116
cannon:
1217
env GO111MODULE=on GOOS=$(TARGETOS) GOARCH=$(TARGETARCH) go build -v $(LDFLAGS) -o ./bin/cannon .
1318

@@ -21,15 +26,15 @@ test: elf
2126
go test -v ./...
2227

2328
fuzz:
24-
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallBrk ./mipsevm
25-
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallClone ./mipsevm
26-
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallMmap ./mipsevm
27-
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallExitGroup ./mipsevm
28-
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallFnctl ./mipsevm
29-
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintRead ./mipsevm
30-
go test -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageRead ./mipsevm
31-
go test -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintWrite ./mipsevm
32-
go test -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageWrite ./mipsevm
29+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallBrk ./mipsevm
30+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallClone ./mipsevm
31+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallMmap ./mipsevm
32+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallExitGroup ./mipsevm
33+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateSyscallFnctl ./mipsevm
34+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintRead ./mipsevm
35+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageRead ./mipsevm
36+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 10s -fuzz=FuzzStateHintWrite ./mipsevm
37+
go test $(FUZZLDFLAGS) -run NOTAREALTEST -v -fuzztime 20s -fuzz=FuzzStatePreimageWrite ./mipsevm
3338

3439
.PHONY: \
3540
cannon \

Diff for: cannon/example/claim/go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ toolchain go1.21.1
77
require github.com/ethereum-optimism/optimism v0.0.0
88

99
require (
10-
golang.org/x/crypto v0.21.0 // indirect
11-
golang.org/x/sys v0.18.0 // indirect
10+
golang.org/x/crypto v0.23.0 // indirect
11+
golang.org/x/sys v0.20.0 // indirect
1212
)
1313

1414
replace github.com/ethereum-optimism/optimism v0.0.0 => ../../..

Diff for: cannon/example/claim/go.sum

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
44
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
55
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
66
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
7-
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
8-
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
9-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
10-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
7+
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
8+
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
9+
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
10+
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
1111
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
1212
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

Diff for: cannon/mipsevm/README.md

+19-11
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,66 @@
11
# `mipsevm`
22

3-
Supported 55 instructions:
3+
Supported 63 instructions:
44
| Category | Instruction | Description |
55
|----------------------|---------------|----------------------------------------------|
6+
| `Arithmetic` | `add` | Add. |
67
| `Arithmetic` | `addi` | Add immediate (with sign-extension). |
7-
| `Arithmetic` | `addiu` | Add immediate unsigned (no overflow). |
8-
| `Arithmetic` | `addu` | Add unsigned (no overflow). |
8+
| `Arithmetic` | `addiu` | Add immediate unsigned. |
9+
| `Arithmetic` | `addu` | Add unsigned. |
910
| `Logical` | `and` | Bitwise AND. |
1011
| `Logical` | `andi` | Bitwise AND immediate. |
11-
| `Branch` | `b` | Unconditional branch. |
1212
| `Conditional Branch` | `beq` | Branch on equal. |
13-
| `Conditional Branch` | `beqz` | Branch if equal to zero. |
1413
| `Conditional Branch` | `bgez` | Branch on greater than or equal to zero. |
1514
| `Conditional Branch` | `bgtz` | Branch on greater than zero. |
1615
| `Conditional Branch` | `blez` | Branch on less than or equal to zero. |
1716
| `Conditional Branch` | `bltz` | Branch on less than zero. |
1817
| `Conditional Branch` | `bne` | Branch on not equal. |
19-
| `Conditional Branch` | `bnez` | Branch if not equal to zero. |
18+
| `Logical` | `clo` | Count leading ones. |
2019
| `Logical` | `clz` | Count leading zeros. |
20+
| `Arithmetic` | `div` | Divide. |
2121
| `Arithmetic` | `divu` | Divide unsigned. |
2222
| `Unconditional Jump` | `j` | Jump. |
2323
| `Unconditional Jump` | `jal` | Jump and link. |
2424
| `Unconditional Jump` | `jalr` | Jump and link register. |
2525
| `Unconditional Jump` | `jr` | Jump register. |
2626
| `Data Transfer` | `lb` | Load byte. |
2727
| `Data Transfer` | `lbu` | Load byte unsigned. |
28+
| `Data Transfer` | `lh` | Load halfword. |
29+
| `Data Transfer` | `lhu` | Load halfword unsigned. |
30+
| `Data Transfer` | `ll` | Load linked word. |
2831
| `Data Transfer` | `lui` | Load upper immediate. |
2932
| `Data Transfer` | `lw` | Load word. |
33+
| `Data Transfer` | `lwl` | Load word left. |
3034
| `Data Transfer` | `lwr` | Load word right. |
3135
| `Data Transfer` | `mfhi` | Move from HI register. |
3236
| `Data Transfer` | `mflo` | Move from LO register. |
33-
| `Data Transfer` | `move` | Move between registers. |
3437
| `Data Transfer` | `movn` | Move conditional on not zero. |
3538
| `Data Transfer` | `movz` | Move conditional on zero. |
39+
| `Data Transfer` | `mthi` | Move to HI register. |
3640
| `Data Transfer` | `mtlo` | Move to LO register. |
3741
| `Arithmetic` | `mul` | Multiply (to produce a word result). |
42+
| `Arithmetic` | `mult` | Multiply. |
3843
| `Arithmetic` | `multu` | Multiply unsigned. |
39-
| `Arithmetic` | `negu` | Negate unsigned. |
40-
| `No Op` | `nop` | No operation. |
41-
| `Logical` | `not` | Bitwise NOT (pseudo-instruction in MIPS). |
44+
| `Logical` | `nor` | Bitwise NOR. |
4245
| `Logical` | `or` | Bitwise OR. |
4346
| `Logical` | `ori` | Bitwise OR immediate. |
4447
| `Data Transfer` | `sb` | Store byte. |
48+
| `Data Transfer` | `sc` | Store conditional. |
49+
| `Data Transfer` | `sh` | Store halfword. |
4550
| `Logical` | `sll` | Shift left logical. |
4651
| `Logical` | `sllv` | Shift left logical variable. |
4752
| `Comparison` | `slt` | Set on less than (signed). |
4853
| `Comparison` | `slti` | Set on less than immediate. |
49-
| `Comparison` | `sltiu` | Set on less than immediate unsigned. |
54+
| `Comparison` | `sltiu` | Set on less than immediate unsigned. |
5055
| `Comparison` | `sltu` | Set on less than unsigned. |
5156
| `Logical` | `sra` | Shift right arithmetic. |
57+
| `Logical` | `srav` | Shift right arithmetic variable. |
5258
| `Logical` | `srl` | Shift right logical. |
5359
| `Logical` | `srlv` | Shift right logical variable. |
60+
| `Arithmetic` | `sub` | Subtract. |
5461
| `Arithmetic` | `subu` | Subtract unsigned. |
5562
| `Data Transfer` | `sw` | Store word. |
63+
| `Data Transfer` | `swl` | Store word left. |
5664
| `Data Transfer` | `swr` | Store word right. |
5765
| `Serialization` | `sync` | Synchronize shared memory. |
5866
| `System Calls` | `syscall` | System call. |

0 commit comments

Comments
 (0)