Lines of code
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/DebtToken.sol#L11>
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/Disputes.sol#L17>
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/HomeFi.sol#L27>
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/HomeFiProxy.sol#L14>
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/Project.sol#L24>
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/ProjectFactory.sol#L16>
Safe usage of upgradable contract should include a storage gap to allow the addition of new state. OpenZeppelin docs
The following contracts on the project are using upgradable contracts from OpenZeppelin.
File: contracts/Community.sol
contract Community is
ICommunity,
PausableUpgradeable,
ReentrancyGuardUpgradeable,
ERC2771ContextUpgradeable
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/Community.sol#L21>
File: contracts/DebtToken.sol
contract DebtToken is IDebtToken, ERC20Upgradeable {
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/DebtToken.sol#L11>
File: contracts/Disputes.sol
contract Disputes is
IDisputes,
ReentrancyGuardUpgradeable,
ERC2771ContextUpgradeable
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/Disputes.sol#L17>
File: contracts/HomeFi.sol
contract HomeFi is
IHomeFi,
ReentrancyGuardUpgradeable,
ERC721URIStorageUpgradeable,
ERC2771ContextUpgradeable
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/HomeFi.sol#L27>
File: contracts/HomeFiProxy.sol
contract HomeFiProxy is OwnableUpgradeable {
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/HomeFiProxy.sol#L14>
File: contracts/Project.sol
contract Project is
IProject,
ReentrancyGuardUpgradeable,
ERC2771ContextUpgradeable
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/Project.sol#L24>
File: contracts/ProjectFactory.sol
contract ProjectFactory is
IProjectFactory,
Initializable,
ERC2771ContextUpgradeable
<https://github.com/code-423n4/2022-08-rigor/blob/main/contracts/ProjectFactory.sol#L16>
For the contracts where inheritance is used by an upgradeable contract, consider adding an appropriate storage gap at the end of the contracts, according to OpenZeppelin recommendation, to avoid compromising the storage compatibility with existing deployments.
uint256[50] private __gap;
The text was updated successfully, but these errors were encountered:
š 1 horsefacts reacted with eyes emoji
All reactions