The BriVault contract overrides the deposit function from ERC4626 to incorporate custom logic for tournament participation fees and staked asset tracking, minting shares based on net assets after fee deduction and emitting events to log the transaction.
However, instead of emitting the standard ERC4626::Deposit event with required parameters (address indexed sender, address indexed owner, uint256 assets, uint256 shares), the implementation emits a custom deposited event with non-standard parameters (address receiver, uint256 stakeAsset), violating ERC4626 compliance and potentially breaking integrations that rely on standardized event logs for indexing and UI updates.
Likelihood:
Frontends and indexers parse transaction logs expecting the standard Deposit event during any deposit call.
Integrations with wallets or analytics tools assume ERC4626 event signatures without reviewing custom overrides.
Impact:
User interfaces fail to display deposit confirmations or balances correctly, leading to poor UX and user confusion.
Protocol composability breaks, as dependent contracts or services cannot reliably track deposits, causing indexing errors or silent failures.
Add the following code snippet to the briVault.t.sol test file.
This test verifies that the BriVault::deposit function emits a custom event instead of the standard Deposit.
Use standard event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares).
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.