Skip to content
Open
Show file tree
Hide file tree
Changes from 195 commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
0cd9024
Add ETH and STRK CASM from starkgate v3.0.0
franciszekjob Apr 13, 2026
5cac3a0
Update changelog
franciszekjob Apr 13, 2026
b649253
Update links
franciszekjob Apr 13, 2026
3e0ecfb
Update class hashes
franciszekjob Apr 13, 2026
ae31eeb
Update changelog
franciszekjob Apr 13, 2026
16963ed
Add developer notes
franciszekjob Apr 14, 2026
850ffa4
Make self review
franciszekjob Apr 14, 2026
c10bf19
Formatting
franciszekjob Apr 14, 2026
65991bb
Update tokens CASM
franciszekjob Apr 16, 2026
03017cc
Update CASM
franciszekjob Apr 16, 2026
56a6c51
Delete crates/cheatnet/src/data/predeployed_contracts/eth/casm.json
franciszekjob Apr 16, 2026
75ca034
Delete crates/cheatnet/src/data/predeployed_contracts/strk/casm.json
franciszekjob Apr 16, 2026
6443de4
Restore CASM
franciszekjob Apr 16, 2026
b7c99c8
Update docs
franciszekjob Apr 16, 2026
f7b3376
Update docs
franciszekjob Apr 16, 2026
2c60518
Rename contract dirs
franciszekjob Apr 16, 2026
ca20987
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob Apr 16, 2026
dd1d4f6
Remove newline
franciszekjob Apr 16, 2026
b84f0b0
Fix lint
franciszekjob Apr 16, 2026
6e3392c
Merge branch 'franciszekjob/fix-lint' of https://github.com/foundry-r…
franciszekjob Apr 16, 2026
44a6ea4
Fix lint
franciszekjob Apr 16, 2026
b9b39ce
Merge branch 'franciszekjob/fix-lint' of https://github.com/foundry-r…
franciszekjob Apr 16, 2026
c189f32
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob Apr 16, 2026
6de53dc
Merge branch 'franciszekjob/fix-lint' of https://github.com/foundry-r…
franciszekjob Apr 16, 2026
8666561
Fix lint
franciszekjob Apr 16, 2026
f5ce405
Merge branch 'franciszekjob/fix-lint' of https://github.com/foundry-r…
franciszekjob Apr 16, 2026
051f050
Fix lint
franciszekjob Apr 17, 2026
446c791
Fix lint
franciszekjob Apr 17, 2026
75bf661
Fix formatting
franciszekjob Apr 17, 2026
fbcbea7
Merge branch 'franciszekjob/fix-lint' of https://github.com/foundry-r…
franciszekjob Apr 17, 2026
f85b1d4
Add sierra for predeployed contracts
franciszekjob Apr 13, 2026
2f25fbe
Update `load_predeployed_contracts` to overwrite class hashes
franciszekjob Apr 13, 2026
67afe20
Update sierra
franciszekjob Apr 13, 2026
3cf01e5
Add tests
franciszekjob Apr 13, 2026
cd6ae64
Fix cairo formatting
franciszekjob Apr 13, 2026
c483687
Update changelog
franciszekjob Apr 13, 2026
e835b67
Fix imports
franciszekjob Apr 13, 2026
96f3074
Change expect message
franciszekjob Apr 13, 2026
01625db
Remove scarb 2.10 snaphots
franciszekjob Apr 13, 2026
10f06d2
Make self-review
franciszekjob Apr 13, 2026
db9f931
Restore casm
franciszekjob Apr 16, 2026
9861d4a
Delete crates/cheatnet/src/data/predeployed_contracts/STRK directory
franciszekjob Apr 16, 2026
581f6dd
Delete crates/cheatnet/src/data/predeployed_contracts/ETH directory
franciszekjob Apr 16, 2026
458e8ef
Add sierra
franciszekjob Apr 16, 2026
1d58ceb
Fix paths
franciszekjob Apr 16, 2026
d3aa232
Fix imports
franciszekjob Apr 16, 2026
7a0bf52
Updte sierra to the one generated with scarb 2.15.1
franciszekjob Apr 16, 2026
d75b66b
Simplify `load_predeployed_contracts`
franciszekjob Apr 16, 2026
60db4c5
Use sierra generated with debug info and backtrace settings
franciszekjob Apr 16, 2026
58af381
Revert "Simplify `load_predeployed_contracts`"
franciszekjob Apr 16, 2026
18ea10b
Fix lint
franciszekjob Apr 16, 2026
f03b1c1
Refactor loading contracts
franciszekjob Apr 16, 2026
f0889e3
Update artifacts
franciszekjob Apr 16, 2026
96c0eeb
Remove changes in snapshots
franciszekjob Apr 16, 2026
eda50a2
Fix compilation errors + rename consts
franciszekjob Apr 16, 2026
d37b341
Final touches
franciszekjob Apr 16, 2026
3aff163
Fix contract names
franciszekjob Apr 16, 2026
0e0660a
Fix contract names
franciszekjob Apr 16, 2026
bbf7fc8
Update docs
franciszekjob Apr 16, 2026
3f5361e
Update comment
franciszekjob Apr 16, 2026
e650722
Fix snapshots
franciszekjob Apr 16, 2026
18741bb
Fix lint
franciszekjob Apr 16, 2026
1be4b89
Change `allow` -> `expect`
franciszekjob Apr 17, 2026
415b8fd
Fix lint
franciszekjob Apr 17, 2026
bad3d5e
Fix lint
franciszekjob Apr 17, 2026
b12cd9e
Rename `save_sierra_file_to_cache` -> `maybe_cache_contract_sierra`
franciszekjob Apr 17, 2026
acae17b
Fix lint; Add comment
franciszekjob Apr 17, 2026
d70f426
Bump `starknet` in `debugging_predeployed_contract`
franciszekjob Apr 17, 2026
97cf486
Make self review
franciszekjob Apr 17, 2026
485697c
Make self review
franciszekjob Apr 17, 2026
757eaee
Merge branch 'master' into update-predeployed-contracts-casm
franciszekjob Apr 17, 2026
9a57684
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob Apr 17, 2026
167942b
Add sierra for predeployed contracts
franciszekjob Apr 13, 2026
92bd010
Update `load_predeployed_contracts` to overwrite class hashes
franciszekjob Apr 13, 2026
030979b
Update sierra
franciszekjob Apr 13, 2026
fb704eb
Add tests
franciszekjob Apr 13, 2026
cc42970
Fix cairo formatting
franciszekjob Apr 13, 2026
6eb6780
Update changelog
franciszekjob Apr 13, 2026
7db8f32
Fix imports
franciszekjob Apr 13, 2026
70a9b7c
Change expect message
franciszekjob Apr 13, 2026
a0d25ee
Remove scarb 2.10 snaphots
franciszekjob Apr 13, 2026
4a7c2b0
Make self-review
franciszekjob Apr 13, 2026
ba83754
Restore casm
franciszekjob Apr 16, 2026
ab5bc9e
Delete crates/cheatnet/src/data/predeployed_contracts/STRK directory
franciszekjob Apr 16, 2026
3d1b64b
Delete crates/cheatnet/src/data/predeployed_contracts/ETH directory
franciszekjob Apr 16, 2026
dda8f63
Add sierra
franciszekjob Apr 16, 2026
52bb56d
Fix paths
franciszekjob Apr 16, 2026
7a31965
Fix imports
franciszekjob Apr 16, 2026
92c2ca3
Updte sierra to the one generated with scarb 2.15.1
franciszekjob Apr 16, 2026
9a44a6e
Simplify `load_predeployed_contracts`
franciszekjob Apr 16, 2026
7c3a5ab
Use sierra generated with debug info and backtrace settings
franciszekjob Apr 16, 2026
cf15732
Revert "Simplify `load_predeployed_contracts`"
franciszekjob Apr 16, 2026
ee63790
Fix lint
franciszekjob Apr 16, 2026
93064f5
Refactor loading contracts
franciszekjob Apr 16, 2026
ab7f142
Update artifacts
franciszekjob Apr 16, 2026
8529f87
Remove changes in snapshots
franciszekjob Apr 16, 2026
cfa02f3
Fix compilation errors + rename consts
franciszekjob Apr 16, 2026
cca32cc
Final touches
franciszekjob Apr 16, 2026
9463b18
Fix contract names
franciszekjob Apr 16, 2026
3c8a013
Fix contract names
franciszekjob Apr 16, 2026
f47a639
Update docs
franciszekjob Apr 16, 2026
6251477
Update comment
franciszekjob Apr 16, 2026
8ab435e
Fix snapshots
franciszekjob Apr 16, 2026
9d851e7
Fix lint
franciszekjob Apr 16, 2026
2764a64
Change `allow` -> `expect`
franciszekjob Apr 17, 2026
52796d3
Fix lint
franciszekjob Apr 17, 2026
c4dc341
Rename `save_sierra_file_to_cache` -> `maybe_cache_contract_sierra`
franciszekjob Apr 17, 2026
d0a5419
Fix lint; Add comment
franciszekjob Apr 17, 2026
2e8db70
Bump `starknet` in `debugging_predeployed_contract`
franciszekjob Apr 17, 2026
b43eaec
Make self review
franciszekjob Apr 17, 2026
2ce8f5f
Make self review
franciszekjob Apr 17, 2026
93bc29a
Merge branch '3433-add-predeployed-contracts-sierra' of https://githu…
franciszekjob Apr 17, 2026
28cc1c8
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 17, 2026
3374eb6
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 17, 2026
008d16e
Fix formatting
franciszekjob Apr 17, 2026
1564824
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob Apr 20, 2026
082c34b
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 20, 2026
116034d
Fix lint
franciszekjob Apr 20, 2026
7768ea8
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 20, 2026
3154fa8
Zip predeployed contracts artifacts
franciszekjob Apr 21, 2026
d70cf28
Add ETH and STRK CASM from starkgate v3.0.0
franciszekjob Apr 13, 2026
6e251b2
Update changelog
franciszekjob Apr 13, 2026
3a35e8f
Update links
franciszekjob Apr 13, 2026
0eb3126
Update class hashes
franciszekjob Apr 13, 2026
c386e6f
Add developer notes
franciszekjob Apr 14, 2026
522fd04
Make self review
franciszekjob Apr 14, 2026
4598484
Formatting
franciszekjob Apr 14, 2026
be87758
Update tokens CASM
franciszekjob Apr 16, 2026
4f6b67e
Update CASM
franciszekjob Apr 16, 2026
092bb24
Delete crates/cheatnet/src/data/predeployed_contracts/eth/casm.json
franciszekjob Apr 16, 2026
69c78c4
Delete crates/cheatnet/src/data/predeployed_contracts/strk/casm.json
franciszekjob Apr 16, 2026
cddace5
Restore CASM
franciszekjob Apr 16, 2026
cde8368
Update docs
franciszekjob Apr 16, 2026
2aa779b
Update docs
franciszekjob Apr 16, 2026
61d80af
Rename contract dirs
franciszekjob Apr 16, 2026
e86e760
Remove newline
franciszekjob Apr 16, 2026
4b4b69e
Fix lint
franciszekjob Apr 17, 2026
6e577a9
Fix formatting
franciszekjob Apr 17, 2026
9e61729
Fix lint
franciszekjob Apr 17, 2026
3823ec1
Fix lint
franciszekjob Apr 20, 2026
27f91c0
Remove unnecessary changes
franciszekjob Apr 21, 2026
65d2dba
Change `TryFromHexStr` to `ContractAddress`
franciszekjob Apr 21, 2026
815565e
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 21, 2026
7cb76bc
Fix imports
franciszekjob Apr 21, 2026
5fb3743
Fix corrupted predeployed Sierra gzip artifacts
franciszekjob Apr 21, 2026
063eedc
Apply review suggestions
franciszekjob Apr 22, 2026
c9c3525
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 22, 2026
435c860
Improve docs; Apply review suggestion
franciszekjob Apr 22, 2026
0a0a7bf
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 22, 2026
4eca951
Fix typos
franciszekjob Apr 22, 2026
4735f78
Merge branch 'update-predeployed-contracts-casm' of https://github.co…
franciszekjob Apr 22, 2026
56da33e
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob Apr 23, 2026
e6efcab
Delete crates/cheatnet/src/data/predeployed_contracts/ERC20Lockable/c…
franciszekjob Apr 23, 2026
286eed2
Delete casm of `ERC20Mintable`
franciszekjob Apr 23, 2026
d8df3d4
Add zipping-related changes
franciszekjob Apr 23, 2026
992bc5e
Share predeployed contracts data between packages
franciszekjob Apr 23, 2026
eb9b374
Pass cache dir to predeployed contracts loader
franciszekjob Apr 23, 2026
f0b1514
Update comment
franciszekjob Apr 23, 2026
cffb6e6
Refactor predeployed contract setup in `ExtendedStateReader`
franciszekjob Apr 23, 2026
5dfef14
Remove `(predeployed contract)` suffix
franciszekjob Apr 23, 2026
939eec4
Add fork tests
franciszekjob Apr 23, 2026
76110cc
Add fork tests
franciszekjob Apr 23, 2026
c98050f
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob Apr 23, 2026
45ec40d
Merge branch '3433-add-predeployed-contracts-sierra' of https://githu…
franciszekjob Apr 23, 2026
1fbe52e
Partial self review
franciszekjob Apr 23, 2026
8476e34
Fix value of ETH permitted minter
franciszekjob Apr 23, 2026
a388777
Update changelog
franciszekjob Apr 23, 2026
313be6e
Fix lint
franciszekjob Apr 23, 2026
86edafa
Update snapshots
franciszekjob Apr 23, 2026
8548a57
Update block number in tests
franciszekjob Apr 23, 2026
fe13934
Fix `debugging_predeployed_contract` test
franciszekjob Apr 23, 2026
7ed51af
Refactor `PredeploymentMode`
franciszekjob Apr 23, 2026
ccd038d
Use contract names with ` Token` suffix
franciszekjob Apr 24, 2026
8ec40b1
Remove old snap
franciszekjob Apr 24, 2026
b3d9d3a
Small change in docs
franciszekjob Apr 24, 2026
d315ea5
Update wording in changelog
franciszekjob Apr 24, 2026
1620d6f
Fix lint
franciszekjob Apr 24, 2026
35bb4a8
Refactor `load_contract` macro argument order
franciszekjob Apr 24, 2026
7c6422b
Fix changing eth address in `class_hashes_to_change`
franciszekjob Apr 24, 2026
940b9b4
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob Apr 27, 2026
1b34371
Refactor predeployed contracts artifacts generation
franciszekjob Apr 27, 2026
3ac950d
Update job name
franciszekjob Apr 27, 2026
6b799ef
Fix tests
franciszekjob Apr 27, 2026
592578c
Apply suggestion
franciszekjob Apr 27, 2026
ae49e38
Update docs
franciszekjob Apr 27, 2026
1fa2aa7
Add todo
franciszekjob Apr 27, 2026
ebaf71c
Update docs
franciszekjob Apr 27, 2026
c29bca5
Make review of `setup_predeployed_contracts.sh`
franciszekjob Apr 27, 2026
af3b565
Remove comment
franciszekjob Apr 27, 2026
10a508c
Simplify `setup_predeployed_contracts.sh`
franciszekjob Apr 27, 2026
ee6dd42
Apply review suhggestions
franciszekjob May 8, 2026
4c4f868
Merge branch 'master' of https://github.com/foundry-rs/starknet-found…
franciszekjob May 8, 2026
6642332
Fix CI
franciszekjob May 8, 2026
04eca19
Run predeployed contracts setup from cheatnet build script
franciszekjob May 8, 2026
3fae94e
Revert "Run predeployed contracts setup from cheatnet build script"
franciszekjob May 8, 2026
cfaf132
Reapply "Run predeployed contracts setup from cheatnet build script"
franciszekjob May 8, 2026
91697f4
Add asdf actions usage
franciszekjob May 8, 2026
eba5bdd
Add more asdf actions usage
franciszekjob May 8, 2026
548d618
Add asdf action usage in `build-test-forge-nextest-archive-native`
franciszekjob May 8, 2026
e4e9dea
Fix `build-test-forge-nextest-archive-native`
franciszekjob May 10, 2026
e3dab34
Add missing asdf usages
franciszekjob May 10, 2026
12426f1
Change `asdf-vm/actions/install` to `asdf-vm/actions/setup`
franciszekjob May 10, 2026
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
40 changes: 40 additions & 0 deletions .github/actions/restore-predeployed-contracts/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Restore predeployed contracts
description: Download generated predeployed contract artifacts into the location expected by cheatnet.

inputs:
artifact-name:
description: Name of the uploaded artifact containing predeployed contracts.
required: false
default: predeployed-contracts
path:
description: Destination directory for restored predeployed contracts.
required: false
default: crates/cheatnet/src/data/predeployed_contracts

runs:
using: composite
steps:
- uses: actions/download-artifact@v6
with:
name: ${{ inputs.artifact-name }}
path: ${{ inputs.path }}

- name: Validate restored predeployed contracts
shell: bash
run: |
set -euo pipefail

required_files=(
"ERC20Lockable/casm.json.gz"
"ERC20Lockable/sierra.json.gz"
"ERC20Mintable/casm.json.gz"
"ERC20Mintable/sierra.json.gz"
)

for relative_path in "${required_files[@]}"; do
full_path="${{ inputs.path }}/${relative_path}"
if [[ ! -f "${full_path}" ]]; then
echo "Missing restored predeployed contract artifact: ${full_path}" >&2
exit 1
fi
done
6 changes: 6 additions & 0 deletions .github/workflows/_build-binaries-native.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,13 @@ on:
type: string

jobs:
prepare-predeployed-contracts:
uses: ./.github/workflows/_prepare-predeployed-contracts.yml

build-binaries:
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}
needs: prepare-predeployed-contracts

env:
# Cross-compiled targets will override this to `cross`.
Expand Down Expand Up @@ -67,6 +71,8 @@ jobs:
if: inputs.ref == ''
uses: actions/checkout@v6

- uses: ./.github/actions/restore-predeployed-contracts

- name: Setup rust
run: |
rustup target add ${{ matrix.target }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/_build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@ on:
type: string

jobs:
prepare-predeployed-contracts:
uses: ./.github/workflows/_prepare-predeployed-contracts.yml

build-binaries:
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}
needs: prepare-predeployed-contracts

env:
# Cross-compiled targets will override this to `cross`.
Expand Down Expand Up @@ -57,6 +61,8 @@ jobs:
if: inputs.ref == ''
uses: actions/checkout@v6

- uses: ./.github/actions/restore-predeployed-contracts

- name: Setup rust
run: |
rustup target add ${{ matrix.target }}
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/_prepare-predeployed-contracts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Prepare predeployed contracts

on:
workflow_call:
inputs:
artifact-name:
required: false
type: string
default: predeployed-contracts

jobs:
prepare-predeployed-contracts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47

- name: Restore predeployed contracts cache
id: cache-predeployed-contracts
uses: actions/cache@v4
with:
path: crates/cheatnet/src/data/predeployed_contracts
key: predeployed-contracts-${{ runner.os }}-${{ hashFiles('scripts/setup_predeployed_contracts.sh') }}

- name: Generate predeployed contracts
if: steps.cache-predeployed-contracts.outputs.cache-hit != 'true'
run: ./scripts/setup_predeployed_contracts.sh

- name: Upload predeployed contracts
uses: actions/upload-artifact@v5
with:
name: ${{ inputs.artifact-name }}
path: crates/cheatnet/src/data/predeployed_contracts
if-no-files-found: error
compression-level: 0
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note: Intentional, because files are already stored as *.json.gz.

25 changes: 24 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,31 +34,39 @@ jobs:
echo ${scarb_versions[@]}
echo "versions=[${scarb_versions[@]}]" >> "$GITHUB_OUTPUT"

prepare-predeployed-contracts:
name: Prepare predeployed contracts
uses: ./.github/workflows/_prepare-predeployed-contracts.yml

test-workspace:
# Runs tests from all crates across the workspace, except:
# - `sncast` tests
# - `forge` integration and e2e tests
# `native-api` is also excluded as there are no tests and it requires extra setup to compile.
name: Workspace Tests
runs-on: ubuntu-latest
needs: prepare-predeployed-contracts
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-tools
with:
save-cache: 'true'
- uses: ./.github/actions/restore-predeployed-contracts
- run: cargo test --profile ci --workspace --exclude sncast --exclude forge --exclude native-api
- run: cargo test --profile ci --lib -p forge

build-test-forge-nextest-archive:
name: Build Nextest Archive (Forge)
runs-on: ubuntu-latest
needs: prepare-predeployed-contracts
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-tools
with:
setup-scarb: 'false'
setup-usc: 'false'
save-cache: 'true'
- uses: ./.github/actions/restore-predeployed-contracts
- name: Install nextest
uses: taiki-e/install-action@055f5df8c3f65ea01cd41e9dc855becd88953486 # 2.75.18
with:
Expand All @@ -74,11 +82,14 @@ jobs:
build-test-forge-nextest-archive-native:
name: Build Nextest Archive (Forge Native)
runs-on: ubuntu-latest
needs: prepare-predeployed-contracts
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-tools
with:
install-llvm: 'true'
- uses: ./.github/actions/restore-predeployed-contracts
with:
setup-scarb: 'false'
setup-usc: 'false'
cache-key: 'native'
Expand Down Expand Up @@ -251,7 +262,7 @@ jobs:
if: github.event_name == 'merge_group'
name: Test Forge / E2E Snap (Scarb ${{ matrix.version }})
runs-on: ubuntu-latest
needs: get-scarb-versions
needs: [get-scarb-versions, prepare-predeployed-contracts]
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -293,18 +304,21 @@ jobs:
- uses: ./.github/actions/setup-tools
with:
scarb-version: ${{ matrix.version }}
- uses: ./.github/actions/restore-predeployed-contracts
- name: Run snap E2E tests
run: cargo test --profile ci -p forge --test main snap_

test-special-conditions:
name: Test special conditions
runs-on: ubuntu-latest
needs: prepare-predeployed-contracts
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-tools
# Scarb is installed manually below to control the version
with:
setup-scarb: 'false'
- uses: ./.github/actions/restore-predeployed-contracts

- run: cargo test --profile ci --package forge --features no_scarb_installed --lib compatibility_check::tests::failing_tool_not_installed

Expand Down Expand Up @@ -332,8 +346,10 @@ jobs:
build-test-cast-nextest-archive:
name: Build Nextest Archive (Cast)
runs-on: ubuntu-latest
needs: prepare-predeployed-contracts
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/restore-predeployed-contracts
- uses: asdf-vm/actions/install@b7bcd026f18772e44fe1026d729e1611cc435d47
- uses: ./.github/actions/setup-tools
with:
Expand Down Expand Up @@ -382,16 +398,19 @@ jobs:
- uses: actions/checkout@v6
- uses: asdf-vm/actions/install@b7bcd026f18772e44fe1026d729e1611cc435d47
- uses: ./.github/actions/setup-tools
- uses: ./.github/actions/restore-predeployed-contracts
- name: Run doctests
run: cargo test --profile ci -p sncast --doc

test-ledger:
name: Test Ledger
runs-on: ubuntu-latest
container: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools
needs: prepare-predeployed-contracts

steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/restore-predeployed-contracts
- uses: asdf-vm/actions/install@b7bcd026f18772e44fe1026d729e1611cc435d47
- uses: ./.github/actions/setup-tools
with:
Expand All @@ -406,6 +425,7 @@ jobs:
fmt-lint-typos:
name: Lint and Format
runs-on: ubuntu-latest
needs: prepare-predeployed-contracts
env:
# Make sure CI fails on all warnings - including Clippy lints.
RUSTFLAGS: "-Dwarnings"
Expand All @@ -417,6 +437,7 @@ jobs:
setup-usc: 'false'
cache-key: 'lint'
save-cache: 'true'
- uses: ./.github/actions/restore-predeployed-contracts
- run: rustup component add rustfmt

- name: Check formatting
Expand Down Expand Up @@ -451,9 +472,11 @@ jobs:
build-docs:
name: Test Building Docs
runs-on: ubuntu-latest
needs: prepare-predeployed-contracts
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-tools
- uses: ./.github/actions/restore-predeployed-contracts
- uses: taiki-e/install-action@055f5df8c3f65ea01cd41e9dc855becd88953486 # 2.75.18
with:
# TODO(#3970): Upgrade mdbook-variables after resolving issue
Expand Down
13 changes: 10 additions & 3 deletions .github/workflows/scheduled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,22 @@ jobs:
echo ${scarb_versions[@]}
echo "versions=[${scarb_versions[@]}]" >> "$GITHUB_OUTPUT"

prepare-predeployed-contracts:
if: github.event.repository.fork == false
uses: ./.github/workflows/_prepare-predeployed-contracts.yml

test-forge-unit-and-integration:
if: github.event.repository.fork == false
runs-on: ubuntu-latest
needs: get-scarb-versions
needs: [get-scarb-versions, prepare-predeployed-contracts]
strategy:
fail-fast: false
matrix:
version: ${{ fromJSON(needs.get-scarb-versions.outputs.versions) }}

steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/restore-predeployed-contracts
- uses: dtolnay/rust-toolchain@stable
- uses: software-mansion/setup-scarb@v1
with:
Expand All @@ -56,7 +61,7 @@ jobs:
test-forge-e2e:
if: github.event.repository.fork == false
runs-on: ubuntu-latest
needs: get-scarb-versions
needs: [get-scarb-versions, prepare-predeployed-contracts]
strategy:
fail-fast: false
matrix:
Expand All @@ -80,6 +85,7 @@ jobs:
run: echo "REPO_NAME=$(echo ${{ github.event.pull_request.head.repo.full_name }}.git)" >> $GITHUB_ENV

- uses: actions/checkout@v6
- uses: ./.github/actions/restore-predeployed-contracts
- uses: dtolnay/rust-toolchain@stable
- uses: software-mansion/setup-scarb@v1
with:
Expand All @@ -101,14 +107,15 @@ jobs:
test-cast:
if: github.event.repository.fork == false
runs-on: ubuntu-latest
needs: get-scarb-versions
needs: [get-scarb-versions, prepare-predeployed-contracts]
strategy:
fail-fast: false
matrix:
version: ${{ fromJSON(needs.get-scarb-versions.outputs.versions) }}

steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/restore-predeployed-contracts
- uses: dtolnay/rust-toolchain@stable
- uses: software-mansion/setup-scarb@v1
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Scarb.lock
.spr.yml
.snfoundry_cache/
.snfoundry_versioned_programs/
crates/cheatnet/src/data/predeployed_contracts/
snfoundry_trace/
coverage/
**/.forge_e2e_cache/
Expand Down
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Forge

#### Added

- Predeployed contracts are now supported in debugging traces and backtrace

#### Fixed

- Bug in forge debugging and `--gas-report` that caused panic in case of a call to non-existent selector
- Permitted minter storage value of ETH predeployed contract, has now the same value as on mainnet

## [0.60.0] - 2026-04-27

Expand Down Expand Up @@ -44,7 +49,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
#### Changed

- In JSON output for `sncast utils` commands, the `"command"` field now includes the `utils` prefix (e.g. `"serialize"` -> `"utils serialize"`).
- Reworked profile layering in `snfoundry.toml`: `[sncast.default]` is always the base layer, and global-only profiles can work without a local config. Read more [here](https://foundry-rs.github.io/starknet-foundry/projects/configuration.html#interaction-between-local-and-global-profiles).
- Reworked profile layering in `snfoundry.toml`: `[sncast.default]` is always the base layer, and global-only profiles can work without a local config. Read more [here](https://foundry-rs.github.io/starknet-foundry/projects/configuration.html#interaction-between-local-and-global-profiles).
- Improved `snfoundry.toml` config error reporting.
- `--profile` now only determines `snfoundry.toml` profile. For Scarb profile, use `--scarb-profile` flag or `scarb-profile` from `snfoundry.toml` instead. Defaults to `release` if unspecified.

Expand Down
1 change: 1 addition & 0 deletions crates/cheatnet/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
name = "cheatnet"
version.workspace = true
edition.workspace = true
build = "build.rs"

[features]
testing = []
Expand Down
Loading
Loading