KittyBridge::bridgeNftWithData does not approve router for spending LINK tokens on behalf of the KittyBridge contract before calling ccip::Router::ccipSend. This results in KittyBridge::bridgeNftWithData always reverting.
ccip::Router::ccipSend internally calls SafeERC20::safeTransferFrom when the fee token used to pay for the transaction fee is LINK. Therefore, the caller of this function (KittyBridge) needs to approve the ccip::Router contract for spending LINK tokens before calling ccip::Router::ccipSend. Failing to do so will result in the transaction being reverted due to a lack of allowance.
Calls to the KittyBridge::bridgeNftWithData function will always revert, preventing any user from bridging their NFT.
Manual review.
Approve the ccip::Router for spending tokens on behalf of the KittyBridge before calling ccip::Router::ccipSend.
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.