TimelockController
: Migrate_call
to_execute
and allow inheritance and overriding similar toGovernor
. (#3317)CrossChainEnabledPolygonChild
: replace therequire
statement with the custom errorNotCrossChainCall
. (#3380)ERC20FlashMint
: Add customizable flash fee receiver. (#3327)ERC4626
: add an extension ofERC20
that implements the ERC4626 Tokenized Vault Standard. (#3171)SafeERC20
: addsafePermit
as mitigation against phantom permit functions. (#3280)Math
: add amulDiv
function that can round the result either up or down. (#3171)Math
: Add asqrt
function to compute square roots of integers, rounding either up or down. (#3242)Strings
: add a new overloaded functiontoHexString
that converts anaddress
with fixed length of 20 bytes to its not checksummed ASCIIstring
hexadecimal representation. (#3403)EnumerableMap
: add newUintToUintMap
map type. (#3338)EnumerableMap
: add newBytes32ToUintMap
map type. (#3416)SafeCast
: add support for many more types, using procedural code generation. (#3245)MerkleProof
: addmultiProofVerify
to prove multiple values are part of a Merkle tree. (#3276)MerkleProof
: add calldata versions of the functions to avoid copying input arrays to memory and save gas. (#3200)ERC721
,ERC1155
: simplified revert reasons. (#3254, (#3438))ERC721
: removed redundant require statement. (#3434)PaymentSplitter
: addreleasable
getters. (#3350)Initializable
: refactored implementation of modifiers for easier understanding. (#3450)Proxies
: remove runtime check of ERC1967 storage slots. (#3455)
Breaking changes
Initializable
: functions decorated with the modifierreinitializer(1)
may no longer invoke each other.