code-423n4 / 2021-10-tracer-findings

0 stars 0 forks source link

Minimize Storage Slots (LeveragedPool.sol) #3

Open code423n4 opened 3 years ago

code423n4 commented 3 years ago

Handle

ye0lde

Vulnerability details

Impact

It is possible to minimize the number of storage slots used by rearranging the state variables in a more efficient way.

Proof of Concept

In LeveragedPool.sol: https://github.com/tracer-protocol/perpetual-pools-contracts/blob/646360b0549962352fe0c3f5b214ff8b5f73ba51/contracts/implementation/LeveragedPool.sol#L22-L44

Tools Used

Visual Studio Code

Recommended Mitigation Steps

Arrange the uint32, bytes32, and bool variables such that they fit into the same slot.

GalloDaSballo commented 3 years ago

Would prefer a more direct advice from the warden

That said, bool occupies just 1 bit, the move would be to "pack" all of those variables together (before tokens) to ensure packing saves the extra storage slot