KittyBridge::bridgeNftWithData
should approve the router
to transfer LINK
tokens on contract's behalf, but this approval is missing. Consequently, the
In the second step of the bridging process, KittyBridge::bridgeNftWithData
is supposed to use Chainlink's Cross-Chain Interoperability Protocol (CCIP) to send the encoded NFT data to the destination chain. Sending a cross-chain message via CCIP incurs an execution fee for the message, which is properly calculated here
and there is even a conditional to check that the KittyBridge
contract does have enough balance to cover said fees:
Before actually sending the message via
In order to pay the fees, KittyBridge
is supposed to approve the router
to transfer LINK
tokens on behalf of KittyBridge
. However, this approval is missing.
The router
will not be able to collect the execution fee from KittyBridge
, and the bridging process will revert with "ERC20: insufficient allowance"
.
Manual review, Foundry.
Approve the router
to transfer LINK
tokens on behalf of KittyBridge
as follows:
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.