In ScrvusdVerifierV1.sol file
PARAM_SLOTS is defined with incorrect slot lookup.
In ScrvusdVerifierV1.sol file
In uint256(keccak256(abi.encode(18, SCRVUSD)))
Solidity computes the storage slot of balanceOf[address] as:
keccak256(abi.encode(address, slot_index))
But in the contract, used keccak256(abi.encode(slot_index, address))
The extracted value for balanceOf(SCRVUSD) is incorrect.
This incorrect value is passed to the IScrvusdOracle.update_price() function, leading to:
Incorrect price calculations.
Potential manipulation of the scrvUSD price.
Manual
Need to modify as following.
uint256(keccak256(abi.encode(SCRVUSD, 18)))
- Per sponsor comments, verified slot is vyper, solidity contract only verifies it. - Vyper computes storage slots different from solidity as seen [here](https://ethereum.stackexchange.com/questions/149311/storage-collision-in-vyper-hashmap)
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.