Skip to content

v0.3.0

Latest

Choose a tag to compare

@qalisander qalisander released this 10 Sep 12:59
· 20 commits to main since this release
47ad800

Added

  • UUPS Proxy: UUPSUpgradeable contract and IErc1822Proxiable trait for user-controlled upgradeable proxies.
  • Beacon Proxy: BeaconProxy contract and IBeacon interface, supporting the beacon proxy pattern for upgradeable contracts.
  • Upgradeable Beacon: UpgradeableBeacon contract, allowing upgradeable beacon-based proxies with owner-controlled implementation upgrades.
  • Enumerable Sets: Generic EnumerableSet type with implementations for Address, B256, U8, U16, U32, U64, U128, U256.
  • Token Receivers: IErc1155Receiver and IErc721Receiver traits with corresponding Erc1155Holder and Erc721Holder contracts.
  • Access Control Extensions: AccessControlEnumerable extension 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 Precompiles trait with p256_verify wrapper function for ergonomic precompile invocation.
  • Type Conversions: Bidirectional conversions between ruint::Uint and crypto library Uint types, plus conversions between Uint and primitive integer types.

Changed

  • Type Aliases: Standardized FixedBytes<4> to B32, FixedBytes<32> to B256, and StorageFixedBytes<32> to StorageB256.
  • 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 (IERC721ReceiverIErc721ReceiverInterface, IERC1155ReceiverIErc1155ReceiverInterface).
  • Trait Bounds: Added IErc721Receiver trait bound to IErc721Wrapper trait.
  • Error Handling: Replaced associated error types with raw byte output (Vec<u8>) in receiver traits for ABI compliance.
  • Deref Removal: Removed Deref implementations for extension contracts to improve API clarity.
  • API Simplifications: Prefix ct_ removed for constant functions at openzeppelin-crypto.

Full Changelog: v0.2.0...v0.3.0.