From a168d0dc074e215b1b03f0ca0405318effe88458 Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Wed, 17 Apr 2024 16:54:18 -0600 Subject: [PATCH 1/4] Patch gitignore to ignore devnet artifacts --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 35ab6e0b..71bf853e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,8 @@ rvsol/deployments/devnetL1 tests/go-tests/bin +packages/contracts-bedrock +.devnet + # jetbrains -.idea/ \ No newline at end of file +.idea/ From d3d2a013cb0e9ba3edd1456612eee53fe3fb3905 Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Wed, 17 Apr 2024 17:13:51 -0600 Subject: [PATCH 2/4] Add make cmd for devnet alloc --- Makefile | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9631c07f..2071ad2c 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +MONOREPO_ROOT=./rvsol/lib/optimism + build-rvgo: make -C ./rvgo build .PHONY: build-rvgo @@ -63,9 +65,9 @@ fuzz-mac: fuzz \ fuzz-mac -OP_PROGRAM_PATH ?= ./op-program-client-riscv.elf +OP_PROGRAM_PATH ?= $(MONOREPO_ROOT)/op-program/bin-riscv/op-program-client-riscv.elf -prestate: build-rvgo +prestate: build-rvgo op-program-riscv ./rvgo/bin/asterisc load-elf --path $(OP_PROGRAM_PATH) --out ./rvgo/bin/prestate.json --meta ./rvgo/bin/meta.json ./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 "" mv ./rvgo/bin/0.json ./rvgo/bin/prestate-proof.json @@ -74,3 +76,50 @@ prestate: build-rvgo op-program-test-capture: ./tests/op-program-test/capture.sh .PHONY: op-program-test-capture + +op-program-riscv: + rm -rf $(MONOREPO_ROOT)/op-program/bin-riscv $(MONOREPO_ROOT)/op-program/bin + make -C $(MONOREPO_ROOT)/op-program op-program-client-riscv + mv $(MONOREPO_ROOT)/op-program/bin $(MONOREPO_ROOT)/op-program/bin-riscv +.PHONY: op-program + +devnet-allocs-monorepo: + make -C $(MONOREPO_ROOT) devnet-allocs +.PHONY: devnet-allocs-monorepo + +devnet-allocs: devnet-allocs-monorepo + cp -r $(MONOREPO_ROOT)/.devnet .devnet + mkdir -p packages/contracts-bedrock + cp -r $(MONOREPO_ROOT)/packages/contracts-bedrock/deploy-config packages/contracts-bedrock + mkdir -p packages/contracts-bedrock/deployments/devnetL1 + cp -r $(MONOREPO_ROOT)/packages/contracts-bedrock/deployments/devnetL1 packages/contracts-bedrock/deployments + # Patch L1 Allocs + jq .accounts .devnet/allocs-l1.json > /tmp/allocs-l1-patched.json + # Generate L1 Allocs including asterisc + # copy everything locally due to foundry permission issues + cp ./rvgo/bin/prestate-proof.json ./rvsol/prestate-proof.json + cp -r packages/contracts-bedrock/deployments/devnetL1 ./rvsol/devnetL1 + cp packages/contracts-bedrock/deploy-config/devnetL1.json ./rvsol/devnetL1.json + cp /tmp/allocs-l1-patched.json ./rvsol/allocs-l1-patched.json + cd ./rvsol && ASTERISC_PRESTATE=./prestate-proof.json \ + TARGET_L2_DEPLOYMENT_FILE=./devnetL1/.deploy \ + TARGET_L2_DEPLOY_CONFIG=./devnetL1.json \ + TARGET_L1_ALLOC=./allocs-l1-patched.json \ + DEPLOYMENT_OUTFILE=./deployments/devnetL1/.deploy \ + STATE_DUMP_PATH=./allocs-l1-asterisc.json \ + ./scripts/create_poststate_after_deployment.sh + # Create address.json + jq -s '.[0] * .[1]' ./rvsol/devnetL1/.deploy ./rvsol/deployments/devnetL1/.deploy | tee .devnet/addresses.json + # Patch L1 Allocs: we need json as the form {"accounts": ... } for op-e2e + jq '{accounts: .}' ./rvsol/allocs-l1-asterisc.json > .devnet/allocs-l1.json + # Patch .deploy + cp .devnet/addresses.json packages/contracts-bedrock/deployments/devnetL1/.deploy + # Remove tmps + cd rvsol && rm -rf prestate-proof.json devnetL1 devnetL1.json allocs-l1-patched.json deployments ./allocs-l1-asterisc.json +.PHONY: devnet-allocs + +devnet-clean: + rm -rf .devnet + rm -rf packages/contracts-bedrock/deployments + rm -rf packages/contracts-bedrock/deploy-config +.PHONY: devnet-clean From a1a6e3019e40861527ba910f4839bd9f8bf6b37b Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Thu, 18 Apr 2024 14:47:00 -0600 Subject: [PATCH 3/4] Add comment about dirs --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 2071ad2c..6aad60cb 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,7 @@ op-program-test-capture: op-program-riscv: rm -rf $(MONOREPO_ROOT)/op-program/bin-riscv $(MONOREPO_ROOT)/op-program/bin make -C $(MONOREPO_ROOT)/op-program op-program-client-riscv + # clear $(MONOREPO_ROOT)/op-program/bin to trigger `make cannon-prestate` at monorepo mv $(MONOREPO_ROOT)/op-program/bin $(MONOREPO_ROOT)/op-program/bin-riscv .PHONY: op-program From e3368a3f6baa1b5dd8168d5b55fccf1e168b0d58 Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Thu, 18 Apr 2024 14:57:09 -0600 Subject: [PATCH 4/4] Modularize out to shell src --- Makefile | 31 ++----------------------------- rvsol/scripts/devnet_allocs.sh | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 29 deletions(-) create mode 100755 rvsol/scripts/devnet_allocs.sh diff --git a/Makefile b/Makefile index 6aad60cb..2febfd30 100644 --- a/Makefile +++ b/Makefile @@ -88,35 +88,8 @@ devnet-allocs-monorepo: make -C $(MONOREPO_ROOT) devnet-allocs .PHONY: devnet-allocs-monorepo -devnet-allocs: devnet-allocs-monorepo - cp -r $(MONOREPO_ROOT)/.devnet .devnet - mkdir -p packages/contracts-bedrock - cp -r $(MONOREPO_ROOT)/packages/contracts-bedrock/deploy-config packages/contracts-bedrock - mkdir -p packages/contracts-bedrock/deployments/devnetL1 - cp -r $(MONOREPO_ROOT)/packages/contracts-bedrock/deployments/devnetL1 packages/contracts-bedrock/deployments - # Patch L1 Allocs - jq .accounts .devnet/allocs-l1.json > /tmp/allocs-l1-patched.json - # Generate L1 Allocs including asterisc - # copy everything locally due to foundry permission issues - cp ./rvgo/bin/prestate-proof.json ./rvsol/prestate-proof.json - cp -r packages/contracts-bedrock/deployments/devnetL1 ./rvsol/devnetL1 - cp packages/contracts-bedrock/deploy-config/devnetL1.json ./rvsol/devnetL1.json - cp /tmp/allocs-l1-patched.json ./rvsol/allocs-l1-patched.json - cd ./rvsol && ASTERISC_PRESTATE=./prestate-proof.json \ - TARGET_L2_DEPLOYMENT_FILE=./devnetL1/.deploy \ - TARGET_L2_DEPLOY_CONFIG=./devnetL1.json \ - TARGET_L1_ALLOC=./allocs-l1-patched.json \ - DEPLOYMENT_OUTFILE=./deployments/devnetL1/.deploy \ - STATE_DUMP_PATH=./allocs-l1-asterisc.json \ - ./scripts/create_poststate_after_deployment.sh - # Create address.json - jq -s '.[0] * .[1]' ./rvsol/devnetL1/.deploy ./rvsol/deployments/devnetL1/.deploy | tee .devnet/addresses.json - # Patch L1 Allocs: we need json as the form {"accounts": ... } for op-e2e - jq '{accounts: .}' ./rvsol/allocs-l1-asterisc.json > .devnet/allocs-l1.json - # Patch .deploy - cp .devnet/addresses.json packages/contracts-bedrock/deployments/devnetL1/.deploy - # Remove tmps - cd rvsol && rm -rf prestate-proof.json devnetL1 devnetL1.json allocs-l1-patched.json deployments ./allocs-l1-asterisc.json +devnet-allocs: devnet-allocs-monorepo prestate + ./rvsol/scripts/devnet_allocs.sh .PHONY: devnet-allocs devnet-clean: diff --git a/rvsol/scripts/devnet_allocs.sh b/rvsol/scripts/devnet_allocs.sh new file mode 100755 index 00000000..a01181aa --- /dev/null +++ b/rvsol/scripts/devnet_allocs.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -eo pipefail + +MONOREPO_ROOT=./rvsol/lib/optimism + +cp -r ${MONOREPO_ROOT}/.devnet .devnet +mkdir -p packages/contracts-bedrock +cp -r ${MONOREPO_ROOT}/packages/contracts-bedrock/deploy-config packages/contracts-bedrock +mkdir -p packages/contracts-bedrock/deployments/devnetL1 +cp -r ${MONOREPO_ROOT}/packages/contracts-bedrock/deployments/devnetL1 packages/contracts-bedrock/deployments +# Patch L1 Allocs +jq .accounts .devnet/allocs-l1.json > /tmp/allocs-l1-patched.json +# Generate L1 Allocs including asterisc +# copy everything locally due to foundry permission issues +cp ./rvgo/bin/prestate-proof.json ./rvsol/prestate-proof.json +cp -r packages/contracts-bedrock/deployments/devnetL1 ./rvsol/devnetL1 +cp packages/contracts-bedrock/deploy-config/devnetL1.json ./rvsol/devnetL1.json +cp /tmp/allocs-l1-patched.json ./rvsol/allocs-l1-patched.json +cd ./rvsol && ASTERISC_PRESTATE=./prestate-proof.json \ +TARGET_L2_DEPLOYMENT_FILE=./devnetL1/.deploy \ +TARGET_L2_DEPLOY_CONFIG=./devnetL1.json \ +TARGET_L1_ALLOC=./allocs-l1-patched.json \ +DEPLOYMENT_OUTFILE=./deployments/devnetL1/.deploy \ +STATE_DUMP_PATH=./allocs-l1-asterisc.json \ +./scripts/create_poststate_after_deployment.sh +cd .. +# Create address.json +jq -s '.[0] * .[1]' ./rvsol/devnetL1/.deploy ./rvsol/deployments/devnetL1/.deploy | tee .devnet/addresses.json +# Patch L1 Allocs: we need json as the form {"accounts": ... } for op-e2e +jq '{accounts: .}' ./rvsol/allocs-l1-asterisc.json > .devnet/allocs-l1.json +# Patch .deploy +cp .devnet/addresses.json packages/contracts-bedrock/deployments/devnetL1/.deploy +# Remove tmps +cd rvsol && rm -rf prestate-proof.json devnetL1 devnetL1.json allocs-l1-patched.json deployments ./allocs-l1-asterisc.json