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 implementMethodError
andIErc165
.
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.