Skip to content

Commit 90d8c5c

Browse files
authored
Merge pull request #55 from ethereum-optimism/tip/pcw109550/devnet-alloc-makefile
test: Devnet Alloc for local testing
2 parents 9e072c6 + e3368a3 commit 90d8c5c

File tree

3 files changed

+63
-3
lines changed

3 files changed

+63
-3
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,8 @@ rvsol/deployments/devnetL1
99

1010
tests/go-tests/bin
1111

12+
packages/contracts-bedrock
13+
.devnet
14+
1215
# jetbrains
13-
.idea/
16+
.idea/

Makefile

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
MONOREPO_ROOT=./rvsol/lib/optimism
2+
13
build-rvgo:
24
make -C ./rvgo build
35
.PHONY: build-rvgo
@@ -63,9 +65,9 @@ fuzz-mac:
6365
fuzz \
6466
fuzz-mac
6567

66-
OP_PROGRAM_PATH ?= ./op-program-client-riscv.elf
68+
OP_PROGRAM_PATH ?= $(MONOREPO_ROOT)/op-program/bin-riscv/op-program-client-riscv.elf
6769

68-
prestate: build-rvgo
70+
prestate: build-rvgo op-program-riscv
6971
./rvgo/bin/asterisc load-elf --path $(OP_PROGRAM_PATH) --out ./rvgo/bin/prestate.json --meta ./rvgo/bin/meta.json
7072
./rvgo/bin/asterisc run --proof-at '=0' --stop-at '=1' --input ./rvgo/bin/prestate.json --meta ./rvgo/bin/meta.json --proof-fmt './rvgo/bin/%d.json' --output ""
7173
mv ./rvgo/bin/0.json ./rvgo/bin/prestate-proof.json
@@ -74,3 +76,24 @@ prestate: build-rvgo
7476
op-program-test-capture:
7577
./tests/op-program-test/capture.sh
7678
.PHONY: op-program-test-capture
79+
80+
op-program-riscv:
81+
rm -rf $(MONOREPO_ROOT)/op-program/bin-riscv $(MONOREPO_ROOT)/op-program/bin
82+
make -C $(MONOREPO_ROOT)/op-program op-program-client-riscv
83+
# clear $(MONOREPO_ROOT)/op-program/bin to trigger `make cannon-prestate` at monorepo
84+
mv $(MONOREPO_ROOT)/op-program/bin $(MONOREPO_ROOT)/op-program/bin-riscv
85+
.PHONY: op-program
86+
87+
devnet-allocs-monorepo:
88+
make -C $(MONOREPO_ROOT) devnet-allocs
89+
.PHONY: devnet-allocs-monorepo
90+
91+
devnet-allocs: devnet-allocs-monorepo prestate
92+
./rvsol/scripts/devnet_allocs.sh
93+
.PHONY: devnet-allocs
94+
95+
devnet-clean:
96+
rm -rf .devnet
97+
rm -rf packages/contracts-bedrock/deployments
98+
rm -rf packages/contracts-bedrock/deploy-config
99+
.PHONY: devnet-clean

rvsol/scripts/devnet_allocs.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/usr/bin/env bash
2+
set -eo pipefail
3+
4+
MONOREPO_ROOT=./rvsol/lib/optimism
5+
6+
cp -r ${MONOREPO_ROOT}/.devnet .devnet
7+
mkdir -p packages/contracts-bedrock
8+
cp -r ${MONOREPO_ROOT}/packages/contracts-bedrock/deploy-config packages/contracts-bedrock
9+
mkdir -p packages/contracts-bedrock/deployments/devnetL1
10+
cp -r ${MONOREPO_ROOT}/packages/contracts-bedrock/deployments/devnetL1 packages/contracts-bedrock/deployments
11+
# Patch L1 Allocs
12+
jq .accounts .devnet/allocs-l1.json > /tmp/allocs-l1-patched.json
13+
# Generate L1 Allocs including asterisc
14+
# copy everything locally due to foundry permission issues
15+
cp ./rvgo/bin/prestate-proof.json ./rvsol/prestate-proof.json
16+
cp -r packages/contracts-bedrock/deployments/devnetL1 ./rvsol/devnetL1
17+
cp packages/contracts-bedrock/deploy-config/devnetL1.json ./rvsol/devnetL1.json
18+
cp /tmp/allocs-l1-patched.json ./rvsol/allocs-l1-patched.json
19+
cd ./rvsol && ASTERISC_PRESTATE=./prestate-proof.json \
20+
TARGET_L2_DEPLOYMENT_FILE=./devnetL1/.deploy \
21+
TARGET_L2_DEPLOY_CONFIG=./devnetL1.json \
22+
TARGET_L1_ALLOC=./allocs-l1-patched.json \
23+
DEPLOYMENT_OUTFILE=./deployments/devnetL1/.deploy \
24+
STATE_DUMP_PATH=./allocs-l1-asterisc.json \
25+
./scripts/create_poststate_after_deployment.sh
26+
cd ..
27+
# Create address.json
28+
jq -s '.[0] * .[1]' ./rvsol/devnetL1/.deploy ./rvsol/deployments/devnetL1/.deploy | tee .devnet/addresses.json
29+
# Patch L1 Allocs: we need json as the form {"accounts": ... } for op-e2e
30+
jq '{accounts: .}' ./rvsol/allocs-l1-asterisc.json > .devnet/allocs-l1.json
31+
# Patch .deploy
32+
cp .devnet/addresses.json packages/contracts-bedrock/deployments/devnetL1/.deploy
33+
# Remove tmps
34+
cd rvsol && rm -rf prestate-proof.json devnetL1 devnetL1.json allocs-l1-patched.json deployments ./allocs-l1-asterisc.json

0 commit comments

Comments
 (0)