Releases: foundry-rs/starknet-foundry
Releases · foundry-rs/starknet-foundry
0.8.3-alpha.1
v0.8.3-alpha.1 update version
0.8.2
Forge
Fixed
- incorrect caller address bug in called contracts
0.8.1
Forge
Fixed
- significantly reduced ram usage
0.8.0
⚠️ This release has some bugs and might not be usable in your projects ⚠️
Fixes are coming in the next few days
Forge
Added
#[fuzzer(...)]
attribute allowing to specify a fuzzer configuration for a single test case- Support for
u8
,u16
,u32
,u64
,u128
,u256
types to fuzzer --clean-cache
flag- Changed interface of
L1Handler.execute
andL1Handler
(droppedfee
parameter, added result handling withRevertedTransaction
) - Contract now has associated state, more about it here
- cheatcodes (
prank
,roll
,warp
) now work on forked Cairo 0 contracts
Changed
0.7.1
Forge
Added
snforge_std
var
library function for reading environmental variables
Fixed
- Crashes while using any concrete
block_id
when using forking mode insnforge
0.7.0
Forge
Added
- Support for scarb workspaces
- Initial version of fuzz testing with randomly generated values
#[fork(...)]
attribute allowing testing against a network fork
Changed
- Tests are collected only from a package tree (
src/lib.cairo
as an entrypoint) andtests
folder:- If there is a
lib.cairo
file intests
folder, then it is treated as an entrypoint to thetests
package from which tests are collected - Otherwise, all test files matching
tests/*.cairo
regex are treated as modules and added to a single virtuallib.cairo
, which is treated as described above
- If there is a
You can read more about new test collection mechanism here
Cast
Added
account add
command for importing accounts to the accounts fileaccount create
command for creating openzeppelin accounts with starkli-style keystoreaccount deploy
command for deploying openzeppelin accounts with starkli-style keystore
Changed
--add-profile
no longer accepts-a
for short- allow the
id
property in multicalls to be referenced in the inputs ofdeploy
andinvoke
calls
0.6.0
Forge
Added
deploy_at
cheatcode- printing failures summary at the end of an execution
- filtering tests now uses an absolute module tree path — it is possible to filter tests by module names, etc.
Fixed
- non-zero exit code is returned when any tests fail
- mock_call works with dispatchers if contract does not exists
Cast
Added
- support for starkli-style accounts, allowing the use of existing accounts
Changed
- fixed misleading error message when there was no scarb in PATH and
--path-to-scarb-toml
was passed - modified
multicall new
command output, to be in line with other commands outputs
0.5.0
Forge
Added
- support for
keccak_syscall
syscall - it can be used directly in cairo tests l1_handler_execute
cheatcode by @glihm- support for
roll
ing/warp
ing/prank
ing the constructor logic (precalculate address, prank, assert pranked state in constructor) spy_events
cheatcode- support for printing in contracts
spoof
cheatcode
Cast
Added
- Support for custom networks - accounts created on custom networks are saved in
accounts-file
under network's
chain_id accounts-file
field in Scarb.toml profile- Include the class hash of an account contract in the
accounts-file
Removed
--network
option together with thenetwork
field in Scarb.toml profile — previously used as a validation factor;
now networks are identified by their chain_id
Other contributors: @amlord , @tiagofneto
Compatible Scarb Versions
Tool | Scarb Version |
---|---|
snforge |
0.7.0 |
sncast |
>=0.4.1, <=0.7.0 |
0.4.1
Changed
- fixed version number (now
0.4.1
)
Compatible Scarb Versions
Tool | Scarb Version |
---|---|
snforge |
0.6.0 |
sncast |
>=0.4.1, <=0.6.0 |
0.4.0
Forge
Added
mock_call
cheatcodes- Functions
parse_txt
andTxtParser<T>::deserialize_txt
to load data from plain text files and serialize it #[should_panic]
attribute support by @enitratget_class_hash
cheatcode by @glihm- Print support for all basic numeric data types
Changed
- Exported
snforge_std
as a Scarb package, now you have to import it explicitly with e.g.use snforge_std::declare
and add it as a dependency to your Scarb.toml
[dependencies]
# ...
snforge_std = { git = "https://github.com/foundry-rs/starknet-foundry", tag = "0.4.0" }
- Gently fails test when user tries to use syscalls not supported by forge test runner
- Updated cairo-lang to 2.1.0, starknet-api to 0.4.1 and blockifier to 0.2.0-rc0
Cast
Added
- Added
--class-hash
flag to account create/deploy, allowing for custom openzeppelin account contract class hash
Other contributors: @Utilitycoder , @binsta,
Compatible Scarb Versions
Tool | Scarb Version |
---|---|
snforge |
0.6.0 |
sncast |
>=0.4.1, <=0.6.0 |