As stated in the documentation, the tree-proxy pattern is meant to be ERC7201 compatible. However, when assigning storage keys for domains in the CustomReferralConfiguration, Referral, Points, and ReferralTestnet contracts, the defined key doesn't follow the ERC7201 formula.
Example formula for EIP-7201:
keccak256(abi.encode(uint256(keccak256("example.main")) - 1)) & ~bytes32(uint256(0xff));
The formula used by the four mentioned contracts:
Though it may not cause immediate problems, since the two important characteristics of the ERC7201 formula are not used (keccak256(id) - 1) to ensure the location is not used by Solidity and performing AND NOT with ~0xff ensures that the storage slot's rightmost byte is 00, it may cause storage collision in later updates.
Manual Review
Use the proposed formula by EIP-7201. For example:
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.