Open code423n4 opened 2 years ago
nibble factory
Custom error from solidity 0.8.4 are cheaper than revert strings, custom error are defined using the error statement can use inside and outside the contract.
error
source https://blog.soliditylang.org/2021/04/21/custom-errors/
i suggest replacing revert error strings with custom error
POC : https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L62 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L69 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L79 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L86 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L48 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L49 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L107 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L131 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L141 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L149 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L166 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L129 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L139 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L146 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L147 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L154 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L184 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L185 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L325 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L351 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L387 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L399 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L400 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L404 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L444 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L475 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L486 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L496 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L505 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L516 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L524 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L536 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L546 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L561 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L564 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L570
nibble factory
Custom error from solidity 0.8.4 are cheaper than revert strings, custom error are defined using the
error
statement can use inside and outside the contract.source https://blog.soliditylang.org/2021/04/21/custom-errors/
i suggest replacing revert error strings with custom error
POC : https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L62 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L69 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L79 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/Basket.sol#L86 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L48 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L49 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L107 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L131 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L141 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L149 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVaultFactory.sol#L166 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L129 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L139 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L146 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L147 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L154 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L184 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L185 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L325 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L351 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L387 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L399 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L400 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L404 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L444 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L475 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L486 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L496 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L505 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L516 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L524 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L536 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L546 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L561 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L564 https://github.com/code-423n4/2022-06-nibbl/blob/main/contracts/NibblVault.sol#L570