Skip to content

v0.2.0

Latest
Compare
Choose a tag to compare
@bidzyyys bidzyyys released this 20 Jun 12:08
· 29 commits to main since this release
aa6f290

Added

  • ERC-1155 token (Erc1155, Burnable, MetadataUri, Supply, UriStorage).
  • ERC-4626 “Tokenized Vault Standard” and ERC-20 Flash Mint extension.
  • ERC-2981 on-chain royalties.
  • ERC-20 Utils: SafeErc20.
  • Finance: VestingWallet.
  • Ownership: Ownable2Step.
  • Token wrappers: Erc20Wrapper, Erc721Wrapper.
  • Cryptography: Poseidon2 hash, Pedersen hash (Starknet params), Short-Weierstrass Curves.
  • Math & utils: optimised Uint<_> big-integer ops (mul_div, shift-left/right, checked/unchecked add/sub).
  • Constructors now supported across all contracts.
  • All events derive Debug; contracts implement MethodError and IErc165.

Changed

  • Keccak constants pre-computed at compile-time.
  • Optimisations across contracts and crypto libraries.

Changed (Breaking)

  • Stylus SDK ↑ to v0.9.0 (cargo-stylus ↑ to v0.6.0)
  • Contracts refactored to new inheritance model.
  • Interface IDs now returned by fn interface_id(); IErc165::supports_interface takes &self; Erc165 struct removed.
  • Public state fields made private.
  • Feature std removed from libraries.

Fixed

  • Correct ERC-165 IDs for IErc721Metadata, IErc721Enumerable, etc.
  • #[interface_id] macro now propagates super-traits correctly.
  • Edge-cases in Merkle proofs, big-int overflows and re-entrancy bugs resolved.

Full Changelog: v0.1.2...v0.2.0.