Skip to content

Releases: foundry-rs/starknet-foundry

0.50.0

30 Sep 09:28
bf0ade0
Compare
Choose a tag to compare

Forge

Added

  • #[test_case] attribute for parameterized testing. Read more here

Changed

  • Minimal supported Scarb version is now 2.10.0 (updated from 2.9.1)
  • Minimal supported snforge_std and snforge_std_deprecated version is now 0.50.0

Fixed

Removed

  • Possibility to use #[available_gas] with unnamed argument. Use named arguments instead, e.g. #[available_gas(l2_gas: 5)].
  • The deprecated command snforge init. Use snforge new to initialize new Forge projects

Cast

Added

  • sncast declare-from command to declare a contract by fetching it from a different Starknet instance

0.49.0

04 Sep 14:26
ddaa0a0
Compare
Choose a tag to compare

Forge

Added

  • Support for meta_tx_v0 syscall with cheatcode compatibility
  • snforge now supports oracles with --experimental-oracles flag.
  • --trace-components flag to allow selecting which components of the trace to do display. Read more here

Cast

Added

  • --test-files flag to verify command to include test files under src/ for verification (only applies to voyager)
  • --tip flag to invoke, declare, deploy, multicall run and account deploy commands to set the transaction tip
  • --estimate-tip flag which automatically adds an estimated tip to the transaction. The tip is calculated based on the current network conditions and added to the transaction fee
  • utils class-hash command to calculate the class hash for a contract

Changed

  • The supported RPC version is now 0.9.0
  • New UDC is now used during deployment

0.48.1

18 Aug 09:39
Compare
Choose a tag to compare

Forge

Fixed

  • A bug that caused #[fuzzer] attribute to fail when used with generic structs

0.48.0

06 Aug 09:34
2cb8b39
Compare
Choose a tag to compare

Forge

Added

  • snforge_std is now compatible with Scarb procedural macros V2. Migration is required if using Scarb versions before 2.12.0. See migration guide.

Changed

  • If using a Scarb version before 2.10.0 or not using allow-prebuild-plugins, the minimal required rust version to run snforge is now 1.87.0

Cast

Fixed

  • Block explorer links are now hidden by default when using starknet-devnet. Set SNCAST_FORCE_SHOW_EXPLORER_LINKS=1 env variable to display them.

0.47.0

30 Jul 06:37
c20c2b2
Compare
Choose a tag to compare

Forge

Added

  • interact_with_state cheatcode to enable effective use of contract_state_for_testing in snforge tests
  • Support for using Scarb profiles with snforge test, allowing to pass the same profile flags as in Scarb (--release, --dev, --profile) to build artifacts using a specific profile

Deprecated

  • The snforge completion command. Use snforge completions instead

Fixed

  • Passing a cheatcode span of 0 was incorrectly treated as CheatSpan::Indefinite. This is now resolved by making CheatSpan::TargetCalls accept NonZero<usize> instead of just usize in snforge_std.

Cast

Added

  • ready option for --type flag in account create and account import commands (Argent wallet has rebranded as Ready)

Changed

  • Braavos accounts with all class hashes are now supported

Deprecated

  • argent option for --type flag in account create and account import commands. Use ready instead
  • The sncast completion command. Use sncast completions instead

0.46.0

09 Jul 15:02
8586208
Compare
Choose a tag to compare

Forge

Added

  • Total test summary when running tests across multiple packages (for example when running snforge test --workspace)

Fixed

  • Bug where syscall execution resources from nested calls were being calculated twice

Cast

Added

  • sncast utils serialize command to serialize Cairo expressions into calldata
  • sncast verify now supports verifying against voyager block explorer.

Changed

  • Improved commands output readability with colors and simplified layout.
  • sncast verify no longer defaults to using walnut.

Fixed

  • Bug where account create raised an error if no --name was provided and the file specified by --accounts-file was empty

Removed

  • --int-format and --hex-format, all values are displayed with default format

0.45.0

17 Jun 07:53
f969d9c
Compare
Choose a tag to compare

Forge

Added

  • ETH token is now pre-deployed by default in every test, and Token::ETH was added to snforge_std
  • --skip flag to allow excluding any test whose name contains the provided string

Changed

  • Updated output format for --exit-first flag. Tests skipped due to preceding failures are no longer displayed in the summary. Alternative information is shown when applicable.
  • storage address was renamed to contract address in the output of --trace-verbosity

Fixed

  • bug that caused --trace-verbosity to panic in fork tests
  • fixed a bug in fork tests where resources used in nested calls were counted multiple times, leading to overestimated gas and resource usage

Removed

Cast

Removed

0.44.0

27 May 07:47
437d128
Compare
Choose a tag to compare

Warning

Make sure to upgrade snforge_std version in Scarb.toml to 0.44.0 otherwise test execution will fail.

Forge

Changed

  • Minimal supported snforge_std version is 0.44.0
  • Changed the code generated by snforge_std's #[test] attribute

Fixed

  • "invalid syscall selector" error appearing when using arithmetic circuits
  • Bug that caused incorrect gas tracking for contracts using Sierra version less than 1.7.0 when sierra-gas was passed as the tracked-resource

Cast

Added

  • Displaying the path of the config file when adding a new profile

Changed

  • OpenZeppelin account updated to v1.0.0 preset
  • Restored support for Braavos accounts
  • Accounts created with --type braavos use updated v1.2.0 class hash
  • Output of sncast account create is now clearer; the estimated fee is displayed in both STRK and FRI.
  • Renamed the field max_fee to estimated_fee in the sncast account create output.

0.43.1

19 May 07:52
Compare
Choose a tag to compare

Cast

Removed

  • Broken Voyager RPC provider

0.43.0

13 May 08:06
ea57c49
Compare
Choose a tag to compare

Forge

Added

  • set_balance cheatcode for setting an ERC-20 token balance for specified contract address. The STRK token is now pre-deployed in every test by default. This can be disabled by adding #[disable_predeployed_contracts] attribute to test.
  • added option to display trace of contracts execution. Read more here

Changed

  • "Success data" message is no longer printed when a test using the #[should_panic] attribute passes

Cast

Added

  • when using sncast call the response will be printed as a Cairo-like string representation of the return values

Changed

  • The supported RPC version is now 0.8.1