Skip to content

v0.3.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@bidzyyys bidzyyys released this 07 Aug 11:35
· 52 commits to main since this release
231d4f1

Summary

Added

  • Add UUPS Proxy: UUPSUpgradeable contract and IErc1822Proxiable trait. #752
  • Add EnumerableSet generic type. #733
  • Add EnumerableSet implementation for: Address, B256, U8, U16, U32, U64, U128, U256. #733
  • Add IErc1155Receiver trait. #747
  • Add Erc1155Holder contract. #747
  • Add IErc721Receiver trait. #743
  • Add Erc721Holder contract. #743
  • Add Precompiles::p256_verify wrapper function. #754
  • The Precompiles::ec_recover is now callable on &self. #754
  • The ecdsa::recover function now accepts impl StaticCallContext instead of &mut impl TopLevelStorage. #754
  • SafeErc20 now implements: try_safe_transfer, try_safe_transfer_from, transfer_and_call_relaxed, transfer_from_and_call_relaxed and approve_and_call_relaxed. #765
  • Add bidirectional conversions between ruint::Uint and crypto library Uint types behind ruint feature toggle. #758
  • Add bidirectional conversions between Uint and u8, u16, u32, u64, u128 types. #764
  • Add EDDSA (Ed25519) signature scheme. #757

Changed (Breaking)

  • Remove initial EnumerableAddressSet implementation. #733
  • Rename IERC721Receiver Solidity Interface to IErc721ReceiverInterface. #743
  • Change RECEIVER_FN_SELECTOR type to FixedBytes<4>. #743
  • Rename IERC1155Receiver Solidity Interface to IErc1155ReceiverInterface. #747
  • Change Erc1155Receiver constants SINGLE_TRANSFER_FN_SELECTOR and BATCH_TRANSFER_FN_SELECTOR to type B32. #747
  • Change Erc721Receiver constant RECEIVER_FN_SELECTOR to type B32. #747
  • Rename Precompiles::ecrecover wrapper function to Precompiles::ec_recover. #754
  • Replace associated error type with Vec<u8> in IErc1155Receiver and IErc721Receiver traits. #770
  • Add IErc721Receiver trait bound to the IErc721Wrapper trait. #770

Changed

  • Rename FixedBytes<4> to B32 and FixedBytes<32> to B256 and StorageFixedBytes<32> to StorageB256. #747
  • Replace SafeErc20::encodes_true with Bool::abi_decode in SafeErc20 when decoding the bytes result. #754
  • Simplify Pedersen hash API to accept any type that implements Into<P::BaseField>. #758

Fixed

  • Fix export-abi bug for reentrant feature. #753

Full Changes List

  • feat: add Erc721Holder contract by @bidzyyys in #743.
  • feat: add Erc1155Holder contract + use type aliases for FixedBytes<N> by @bidzyyys in #747.
  • fix: export-abi bug for reentrant feature by @bidzyyys in #753.
  • ref: Replace SafeErc20::encodes_true with Bool::abi_decode in SafeErc20 when decoding the bytes result by @0xNeshi in #754.
  • feat: secp256r1 precompile wrapper by @0xNeshi in #755.
  • feat: EnumerableSet Trait and Implementations by @davebryson & @qalisander in #733.
  • feat: implement conversions ruint::Uint <-> openzeppelin_crypto::Uint by @bidzyyys & @qalisander in #758.
  • feat: UUPS Proxy by @bidzyyys in #752.
  • feat: update SafeErc20 to match the new Solidity version of the Contract by @0xNeshi in #765.
  • feat: add Erc1155Holder & Erc721Holder examples by @bidzyyys in #770.
  • feat: conversion between Uint and primitive integers by @qalisander in #764.
  • feat: Ed25519 signature (EDDSA) by @qalisander in #757.

Full Changelog: v0.3.0-alpha.1...v0.3.0-rc.1