DeFiHardhatFoundry
250,000 USDC
View results
Submission Details
Severity: low
Invalid

Incorrect interface ICappedReservesPump

Summary

Function ICappedReservesPump.readCappedReserves() has incorrect signature: it contains extra param bytes.

Here's how capped reserves are called in codebase:

function cappedReservesDeltaB(address well) internal view returns (int256) {
...
// well address , data[]
@> uint256[] memory instReserves = ICappedReservesPump(pump).readCappedReserves(
well,
pumps[0].data
);
...
}

Here is code from Well:
https://github.com/BeanstalkFarms/Basin/blob/master/src/pumps/MultiFlowPump.sol#L186

And here you can find deployed MultiFlowPump with the same function:
https://docs.basin.exchange/resources/contracts

Impact

As you can see function LibDeltaB.cappedReservesDeltaB() reverts due to incorrect function signature. There is following chain of calls:

PipelineConvertFacet.pipelineConvert():
LibPipelineConvert.executePipelineConvert():
LibDeltaB.overallCappedDeltaB():
LibDeltaB.cappedReservesDeltaB()

As a result, pipelineConvert() doesn't work. It means Generalized Convert, one of the main upgrades, completely doesn't work.

Medium impact: protocol functionality doesn't work.
High likelihood: it doesn't work always.

Tools Used

Manual Review

Recommendations

Remove bytes param from function:

uint256[] memory instReserves = ICappedReservesPump(pump).readCappedReserves(
well,
- pumps[0].data
);
Updates

Lead Judging Commences

inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement
Assigned finding tags:

Function `ICappedReservesPump.readCappedReserves()` has incorrect signature: it contains extra param `bytes`

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.