diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..09a0516c --- /dev/null +++ b/Makefile @@ -0,0 +1,25 @@ +# Makefile converted from justfile + +# Get signal slot for a signal and sender +# Usage: make get-signal-slot signal= sender= +get-signal-slot: + cargo run --bin signal_slot $(signal) $(sender) + +# Create a sample signal proof +create-sample-signal-proof: + cargo run --bin sample_signal_proof > test/SignalService/SampleProof.t.sol + +# Create a sample deposit proof +create-sample-deposit-proof: + cargo run --bin sample_deposit_proof > test/ETHBridge/SampleDepositProof.t.sol + +# Compile with forge +compile: + forge build --build-info --extra-output storage-layout + +# Clean build artifacts +clean: + rm -rf out abis cache* && forge clean + +# Default target +.PHONY: get-signal-slot create-sample-signal-proof create-sample-deposit-proof compile clean diff --git a/justfile b/justfile deleted file mode 100644 index e3fdc372..00000000 --- a/justfile +++ /dev/null @@ -1,11 +0,0 @@ -# Get signal slot for a signal and sender -get-signal-slot signal sender: - cargo run --bin signal_slot {{signal}} {{sender}} - -# Create a sample signal proof -create-sample-signal-proof: - cargo run --bin sample_signal_proof > test/SignalService/SampleProof.t.sol - -# Create a sample deposit proof -create-sample-deposit-proof: - cargo run --bin sample_deposit_proof > test/ETHBridge/SampleDepositProof.t.sol diff --git a/scripts/DeployMinimalL1.s.sol b/scripts/DeployMinimalL1.s.sol new file mode 100644 index 00000000..140d8c1e --- /dev/null +++ b/scripts/DeployMinimalL1.s.sol @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.28; + +import {BlobRefRegistry} from "../src/blobs/BlobRefRegistry.sol"; +import {IBlobRefRegistry} from "../src/blobs/IBlobRefRegistry.sol"; +import {CheckpointTracker} from "../src/protocol/CheckpointTracker.sol"; + +import {ILookahead} from "../src/protocol/ILookahead.sol"; +import {IProposerFees} from "../src/protocol/IProposerFees.sol"; +import {TaikoInbox} from "../src/protocol/taiko_alethia/TaikoInbox.sol"; + +import {SignalService} from "../src/protocol/SignalService.sol"; +import {MockVerifier} from "../test/mocks/MockVerifier.sol"; + +import {Script} from "../lib/forge-std/src/Script.sol"; +import {console} from "../lib/forge-std/src/console.sol"; + +/// @title Deploy L1 Taiko Contracts +/// @notice Script to deploy the TaikoInbox contract +contract DeployL1Contracts is Script { + function run() public { + vm.startBroadcast(); + + // --- config params ---- + address lookaheadAddr = vm.envOr("TAIKO_LOOKAHEAD_ADDRESS", address(0)); + uint256 maxAnchorBlockIdOffset = vm.envOr("TAIKO_MAX_ANCHOR_BLOCK_ID_OFFSET", uint256(100)); + uint256 inclusionDelay = vm.envOr("TAIKO_INCLUSION_DELAY", uint256(1 hours)); + bytes32 genesis = vm.envOr("TAIKO_GENESIS_HASH", keccak256(abi.encode("genesis"))); + + console.log("------- CONFIG ------"); + console.log("Lookahead address:", lookaheadAddr); + console.log("Max Anchor Block Id Offset:", maxAnchorBlockIdOffset); + console.log("Inclusion Delay:", inclusionDelay); + console.log("Genesis:", genesis); + console.log("------------------------"); + + // ------deployments-------- + BlobRefRegistry blobRefRegistry = new BlobRefRegistry(); + TaikoInbox taikoInbox = new TaikoInbox( + lookaheadAddr, address(blobRefRegistry), maxAnchorBlockIdOffset, inclusionDelay + ); + + MockVerifier verifier = new MockVerifier(); + + SignalService signalService = new SignalService(); + + CheckpointTracker tracker = new CheckpointTracker( + genesis, + address(taikoInbox), + address(verifier), + address(signalService) + ); + + vm.stopBroadcast(); + + console.log(""); + console.log("------- DEPLOYMENTS ------"); + console.log("TaikoInbox deployed at:", address(taikoInbox)); + console.log("CheckpointTracker deployed at:", address(tracker)); + console.log("BlobRefRegistry address:", address(blobRefRegistry)); + console.log("SignalService address:", address(signalService)); + console.log("------------------------"); + + + } +}