Skip to content

fix(bundle_state): preserve confidential zero slots in to_plain_state #513

fix(bundle_state): preserve confidential zero slots in to_plain_state

fix(bundle_state): preserve confidential zero slots in to_plain_state #513

Workflow file for this run

name: Seismic CI
on:
push:
branches:
- seismic
- veridise-audit-feb-2026
pull_request:
branches:
- seismic
- veridise-audit-feb-2026
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
CARGO_NET_GIT_FETCH_WITH_CLI: true
jobs:
rustfmt:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo fmt --all --check
build:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
shared-key: "build-cache"
- name: cargo build
run: cargo build
warnings:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
shared-key: "warnings-cache"
- name: cargo check warnings
run: RUSTFLAGS="-A elided_named_lifetimes -D warnings" cargo check
test:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
shared-key: "test-cache"
- name: cargo test
run: cargo test --workspace
clippy-strict:
name: clippy-strict (seismic)
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
with:
shared-key: "clippy-cache"
- name: Clippy (strict - seismic crate)
run: |
cargo clippy \
-p seismic-revm \
--lib --tests --no-deps \
-- -D warnings \
-W clippy::unwrap_used \
-W clippy::expect_used \
-W clippy::indexing_slicing \
-W clippy::panic \
-W clippy::unreachable \
-W clippy::todo
semantic-tests:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Clone seismic-solidity repo
run: |
TEMP_DIR=$(mktemp -d)
git clone https://github.com/SeismicSystems/seismic-solidity.git "$TEMP_DIR/seismic-solidity"
echo "SEISMIC_SOLIDITY_PATH=$TEMP_DIR/seismic-solidity" >> $GITHUB_ENV
echo "seismic-solidity cloned to: $TEMP_DIR/seismic-solidity"
- name: Install latest ssolc release
run: |
# Set variables for Linux x86_64
OS_TYPE="linux"
ARCH_TYPE="x86_64"
INSTALL_DIR="/usr/local/bin"
TARGET_NAME="ssolc-${OS_TYPE}-${ARCH_TYPE}.tar.gz"
SSOLC_BIN="${INSTALL_DIR}/ssolc"
TEMP_DIR=$(mktemp -d)
# Download the release
echo "Fetching latest release information..."
GITHUB_API_URL="https://api.github.com/repos/SeismicSystems/seismic-solidity/releases/latest"
ASSET_ID=$(curl -s "$GITHUB_API_URL" | \
jq -r --arg name "$TARGET_NAME" '.assets[] | select(.name == $name) | .id')
if [[ -z "$ASSET_ID" ]]; then
echo "Error: Asset $TARGET_NAME not found in the latest release."
exit 1
fi
echo "Downloading $TARGET_NAME..."
DOWNLOAD_PATH="$TEMP_DIR/$TARGET_NAME"
curl -L -H "Accept: application/octet-stream" \
-o "$DOWNLOAD_PATH" \
"https://api.github.com/repos/SeismicSystems/seismic-solidity/releases/assets/$ASSET_ID"
echo "Extracting archive..."
mkdir -p "$TEMP_DIR/extract"
if ! file "$DOWNLOAD_PATH" | grep -q 'gzip compressed data'; then
echo "Error: Invalid gzip archive"
exit 1
fi
tar -xzf "$DOWNLOAD_PATH" -C "$TEMP_DIR/extract"
BINARY_PATH="$TEMP_DIR/extract/solc/solc"
if [[ ! -f "$BINARY_PATH" ]]; then
echo "Error: Binary not found in extracted archive"
exit 1
fi
echo "Installing binary to $SSOLC_BIN..."
sudo mv "$BINARY_PATH" "$SSOLC_BIN"
sudo chmod +x "$SSOLC_BIN"
# Cleanup
rm -rf "$TEMP_DIR"
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
shared-key: "semantic-test-cache"
- name: Run semantic tests (no optimizer)
run: RUST_BACKTRACE=1 cargo run -p revme -- semantics --keep-going -s /usr/local/bin/ssolc -t "$SEISMIC_SOLIDITY_PATH/test/libsolidity/semanticTests"
# TODO: enable this once we fix all the bugs on main branch
# - name: Run semantic tests (with 200 optimizer runs)
# run: RUST_BACKTRACE=1 cargo run -p revme -- semantics --keep-going -s /usr/local/bin/ssolc -t "$SEISMIC_SOLIDITY_PATH/test/libsolidity/semanticTests" --optimize --optimizer-runs 200