When a user opts into registering a Chainlink Keeper during NFT minting, the contract attempts to pull LINK from the user's wallet using _initLinkDeposit
via safeTransferFrom
. However, there are no checks to ensure that:
_initLinkDeposit
is greater than zero
The user has approved enough LINK beforehand
As a result, the contract could either silently accept a 0 LINK transfer or revert due to missing approval, with no explanation or fallback. This may cause the user’s Keeper setup to silently fail or the entire transaction to revert unexpectedly.
Likelihood:
This occurs when users enable _registerKeeper
and mistakenly enter 0
or forget to call approve()
for LINK beforehand.
There is no built-in feedback or validation to prevent this, so confusion and misuse are likely during real-world interactions or frontend integration.
Impact:
Failed Keeper setup leads to weather NFTs not updating automatically.
Users may wrongly believe their NFT is registered with automation, but it's not — causing loss of expected service despite paying ETH.
This is informational/invalid. If the LINK deposit is not enough, the function `registerUpkeep` will revert and it is responsibility of the user to provide the correct amount of `_initLinkDeposit`, if the user wants automated weather updates.
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.