專案簡介
The target of this audit is the code repository of CoboTokenization of Cobo. CoboTokenization consists of two upgradeable systems, CoboERC20 and Fund. The CoboERC20 system includes contracts CoboERC20 and CoboERC20Wrapper, where CoboERC20 provides controlled ERC-20 issuance and transfer controls and CoboERC20Wrapper handles underlying asset wrapping and unwrapping with reconciliation-based recovery minting. The Fund system includes contracts CoboFundOracle, CoboFundToken, and CoboFundVault, which maintain APR and compute NAV, manage share subscriptions and asynchronous redemptions, and execute custody settlement payouts. The overall security model relies on role separation and whitelist and blacklist checks on critical execution paths.
Please refer to the report for the detailed audit scope.
Our audit methodology employs automated vulnerability scans, manual verification, and business logic analysis to uncover potential security issues coupled with gas and code quality optimization recommendations.
In summary, we did not identify any potential issues within the audited codebase. However, we have some recommendations and notes that should be considered to further enhance the protocol's quality, security, and reliability. With no potential issues identified, the project demonstrates a relatively high level of security. It should also be noted that the scope of our audit was strictly limited to the specific code versions detailed in the report. Any updates subsequent to our review would necessitate a re-evaluation.
關鍵發現
我們在該智能合約中共發現 0 個潛在問題,另有 9 條建議與 14 條說明,明細如下:
| ID | Severity | Description | Status |
|---|---|---|---|
| 1 | - | Align minUpdateInterval validation in function initialize() |
Fixed |
| 2 | - | Use Math.mulDiv() for NAV calculation |
Fixed |
| 3 | - | Add consistency checks in setOracle() and setVault() |
Fixed |
| 4 | - | Add non-zero address checks | Fixed |
| 5 | - | Remove redundant code | Fixed |
| 6 | - | Prevent precision loss in function getLatestPrice() |
Fixed |
| 7 | - | Enforce a lower bound for minUpdateInterval |
Confirmed |
| 8 | - | Align the comment for pause() with the implementation |
Fixed |
| 9 | - | Add minimum validation in function setMaxAPR() |
Fixed |
| 10 | - | Hardcoded external address | - |
| 11 | - | Behavior when an account exists in both _accessList and _blockList |
- |
| 12 | - | Access list disabled by default | - |
| 13 | - | Pausable functionality implementation | - |
| 14 | - | Ensure CoboFundVault maintains sufficient asset liquidity |
- |
| 15 | - | Ensure approve() policy matches authorization controls |
- |
| 16 | - | Weird ERC20 tokens | - |
| 17 | - | Proxy deployment and implementation binding should be atomic | - |
| 18 | - | Potential centralization risks | - |
| 19 | - | Access control design for functions deposit() and withdraw() |
- |
| 20 | - | Dust shares due to precision loss | - |
| 21 | - | Expected migration flow for setVault() |
- |
| 22 | - | Limited burn functionality in contract CoboERC20Wrapper |
- |
| 23 | - | Whitelist restriction removed on transfers in contract CoboFundToken |
- |
更多細節見審計報告。