During deployment, the USDC token address is written in two places in the code instead of using a defined variable. These two addresses are different, which will cause the contract to malfunction.
On line 8 of the Deploy.s.sol
, the variable s_zkSyncUSDC
is defined as the address 0x1D17CbCf0D6d143135be902365d2e5E2a16538d4
, which is not a USDC address on the zkSync era network. This address will be used for airdop transfer. On the other hand, on line 18, USDC tokens are transferred to the airdrop contract
using the following command:
The address used above is a valid USDC address on the zkSync Era network. There is therefore a mismatch between the token that the airdrop contract
holds and the tokens it is trying to give to users.
Due to the token address mismatch described above, no airdop will be passed to users.
Reading the code:-)
Always use variables in your code and use a valid USDC address. The following changes will fix the bug.
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.