Added
- UUPS Proxy:
UUPSUpgradeablecontract andIErc1822Proxiabletrait for user-controlled upgradeable proxies. - Beacon Proxy:
BeaconProxycontract andIBeaconinterface, supporting the beacon proxy pattern for upgradeable contracts. - Upgradeable Beacon:
UpgradeableBeaconcontract, allowing upgradeable beacon-based proxies with owner-controlled implementation upgrades. - Enumerable Sets: Generic
EnumerableSettype with implementations forAddress,B256,U8,U16,U32,U64,U128,U256. - Token Receivers:
IErc1155ReceiverandIErc721Receivertraits with correspondingErc1155HolderandErc721Holdercontracts. - Access Control Extensions:
AccessControlEnumerableextension that supports role member enumeration. - Enhanced SafeERC20: Additional methods including
try_safe_transfer,try_safe_transfer_from, and relaxed call variants. - Cryptography: EDDSA (Ed25519) signature scheme, Twisted-Edwards Curves, and enhanced elliptic curve configurations (secp256k1, Baby Jubjub, Bandersnatch, Curve25519, Jubjub).
- Precompiles: Enhanced
Precompilestrait withp256_verifywrapper function for ergonomic precompile invocation. - Type Conversions: Bidirectional conversions between
ruint::Uintand crypto libraryUinttypes, plus conversions betweenUintand primitive integer types.
Changed
- Type Aliases: Standardized
FixedBytes<4>toB32,FixedBytes<32>toB256, andStorageFixedBytes<32>toStorageB256. - API Simplifications: Simplified Pedersen hash API to accept any type implementing
Into<P::BaseField>. - Interface Compliance: Removed redundant interface ID checks in
Erc1155Supply.
Changed (Breaking)
- Interface Naming: Renamed Solidity interfaces for consistency (
IERC721Receiver→IErc721ReceiverInterface,IERC1155Receiver→IErc1155ReceiverInterface). - Trait Bounds: Added
IErc721Receivertrait bound toIErc721Wrappertrait. - Error Handling: Replaced associated error types with raw byte output (
Vec<u8>) in receiver traits for ABI compliance. - Deref Removal: Removed
Derefimplementations for extension contracts to improve API clarity. - API Simplifications: Prefix
ct_removed for constant functions atopenzeppelin-crypto.
Full Changelog: v0.2.0...v0.3.0.