The _mint function does not emit the required Transfer event when tokens are minted. According to the ERC20 standard, any token minting must emit a Transfer event with from set to the zero address and to set to the recipient address. Without this event, external observers cannot track token minting, breaking interoperability with wallets, block explorers, and other smart contracts.
The function uses Yul assembly for gas optimization but omits the emission of the Transfer event after updating the token balances and total supply.
Likelihood:
Every mint operation fails to emit the required event, affecting all mints.
The absence of events is immediately apparent to any external observer or tool that relies on events.
Impact:
Broken ERC20 Compliance: The token does not fully comply with the ERC20 standard, which may cause integration issues with exchanges, wallets, and other DeFi protocols.
Lack of Transparency: External parties cannot track minting activities, leading to a loss of transparency and auditability.
Interoperability Issues: Smart contracts that rely on Transfer events to react to token minting (e.g., staking contracts, token trackers) will not function correctly.
Emit a Transfer event with from set to address(0) and to set to the recipient after updating balances:
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.
The contest is complete and the rewards are being distributed.