Description: makeMerkle.js
is not in scope for the audit, but it's how we are generating the s_merkleRoot
in our Deploy.s.sol and Deploy.s.sol
is in the scope. Inputs in makeMerkle.js
are not correct because usdc has 6 decimals not 18.
Proof of Concept:
Due to misconfiguration in makeMerkle.js
file , the MerkleAirdrop:claim
function will revert as for casting leaf
we provide amount equal to 25 * 1e6 but in makeMerkle.js
it is 25 * 1e18.
And merkleProof, i_merkleRoot
we made to expect amount to be 25 * 1e18
.
Proof of Code:
The user will not be able to claim his airdrop and deposited 100 usdc will be stuck in contract
forever.
Manual review.
I propose to refactor const amount = (25 * 1e18).toString()
to const amount = (25 * 1e6).toString()
in makeMerkle.js
.
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.