All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Erc721Wrapper
extension to support token wrapping. #461- Add callable interface for ERC-721. #461
- Add missing functions to callable ERC-20 interface. #461
- All events now derive
Debug
. #614 Erc20Wrapper
extension to support token wrapping. #498Erc20
events deriveDebug
. #498- Implement
MethodError
for all contracts' errors. #594 - Implement
IErc165
for all base contracts for standard interface detection. #603 - Expose
INTERFACE_ID
forErc20Wrapper
,Erc4626
andErc20FlashMint
. #603 - Short Weierstrass elliptic curves primitives. #589
- Optimize Stylus SDK imports. #598
- Moved
Erc20
callable interface to /erc20/interface.rs module and renamed it toErc20Interface
. #461 - Bump
cargo-stylus
tov0.5.11
. #617 - Bump Stylus SDK to
v0.8.4
. #624 - Remove
ownable_two_step::Error
wrapper inOwnable2Step
, and emitownable::Error
directly. #594 - Poseidon babybear and goldilocks (64-bit) instances now have 256-bit security (capacity 4). #613
BitIteratorBE
(bit iteration) trait atopenzeppelin_crypto
now acceptsself
by value. #589
IErc20Metadata::INTERFACE_ID
now has the correct value.
Erc2981
contract. #508- Implement
Deref<Target = Erc1155>
forErc1155Supply
andDeref<Target = Erc721>
forErc721Consecutive
. #569 - Implement
Deref<Target = Ownable>
forOwnable2Step
. #552
- Refactor
Erc20Permit
extension to be a composition ofErc20
andNonces
contracts. #574 - Replace
VestingWallet::receive_ether
with dedicatedreceive
function. #529 - Extract
IAccessControl
trait fromAccessControl
contract. #527 - Bump Stylus SDK to
v0.8.1
#587
IErc165
implementations forErc721Metadata
andErc721Enumerable
now support ERC-165 interface ID. #570- Handle missing leaves for non-trivial merkle trees. #578
- Optimised implementation of bigintegers
Uint<_>
for finite fields. #495 Erc4626
"Tokenized Vault Standard". #465- Implement
mul_div
forU256
. #465 - Implement
AddAssignChecked
forStorageUint
. #474 Erc20FlashMint
extension. #407
- Keccak constants
PERMIT_TYPEHASH
inErc20Permit
, andTYPE_HASH
inErc712
are now statically computed. #478 - Use
AddAssignChecked
inVestingWallet
,Erc1155Supply
,Erc1155
,Erc20
,Nonces
. #474 - Use
AddAssignUnchecked
andSubAssignUnchecked
inerc20::_update
. #467
- All contract state fields are no longer public. #500
Erc721Consecutive::_mint_consecutive
turned into an internal function. #500- Bump
cargo-stylus
tov0.5.8
. #493 - Constants
TYPE_HASH
,FIELDS
,SALT
andTYPED_DATA_PREFIX
, and typeDomainSeparatorTuple
are no longer exported fromutils::cryptography::eip712
. #478 - Bump Stylus SDK to v0.7.0. #433
- Bump
alloy
dependencies to v0.8.14. #433 - Add full support for reentrancy (changed
VestingWallet
signature for some functions). #407 Nonce::use_nonce
panics on exceedingU256::MAX
. #467
Erc1155Supply
extension. #418Erc1155Pausable
extension. #432Erc1155UriStorage
extension. #431VestingWallet
contract. #402Erc1155Burnable
extension. #417Erc1155MetadataUri
extension. #416Poseidon2
sponge hash function. #388
- Update "magic values" to explicit calculations in
Erc721Metadata::supports_interface
, andErc721::_check_on_erc721_received
. #442 - Implement
AddAssignUnchecked
andSubAssignUnchecked
forStorageUint
. #418 - Implement
MethodError
forsafe_erc20::Error
. #402 - Use
function_selector!
to calculate transfer type selector inErc1155
. #417
- Update internal functions of
Erc721
andErc721Consecutive
to accept a reference toBytes
. #437
- ERC-1155 Multi Token Standard. #275
SafeErc20
Utility. #289- Finite Fields arithmetic. #376
Ownable2Step
contract. #352IOwnable
trait. #352
- Removed
only_owner
from the public interface ofOwnable
. #352
- Mini alloc is now used by default via the stylus-sdk. This avoids conflicts with duplicate
#[global_allocator]
definitions. #373 - Removed the panic handler from the library, making it easier for
std
andno_std
projects to use the library. #373
- Initial release