There is an inconsistency in the token address used for the USDC token on the zkSync network in the Deploy.s.sol scipt. The s_zkSyncUSDC state variable is declared with one address, but a different address is hardcoded in the Deploy::run function when transferring USDC to the MerkleAirdrop contract.
In the Deploy script the s_zkSyncUSDC address is declared as 0x1D17CbCf0D6d143135be902365d2e5E2a16538d4.
But within the Deploy::run function, there is a hardcoded address 0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4 that is used in the transfer call. The problem is that the s_zkSyncUSDC address is not the same as the hardcoded address:
The airdrop address will be not able to receive the required amount of USDC due to the wrong hardcoded address used in the Deploy::run function. This leads to unsuccessful deploy of the protocol and inability of the protocol to function properly.
Manual Review
Replace the hardcoded address in the Deploy::run function with the s_zkSyncUSDC variable to ensure the intended address is used for the transfer of the required USDC amount to the airdrop address:
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.