Releases: foundry-rs/forge-std
v1.15.0
Featured Changes
createEd25519Key(bytes32 salt)— deterministic Ed25519 key generationpublicKeyEd25519(bytes32 privateKey)— derive Ed25519 public keysignEd25519(namespace, message, privateKey)— Ed25519 signing with domain separationverifyEd25519(signature, namespace, message, publicKey)— Ed25519 signature verificationgetRecordedLogsJson()— get recorded logs as JSON stringexecuteTransaction(bytes rawTx)— execute RLP-encoded signed tx with full EVM semantics (isolate mode)sign/signCompactwithWalletnow markedpure
Tempo chain support (#794)
- Added
tempo(chain ID 4217),tempo_moderato(42431),tempo_andantino(42429) toStdChains
Fixes
- Correct function selector computation (#796)
- Fix error messages in
stdStoragechecked_write(#802) - Fix error message in
dealERC721(#800) - Fix error message in
dealERC1155(#801)
Documentation and Chores
- Add
StdConfigdocumentation to README (#817) - Add one-line explainers for each
StdInvariantfunction (#813) - Fix outdated
StdCheatsandStd Assertionsdescriptions in README (#812, #814) - Fix
IERC4626previewWithdrawcomment (#811) - Fix
IERC7575previewWithdrawcomment (#816) - Fix copy-paste error in
IERC7540Redeemcomment (#798) - Fix missing
inttype inStdConfigcomment (#797) - Fix incorrect
stdStoragepacked slots documentation (#804) - Fix typos in
StdTomlcode examples and comments (#786) - Fix grammatical errors in
Vm.sol,IERC7540.sol,IERC7575.sol,IERC4626.solcomments (#781, #782, #783) - Grammar fixes in
StdChains.solandStdConfig.sol(#784) - General spelling and grammar fixes (#785, #788, #789, #791)
- Update RPC URLs from
ithaca.xyztoreth.rs(#805) - Bump
crate-ci/typosCI action (#799, #807, #815, #818)
New Contributors
- @anim001k made their first contribution in #781
- @maximevtush made their first contribution in #782
- @zeevick10 made their first contribution in #783
- @sashaodessa made their first contribution in #785
- @vtjl10 made their first contribution in #786
- @leopardracer made their first contribution in #788
- @kilavvy made their first contribution in #784
- @eeemmmmmm made their first contribution in #796
- @Elena343-ai made their first contribution in #812
- @NftCryptoHunter007 made their first contribution in #811
- @giannistbs made their first contribution in #813
Full Changelog: v1.14.0...v1.15.0
v1.14.0
⚠️ Breaking Changes
- fix: limit to ^0.8.13 compatibility by @zerosnacks in #767
This is the first release that requires ^0.8.13.
All future releases will also require ^0.8.13.
For compatibility with versions < 0.8.13, use v1.13.0.
See: #764 for additional context.
What's Changed
- chore(deps): bump crate-ci/typos from 1.40.0 to 1.41.0 by @dependabot[bot] in #778
- feat: cover with tests LibVariable array coercions by @phrwlk in #774
- chore(release): bump to v1.14.0 by @zerosnacks in #780
New Contributors
Full Changelog: v1.13.0...v1.14.0
v1.13.0
This is the final release compatible with versions < 0.8.13 (support previously aimed to cover >= 0.6.2).
All subsequent releases require >= 0.8.13. See: #764 for additional context.
Featured Changes
- feat(stdchains): add ink and ink sepolia default rpc endpoints by @CruzMolina in #762
- feat: add StdConfig::exists method to check if key exists by @nikollamalic in #771
What's Changed
- chore: update
exposed_ <function_name>be consistent with lint mixed-case-function rule by @zerosnacks in #761 - fix: config test to use reth, remove log from bound by @grandizzy in #763
- Update README.md by @MonkeyKing44 in #718
- fix: correct error messages in StdStorage parent() and root() functions by @avorylli in #723
- chore(deps): bump crate-ci/typos from 1.39.2 to 1.40.0 by @dependabot[bot] in #765
- fix: correctly state dual license
MIT or Apache-2.0in Solidity files by @zerosnacks in #768 - fix: minor typos in docs by @maradini77 in #769
- fix: correct type mismatch in LibVariable documentation example by @GarmashAlex in #725
- fix: prevent out-of-bounds access in
bytesToBytes32by @maradini77 in #742 - refactor: deduplicate Multicall3 and CREATE2_FACTORY constants in StdUtils by @aso20455 in #706
- fix: populate Tx1559.contractAddress during conversion by @Galoretka in #733
- chore(release): bump v1.13.0 by @zerosnacks in #779
New Contributors
- @MonkeyKing44 made their first contribution in #718
- @avorylli made their first contribution in #723
- @maradini77 made their first contribution in #769
- @nikollamalic made their first contribution in #771
- @GarmashAlex made their first contribution in #725
- @aso20455 made their first contribution in #706
- @Galoretka made their first contribution in #733
Full Changelog: v1.12.0...v1.13.0
v1.12.0
Featured Changes
- feat:
get/setEvmVersion,signWithNonceUnsafe,getStorageSlotscheatcodes by @grandizzy in #744 - feat: add zero-division checks to stdMath.percentDelta overloads by @viktorking7 in #735
- feat: add Unichain and Unichain Sepolia RPC URLs by @lababidi in #748
- fix: assume not precompiles for optimism sepolia by @grandizzy in #750
- fix: add missing deprecated log to second changePrank implementation by @estarossa0 in #752
What's Changed
- chore(deps): bump github/codeql-action from 3 to 4 by @dependabot[bot] in #747
- chore(deps): bump crate-ci/typos from 1.37.2 to 1.38.1 by @dependabot[bot] in #746
- chore: fix fmt & bump Vm.sol by @zerosnacks in #756
- chore(deps): bump crate-ci/typos from 1.38.1 to 1.39.0 by @dependabot[bot] in #755
- chore(deps): bump crate-ci/typos from 1.39.0 to 1.39.2 by @dependabot[bot] in #758
- chore(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #759
- chore: bump to 1.12.0 for next release by @zerosnacks in #760
New Contributors
- @viktorking7 made their first contribution in #735
- @lababidi made their first contribution in #748
- @estarossa0 made their first contribution in #752
Full Changelog: v1.11.0...v1.12.0
v1.11.0
Featured Changes
Users can then tap into the new features that Config and StdConfig enable to streamline the setup of multi-chain environments.
-
The following functions were added to
VmSafe:resolveEnvgetChainIdgetStorageAccessesbound
-
The following functions were made
view:accesseseth_getLogsgetMappingLengthgetMappingSlotAtgetNoncegetRecordedLogsgetWalletsreadCallers
-
The following functions were made
pure:contains
- feat: fork cheats by @0xrusowsky in #709
- feat(vm): getStorageAccesses by @yash-atreya in #712
- feat:
readFork*andgetStorageAccessescheatcodes by @0xrusowsky in #711 - feat!: deprecate
readForkcheats by @0xrusowsky in #714 - feat: config helper contract by @0xrusowsky in #715
- StdConfig: fix typo in writeToFile param doc by @prestoalvarez in #721
What's Changed
- docs(meta): add RELEASE_CHECKLIST.md by @DaniPopes in #702
- chore: update codeowners by @zerosnacks in #729
- chore(
ci): harden workflow by setting default permission to read only by @zerosnacks in #728 - chore(
ci): add CodeQL by @zerosnacks in #727 - chore(
ci): pin deps in workflow and adddependabotto update them weekly by @zerosnacks in #730 - chore(deps): bump crate-ci/typos from 1.36.2 to 1.36.3 by @dependabot[bot] in #736
- chore(deps): bump crate-ci/typos from 1.36.3 to 1.37.2 by @dependabot[bot] in #741
- chore(
ci): rescope permissions according to principle of least privilege by @zerosnacks in #731 - chore(
ci): move CodeQL toci.ymland make it a condition forci-successby @zerosnacks in #734
New Contributors
- @prestoalvarez made their first contribution in #721
- @dependabot[bot] made their first contribution in #736
Full Changelog: v1.10.0...v1.11.0
v1.10.0
Featured Changes
- The following functions were added to
VmSafe:getRawBlockHeaderstopRecordsetSeed- EIP-7702:
attachDelegation,signAndAttachDelegation,signDelegation - EIP-712:
eip712HashStruct,eip712HashType,eip712HashTypedData
- The following functions were made
view:randomAddress()randomUint()randomUint(uint256 min, uint256 max)
- perf(StdAssertions): avoid vm call for trivial conditions by @DaniPopes in #693
- fix: re-add fail(string) by @DaniPopes in #697
What's Changed
- add stopRecord and 7702 cross chain cheatcodes by @grandizzy in #680
- Broken forge link by @mario-eth in #685
- feat: add EIP-712 cheatcodes by @yash-atreya in #686
- feat(Vm): add
setSeed,getRawBlockHeaderby @DaniPopes in #696 - chore: fix and add typos in ci by @DaniPopes in #695
- chore(meta): add CODEOWNERS by @DaniPopes in #694
- perf(StdAssertions): avoid vm call for trivial conditions by @DaniPopes in #693
- ci: add Foundry stable, use matrixes by @DaniPopes in #698
- chore(StdAssertions): manually invert conditions by @DaniPopes in #699
- fix: re-add fail(string) by @DaniPopes in #697
- feat(Vm): include
random*view changes by @DaniPopes in #700 - feat: release 1.10.0 by @DaniPopes in #701
New Contributors
- @mario-eth made their first contribution in #685
Full Changelog: v1.9.7...v1.10.0
v1.9.7
Featured changes
- Add
ERC7540andERC7575interfaces by @hieronx in #644 - Add
StdConstantslibrary by @CodeSandwich in #654 - Add
ERC-6909interface by @n3m6 in #664 - Add new
accessList,warmSlot,coolSlot+coolcheatcodes by @grandizzy in #670 - add
interceptInitcodecheatcode by @grandizzy in #675
Other changes
- feat: update cheatcodes by @grandizzy in #673
- chore: add hoodi testnet by @StackOverflowExcept1on in #672
- chore: use named imports by @milosdjurica in #659
- feat: update cheatcodes by @StackOverflowExcept1on in #678
New Contributors
- @hieronx made their first contribution in #644
- @CodeSandwich made their first contribution in #654
- @n3m6 made their first contribution in #664
- @StackOverflowExcept1on made their first contribution in #672
Full Changelog: v1.9.6...v1.9.7
v1.9.6
Breaking Changes
- deprecated
deployMockERC721anddeployMockERC20fromStdUtils(#643)
Featured Changes
- Fixing Variable Shadowing in Solidity: uint256 Redeclaration Error by @Guayaba221 in #636
- feat: new cheatcode
assumeUnusedAddressby @xenide in #639 - OP Networks Add by @ElliotFriedman in #646
- test: remove
testFail*tests by @zerosnacks in #643
Other changes
- chore: update
Vm.solto the latest version by @zerosnacks in #647 - chore: update to
1.9.6by @zerosnacks in #648
New Contributors
- @Guayaba221 made their first contribution in #636
- @ElliotFriedman made their first contribution in #646
Full Changelog: v1.9.5...v1.9.6
v1.9.5
Featured Changes
- feat: get broadcasts by @yash-atreya in #627
- feat: mockCall overloads by @yash-atreya in #630
- fix: use
vm.getBlockTimestampforskipandrewindby @xenide in #634 - feat:
countassertion forexpectRevertby @yash-atreya in #638 - feat: count assertions for expectEmit by @yash-atreya in #640
Other changes
- test: don't expect a specific cheatcode error message by @DaniPopes in #632
- chore: update to latest cheatcodes by @grandizzy in #633
- chore: update Vm.sol by @zerosnacks in #641
- chore: bump to
v1.9.5by @grandizzy in #642
New Contributors
Full Changelog: v1.9.4...v1.9.5
v1.9.4
Featured Changes
- feat: add gas snapshot cheatcodes by @zerosnacks in #614
- feat: add additional random value cheatcodes and mocking cheatcodes by @Tudmotu in #615
- feat: add
debugTraceRecording,getScriptWallets,breakpoint, andcloneAccountcheats by @boolafish in #621 - feat: add
rememberKeyscheats by @yash-atreya in #622 - feat: add
getWalletscheatcode by @yash-atreya in #620 - fix: update snapshot cheatcodes by @zerosnacks in #613
Other changes
- Add
--fromoption to vm.py, to generate Vm.sol from json file by @Tudmotu in #619 - chore: add contribution guide and document
scripts/vm.pyby @zerosnacks in #618 - chore: add guidance on running compatibility checks locally by @zerosnacks in #623
- chore: bump to v1.9.4 by @mds1 in #625
New Contributors
- @boolafish made their first contribution in #621
Full Changelog: v1.9.3...v1.9.4