diff --git a/Makefile b/Makefile index cd890fd4..6e573933 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +MONOREPO_ROOT=./rvsol/lib/optimism + build-rvgo: make -C ./rvgo build .PHONY: build-rvgo @@ -63,10 +65,57 @@ 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 .PHONY: prestate + +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 packages/contracts-bedrock/deployments/devnetL1/.deploy ./rvsol/.deploy + 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=./.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/.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 .deploy 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