Instances(8)
FILE: 2023-09-ditto/contracts/facets/BridgeRouterFacet.sol
constructor(address _rethBridge, address _stethBridge) {
rethBridge = _rethBridge;
stethBridge = _stethBridge;
}
BridgeRouterFacet.sol#L28-#L29
FILE: 2023-09-ditto/contracts/facets/ExitShortFacet.sol
constructor(address _cusd) {
cusd = _cusd;
}
ExitShortFacet.sol#L30
FILE: 2023-09-ditto/contracts/facets/MarginCallPrimaryFacet.sol
constructor(address _cusd) {
cusd = _cusd;
}
MarginCallPrimaryFacet.sol#L30
FILE: 2023-09-ditto/contracts/facets/ShortRecordFacet.sol
constructor(address _cusd) {
cusd = _cusd;
}
ShortRecordFacet.sol#L26
FILE: 2023-09-ditto/contracts/factes/VaultFacet.sol
constructor(address _zeth) {
carbonZeth = _zeth;
}
VaultFacet.sol#L27
FILE: 2023-09-ditto/contracts/facets/YieldFacet.sol
constructor(address _ditto) {
DITTO = IAsset(_ditto);
}
YieldFacet.sol#L31
FILE: 2023-09-ditto/contracts/tokens/Asset.sol
constructor(address diamondAddr, string memory name, string memory symbol)
ERC20(name, symbol)
{
diamond = diamondAddr;
}
Asset.sol#L14
FILE: 2023-09-ditto/contracts/tokens/Ditto.sol
constructor(address diamondAddr) ERC20("Ditto", "DITTO") ERC20Permit("Ditto") {
diamond = diamondAddr;
}
Ditto.sol#L16
This poses a single point of failure risk for Ditto keeping in mind every of these state variables are set once and cannot be re-set. Consider adding proper validation/checks for these critical changes. Worst case scenario of these issues would render the contracts to be redeployed in the event of accidental errors to these immutable variable assignments.
Impact
Costly redeploy of contracts.
Tools Used
Manual review/ VsCode
Recommendations
Consider adding proper validation/checks for these critical state variable assignments