- Allow executing a file when passed as a CLI argument
- Fix
address.balancenot working withblockoption
- Add
tx.from,tx.to, andtx.inputproperties to access transaction details
- Upgrade to alloy 1.1.0
- Upgrade to Foundry 1.4.4
- Add
vm.getEnvto get environment variables - Add
abi.getSignatureto get the signature of a function or error by its selector - Add support for mapping to contract types
- Fix
bytestoaddresscasting - Fix Etherscan API V2 support
- Fix conversion from
bytesNtobytes - Fix
traceCallnot working withblockoption
- Refactor account management functions:
- Move all account management functions to
accountsnamespace:- Rename
repl.currenttoaccounts.current
- Rename
- Allow to select already loaded accounts without loading them again
- Add more management functions to
accountsnamespace:accounts.loadedto list all loaded accountsaccounts.selectto select a loaded accountaccounts.listKeystoresto list all keystores in~/.foundry/keystore/accounts.aliasto set an alias for an account
- Move all account management functions to
- Add
abi.decodeMultisendto decode Safe multisend transactions - Integrate 4byte.directory API to find function signatures by selector when decoding calldata
- Fix fixed bytes parsing/casting
- Add 0x prefix to JSON serialized bytes
- Rename
repl.loadAbitoabi.loadandrepl.fetchAbitoabi.fetch - Rename
repl.connectedtovm.connected - Rename
POLYGON_API_KEYtoPOLYGONSCAN_API_KEYandPOLYGON_ZKEVM_API_KEYtoPOLYGONSCAN_ZKEVM_API_KEY - Add support for Etherscan API V2
- Add
repl.forkto start run and use an Anvil instance as a fork of the current URL - Add
repl.startPrank/repl.stopPrankto start/stop impersonating an address - Add
FUNC.traceCallmethod to contract functions - Add
abi.decodeDatato decode function calldata and errors from any known ABI - Add
address.transferto send ETH to an address - Add
json.stringifyto convert a value to a JSON string - Add
fs.writeto write a string to a file - Add
vm.skipandvm.mineto skip time and mine blocks
- Encode
FixedBytesas with zero padding on the left instead of the right - Allow to load a private key from
bytes32 - Move
repl.block,repl.startPrank,repl.stopPrank,repl.rpc,repl.fork, andrepl.dealtovmnamespace
- Decode logs returned by
Transaction.getReceipt()when available in ABI - Add support for array concatenation
- Add
array.filterfunction - Add
array.reducefunction - Add support for bitwise operators
- [EXPERIMENTAL] Add support for anonymous functions
- [EXPERIMENTAL] Add support for fetching events
- Add support for negative indices in arrays and slices
- Fix
abi.decodefor nested types - Fix completion not triggering right after
[
- Drop
Receipttype and useNamedTupleinstead
- Add
repl.block() - Allow to customize more variables through call options:
block- block number to use for the callfrom- address to use asmsg.sendergasLimit- gas limit to use for the transactionmaxFee- maximum fee to pay for the transactionpriorityFee- priority fee to pay for the transactiongasPrice- gas price to use for the (legacy) transaction
- Allow to select version of Eclair when installing using install script
- Add
repl.loadKeystoreto load keystore from a file created bycast - Allow conversion between different fixed-size bytes types (e.g. bytes32 -> bytes4 or vice-versa)
- Allow slicing on bytes and strings
- Fix parsing of fix bytes with less than 32 bytes (e.g. bytes4)
- Fix display of functions that don't check argument types
- Add support for bytes<->uint256 conversion
- Fix bug with
abi.encodeandabi.decodethat caused the functions to fail/return incorrect values