Skip to content

Releases: foundry-rs/forge-std

v1.15.0

17 Feb 10:01
0844d7e

Choose a tag to compare

Featured Changes

New cheatcodes: (#819, #810)

  • createEd25519Key(bytes32 salt) — deterministic Ed25519 key generation
  • publicKeyEd25519(bytes32 privateKey) — derive Ed25519 public key
  • signEd25519(namespace, message, privateKey) — Ed25519 signing with domain separation
  • verifyEd25519(signature, namespace, message, publicKey) — Ed25519 signature verification
  • getRecordedLogsJson() — get recorded logs as JSON string
  • executeTransaction(bytes rawTx) — execute RLP-encoded signed tx with full EVM semantics (isolate mode)
  • sign / signCompact with Wallet now marked pure

Tempo chain support (#794)

  • Added tempo (chain ID 4217), tempo_moderato (42431), tempo_andantino (42429) to StdChains
  • feat: update Vm.sol with new cheatcodes by @gakonst in #819

Fixes

  • Correct function selector computation (#796)
  • Fix error messages in stdStorage checked_write (#802)
  • Fix error message in dealERC721 (#800)
  • Fix error message in dealERC1155 (#801)

Documentation and Chores

  • Add StdConfig documentation to README (#817)
  • Add one-line explainers for each StdInvariant function (#813)
  • Fix outdated StdCheats and Std Assertions descriptions in README (#812, #814)
  • Fix IERC4626 previewWithdraw comment (#811)
  • Fix IERC7575 previewWithdraw comment (#816)
  • Fix copy-paste error in IERC7540Redeem comment (#798)
  • Fix missing int type in StdConfig comment (#797)
  • Fix incorrect stdStorage packed slots documentation (#804)
  • Fix typos in StdToml code examples and comments (#786)
  • Fix grammatical errors in Vm.sol, IERC7540.sol, IERC7575.sol, IERC4626.sol comments (#781, #782, #783)
  • Grammar fixes in StdChains.sol and StdConfig.sol (#784)
  • General spelling and grammar fixes (#785, #788, #789, #791)
  • Update RPC URLs from ithaca.xyz to reth.rs (#805)
  • Bump crate-ci/typos CI action (#799, #807, #815, #818)

New Contributors

Full Changelog: v1.14.0...v1.15.0

v1.14.0

05 Jan 13:16
1801b05

Choose a tag to compare

⚠️ Breaking Changes

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

05 Jan 10:27
c29afdd

Choose a tag to compare

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.0 in 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 bytesToBytes32 by @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

Full Changelog: v1.12.0...v1.13.0

v1.12.0

26 Nov 09:06
7117c90

Choose a tag to compare

Featured Changes

  • feat: get/setEvmVersion, signWithNonceUnsafe, getStorageSlots cheatcodes 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

New Contributors

Full Changelog: v1.11.0...v1.12.0

v1.11.0

08 Oct 08:14
8e40513

Choose a tag to compare

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:

    • resolveEnv
    • getChainId
    • getStorageAccesses
    • bound
  • The following functions were made view:

    • accesses
    • eth_getLogs
    • getMappingLength
    • getMappingSlotAt
    • getNonce
    • getRecordedLogs
    • getWallets
    • readCallers
  • The following functions were made pure:

    • contains

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 add dependabot to 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 to ci.yml and make it a condition for ci-success by @zerosnacks in #734

New Contributors

Full Changelog: v1.10.0...v1.11.0

v1.10.0

31 Jul 12:32
8bbcf6e

Choose a tag to compare

Featured Changes

  • The following functions were added to VmSafe:
    • getRawBlockHeader
    • stopRecord
    • setSeed
    • EIP-7702: attachDelegation, signAndAttachDelegation, signDelegation
    • EIP-712: eip712HashStruct, eip712HashType, eip712HashTypedData
  • The following functions were made view:
    • randomAddress()
    • randomUint()
    • randomUint(uint256 min, uint256 max)

What's Changed

New Contributors

Full Changelog: v1.9.7...v1.10.0

v1.9.7

28 Apr 08:12
77041d2

Choose a tag to compare

Featured changes

Other changes

New Contributors

Full Changelog: v1.9.6...v1.9.7

v1.9.6

31 Jan 13:35
3b20d60

Choose a tag to compare

Breaking Changes

  • deprecated deployMockERC721 and deployMockERC20 from StdUtils (#643)

Featured Changes

  • Fixing Variable Shadowing in Solidity: uint256 Redeclaration Error by @Guayaba221 in #636
  • feat: new cheatcode assumeUnusedAddress by @xenide in #639
  • OP Networks Add by @ElliotFriedman in #646
  • test: remove testFail* tests by @zerosnacks in #643

Other changes

New Contributors

Full Changelog: v1.9.5...v1.9.6

v1.9.5

19 Dec 16:21
b93cf4b

Choose a tag to compare

Featured Changes

Other changes

New Contributors

Full Changelog: v1.9.4...v1.9.5

v1.9.4

24 Oct 22:24
1eea5ba

Choose a tag to compare

Featured Changes

Other changes

  • Add --from option to vm.py, to generate Vm.sol from json file by @Tudmotu in #619
  • chore: add contribution guide and document scripts/vm.py by @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

Full Changelog: v1.9.3...v1.9.4