Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
a52883d
hotfix: forbid enforced gateway (#101)
zimpha Apr 25, 2025
b7a01e4
chore: bump version 2.0.1 (#102)
Thegaram Apr 25, 2025
8e549c1
ci: bump GitHub Action versions (#107)
Thegaram May 5, 2025
cc6fc1b
ci: add Slither static-analysis (#103)
mssassii May 8, 2025
ffd2f80
new `ScrollChainCommitmentVerifier` (#95)
zimpha May 8, 2025
9e18444
build(deps): bump base-x from 3.0.9 to 3.0.11 (#108)
dependabot[bot] May 12, 2025
bb96529
add L2SystemContract (#114)
zimpha May 27, 2025
6c715b1
feat: add e2e devnet deployment scripts (#97)
yiweichi May 28, 2025
598d630
feat: add pause controller (#117)
zimpha Jun 10, 2025
492b1c0
feat: consider EIP-7623 floor gas in message queue (#118)
Thegaram Jun 11, 2025
3541d06
feat: add L1SystemConfig events (#119)
Thegaram Jun 11, 2025
95113a0
feat: require top-level call to commitAndFinalizeBatch (#120)
Thegaram Jun 24, 2025
fc55615
feat: add new zkevm verifier for Feynman upgrade (#123)
zimpha Jun 25, 2025
0f922b9
feat(feynman): update L1GasPriceOracle (#124)
Thegaram Jun 25, 2025
7309489
remove unused contracts and functions (#110)
zimpha Jun 26, 2025
48dc533
fix: allow only top level call in commitAndFinalizeBatch (#126)
zimpha Jul 16, 2025
b634a1b
feat: support resetPauseCooldownPeriod (#127)
zimpha Jul 21, 2025
dbaf2db
Merge tag 'v3.0.0' into try_merge_v3.0.0
shu-unifra Jul 23, 2025
1e1f0f1
fix conflicts part 1
shu-unifra Jul 23, 2025
9ae0a08
fix: read from file still required while run gen-configs
shu-unifra Jul 27, 2025
7e657b7
improve verify.sh
shu-unifra Jul 28, 2025
a74be71
use deterministic foundry version v1.3.0-rc2
shu-unifra Jul 28, 2025
5bfe78f
fix rollup-config.json gas_price_oracle_contract_address
shu-unifra Jul 28, 2025
8ae6af5
remove --resume
shu-unifra Jul 29, 2025
a9bde3d
set BATCH_SIZE=7
shu-unifra Jul 29, 2025
1a1f73f
fix bug: missing L2_SYSTEM_CONFIG
shu-unifra Jul 30, 2025
ada2b2b
set genesisStateRoot default to null
shu-unifra Jul 30, 2025
6d7b1be
replace scrolltech with dogeos69
shu-unifra Jul 31, 2025
a6369a9
verify.sh add L2SystemConfig
shu-unifra Jul 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 58 additions & 3 deletions .github/workflows/contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
persist-credentials: false

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@de808b1eea699e761c404bda44ba8f21aba30b2c # v1.3.1
uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0
with:
version: nightly

Expand Down Expand Up @@ -84,7 +84,7 @@ jobs:
run : lcov --rc branch_coverage=1 --remove ./lcov.info -o ./lcov.info.pruned 'src/mocks/*' 'src/test/*' 'scripts/*' 'node_modules/*' 'lib/*' --ignore-errors unused,unused

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
Expand Down Expand Up @@ -136,4 +136,59 @@ jobs:
run: npx hardhat compile

- name: Run hardhat tests
run: npx hardhat test
run: npx hardhat test

slither:
if: github.event.pull_request.draft == false
needs: foundry
runs-on: ubuntu-latest
permissions:
statuses: write
security-events: write

steps:
- uses: actions/checkout@v4
with:
submodules: recursive
persist-credentials: false

- uses: actions/setup-node@v4
with:
node-version: '18'

- run: yarn install --frozen-lockfile

- uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0
with:
version: nightly

- name: Build contracts
run: forge build --build-info --out out --evm-version cancun

- uses: actions/setup-python@v5
with:
python-version: '3.11'

- run: |
python -m pip install --upgrade pip
pip install slither-analyzer==0.11.3

- name: Run Slither (High severity gate)
run: |
slither . \
--filter-paths "src/test/*|src/mocks/*|scripts/*|node_modules" \
--foundry-out-directory out \
--exclude-dependencies \
--exclude-medium \
--exclude-low \
--exclude-informational \
--fail-high \
--json slither-report.json \
--markdown-root slither-report.md

- uses: actions/upload-artifact@v4
with:
name: slither-static-analysis
path: |
slither-report.json
slither-report.md
8 changes: 6 additions & 2 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,9 @@ jobs:

- name: Build deploy image
id: build_deploy_image
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
env:
REPOSITORY: ${{ env.DOCKER_REPOSITORY }}
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
with:
platforms: linux/amd64,linux/arm64
push: true
Expand All @@ -85,7 +87,9 @@ jobs:

- name: Build gen image
id: build_gen_image
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
env:
REPOSITORY: ${{ env.DOCKER_REPOSITORY }}
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
with:
platforms: linux/amd64,linux/arm64
push: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/zizmor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
persist-credentials: false

- name: Install the latest version of uv
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5.3.1
uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca # v6.0.1

- name: Run zizmor
run: uvx zizmor --format sarif . > results.sarif
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,9 @@ broadcast

# Visual Studio Code
.vscode

# OS
.DS_Store

# config
scripts/deterministic/config/config-contracts.toml
2 changes: 1 addition & 1 deletion docker/Dockerfile.base
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ RUN curl -L https://foundry.paradigm.xyz | bash
ENV PATH="/root/.foundry/bin:${PATH}"

# Run foundryup to update Foundry
RUN foundryup
RUN foundryup -i v1.3.0-rc2

# copy dependencies
COPY ./lib /contracts/lib
Expand Down
10 changes: 1 addition & 9 deletions docker/Dockerfile.gen-configs
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,7 @@ SHELL ["/bin/bash", "-c"]
WORKDIR /contracts

# copy script configs
COPY ./docker/templates/balance-checker-config.json /contracts/docker/templates/balance-checker-config.json
COPY ./docker/templates/bridge-history-config.json /contracts/docker/templates/bridge-history-config.json
COPY ./docker/templates/chain-monitor-config.json /contracts/docker/templates/chain-monitor-config.json
COPY ./docker/templates/config-contracts.toml /contracts/docker/templates/config-contracts.toml
COPY ./docker/templates/coordinator-config.json /contracts/docker/templates/coordinator-config.json
COPY ./docker/templates/genesis.json /contracts/docker/templates/genesis.json
COPY ./docker/templates/rollup-config.json /contracts/docker/templates/rollup-config.json
COPY ./docker/templates/rollup-explorer-backend-config.json /contracts/docker/templates/rollup-explorer-backend-config.json
COPY ./docker/templates/admin-system-backend-config.json /contracts/docker/templates/admin-system-backend-config.json
COPY ./docker/templates/ /contracts/docker/templates/

COPY ./docker/scripts/gen-configs.sh /contracts/docker/scripts/gen-configs.sh

Expand Down
1 change: 1 addition & 0 deletions docker/scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

latest_commit=$(git log -1 --pretty=format:%H)
tag=${latest_commit}

REPO="dogeos69/scroll-stack-contracts"
echo "Using Docker image tag: $tag"
echo ""
Expand Down
65 changes: 23 additions & 42 deletions docker/scripts/deploy.sh
Original file line number Diff line number Diff line change
@@ -1,65 +1,46 @@
#!/bin/sh
# Enable timestamped execution trace to show progress with time and line numbers
export PS4='$(date "+%Y-%m-%dT%H:%M:%S%z") ${0##*/}:${LINENO}: '
echo "=== SCRIPT START ==="
export FOUNDRY_EVM_VERSION="cancun"
export FOUNDRY_BYTECODE_HASH="none"
set -e
set -ex

echo "Environment variables:"
echo "FOUNDRY_EVM_VERSION: $FOUNDRY_EVM_VERSION"
echo "FOUNDRY_BYTECODE_HASH: $FOUNDRY_BYTECODE_HASH"
echo "BATCH_SIZE: $BATCH_SIZE"

if [ "${L1_RPC_ENDPOINT}" = "" ]; then
echo "L1_RPC_ENDPOINT is not set"
L1_RPC_ENDPOINT="http://host.docker.internal:8543"
fi
CONFIG_FILE="./volume/config.toml"

if [ "$L2_RPC_ENDPOINT" = "" ]; then
echo "L2_RPC_ENDPOINT is not set"
L2_RPC_ENDPOINT="http://host.docker.internal:8545"
fi

if [ "${BATCH_SIZE}" = "" ]; then
BATCH_SIZE="100"
fi
# Set default values for environment variables if they are not set
L1_RPC_ENDPOINT="${L1_RPC_ENDPOINT}"
L2_RPC_ENDPOINT="${L2_RPC_ENDPOINT}"
# Using a smaller batch size as a compromise between the slow but reliable --slow flag and the fast but potentially unreliable default.
BATCH_SIZE="7"

echo "using L1_RPC_ENDPOINT = $L1_RPC_ENDPOINT"
echo "using L2_RPC_ENDPOINT = $L2_RPC_ENDPOINT"
echo "Environment variables:"
echo "FOUNDRY_EVM_VERSION: $FOUNDRY_EVM_VERSION"
echo "FOUNDRY_BYTECODE_HASH: $FOUNDRY_BYTECODE_HASH"
echo "BATCH_SIZE: $BATCH_SIZE"

# simulate L1
echo ""
echo "simulating on L1"
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L1_RPC_ENDPOINT" --sig "run(string,string)" "L1" "verify-config" || exit 1
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L1_RPC_ENDPOINT" --sig "run(string,string)" "L1" "verify-config"

# deploy L1
echo ""
echo "deploying on L1"
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L1_RPC_ENDPOINT" --batch-size "${BATCH_SIZE}" --sig "run(string,string)" "L1" "verify-config" --broadcast --json


# simulate L2
echo ""
echo "simulating on L2"
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L2_RPC_ENDPOINT" --sig "run(string,string)" "L2" "verify-config" --legacy || exit 1
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L2_RPC_ENDPOINT" --sig "run(string,string)" "L2" "verify-config" --legacy

# deploy L1
echo ""
echo "deploying on L1"
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L1_RPC_ENDPOINT" --batch-size "$BATCH_SIZE" --sig "run(string,string)" "L1" "verify-config" --broadcast || exit 1

# deploy L2
echo ""
echo "deploying on L2"
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L2_RPC_ENDPOINT" --batch-size "$BATCH_SIZE" --sig "run(string,string)" "L2" "verify-config" --broadcast --legacy || exit 1

# log broadcast files

echo "=== START BROADCAST FILES ==="
echo "Current directory: $(pwd)"
echo "Broadcast files location: broadcast/DeployScroll.s.sol/*/*"
echo "Found files:"
ls -la broadcast/DeployScroll.s.sol/*/* || echo "No files found"
echo "Broadcast files content:"
forge script scripts/deterministic/DeployScroll.s.sol:DeployScroll --rpc-url "$L2_RPC_ENDPOINT" --batch-size "$BATCH_SIZE" --sig "run(string,string)" "L2" "verify-config" --broadcast --legacy --json

for file in broadcast/DeployScroll.s.sol/*/*; do
if [ -f "$file" ]; then
echo "$file:"
cat "$file"
echo ""
fi
done
echo "=== END BROADCAST FILES ==="
echo "=== SCRIPT END ==="
32 changes: 16 additions & 16 deletions docker/scripts/gen-configs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,25 +49,25 @@ echo "generating rollup-config.yaml"
forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateRollupConfig || exit 1
format_config_file "./volume/rollup-config.yaml"

echo ""
echo "generating coordinator-config.yaml"
forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateCoordinatorConfig || exit 1
format_config_file "./volume/coordinator-config.yaml"
# echo ""
# echo "generating coordinator-config.yaml"
# forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateCoordinatorConfig || exit 1
# format_config_file "./volume/coordinator-config.yaml"

echo ""
echo "generating chain-monitor-config.yaml"
forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateChainMonitorConfig || exit 1
format_config_file "./volume/chain-monitor-config.yaml"

echo ""
echo "generating bridge-history-config.yaml"
forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateBridgeHistoryConfig || exit 1
format_config_file "./volume/bridge-history-config.yaml"
# echo ""
# echo "generating bridge-history-config.yaml"
# forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateBridgeHistoryConfig || exit 1
# format_config_file "./volume/bridge-history-config.yaml"

echo ""
echo "generating balance-checker-config.yaml"
forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateBalanceCheckerConfig || exit 1
format_config_file "./volume/balance-checker-config.yaml"
# echo ""
# echo "generating balance-checker-config.yaml"
# forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateBalanceCheckerConfig || exit 1
# format_config_file "./volume/balance-checker-config.yaml"

echo ""
echo "generating frontend-config.yaml"
Expand All @@ -79,7 +79,7 @@ echo "generating rollup-explorer-backend-config.yaml"
forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateRollupExplorerBackendConfig || exit 1
format_config_file "./volume/rollup-explorer-backend-config.yaml"

echo ""
echo "generating admin-system-backend-config.yaml"
forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateAdminSystemBackendConfig || exit 1
format_config_file "./volume/admin-system-backend-config.yaml"
# echo ""
# echo "generating admin-system-backend-config.yaml"
# forge script scripts/deterministic/GenerateConfigs.s.sol:GenerateAdminSystemBackendConfig || exit 1
# format_config_file "./volume/admin-system-backend-config.yaml"
Loading
Loading