Based on Chainlink docs, the data returned from checkUpkeep is passed into performUpkeep as a parameter.
However, in PriorityPool contract, checkUpkeep returns abi-encoded uint256 data type, but in performUpkeep, it tries to parse the input as bytes[], which will not work.
Here's a code snippet of checkUpkeep and performUpkeep functions of PriorityPool contract:
checkUpkeep function returns deposit amount as return value by encoding it into bytes.
And then, the data is passed to performUpkeep, which is decoded into bytes[].
Because of type mismatch, the decoding will fail.
Failure of queued deposits in PriorityPool contract.
Manual Review
The type used for encode/decode should match.
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.