Deploy script does not check if deployer has enough Ether to cover transaction fee for deploying airdrop contract and transferring USDC to it.
Caller first deploys airdrop contract and then transfers USDC to address of airdrop contract.
If caller does not have enough Ether to deploy contract, script will fail.
Another issue is if caller have enough Ether to deploy contract but not enough to transfer USDC to it, which leaves airdrop contract deployed with zero USDC.
2 possible scenarios:
Script fails because caller does not have enough Ether to deploy contract.
Script will deploy contract, but caller does not have enough Ether to transfer USDC to airdrop contract. Airdrop contract will have zero USDC so it means it is not initialized correctly and it will be unusable for users.
Manual review
Check what is deployment cost for aidrop contract, and what is cost of calling transfer
function on USDC token using this command:
Then check what is gas price on zkSync Era using this command:
Each of cost from first step multiply by gas price and add those two costs together. This will be estimated gas cost for running script correctly, there is possibility it fee could be little bit lower or higher than estimated amount.
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.