This release marks some important changes that happened as a result of the Hats Finance audit competition that happened from June 21st - July 5th.
These changes include:
- Standardization of fee names to singular across the repository (
protocolFee
,entryFee
,exitFee
) - Refactored event variable names and improved NatSpec for all events: Variable names are now more descriptive and explicit with their naming, we make a clear distinction between the
receiver
andsender
, and we also do not use the termsuser
andowner
in this context anymore to avoid any possible confusion (all changes are outlined in detail here) - Improved both Gitbook and NatSpec documentation related to our core contracts based on the feedback from Hats issues
- Added 2-step ownership transfer process for
AtomWallet
usingOwnable2StepUpgradeable
contract from OpenZeppelin as a base - Added an approval process to allow receivers to approve other addresses to be able to deposit on atom and triples on their behalf
- Improved time validation and custom error handling in
_validateSignature
inAtomWallet
- Improved our
CustomMulticall3
contract, and added its deployment to our deploy scripts - Added new events for important parameter changes to improve transparency and third party integrations:
OperationScheduled
,OperationCancelled
,AdminSet
,ProtocolMultisigSet
,MinDepositSet
,MinShareSet
,AtomUriMaxLengthSet
,AtomWalletInitialDepositAmountSet
,AtomCreationProtocolFeeSet
,TripleCreationProtocolFeeSet
,AtomDepositFractionOnTripleCreationSet
,AtomDepositFractionForTripleSet
,EntryFeeSet
,ExitFeeSet
,ProtocolFeeSet
andAtomWardenSet
- Added important configuration items (Cancun EVM version support, dependency versions are upgraded, etc.)
- Improved checks in
deployAtomWallet
, which it is now returning the deployed atom wallet address if trying to deploy it again, for better ERC-4337 compatibility - Miscellaneous improvements: Storage gaps, explicit
maxRedeem
checks, addedmaxDeposit
function for better ERC-4626 compatibility, minor gas optimizations, etc.
This release is the last one before the V1 protocol release and the official deployment on Base.