專案簡介
The target of this audit is the private code repository of Prosper Contracts of Pharos Labs. Prosper Contract is an on-chain launch protocol designed to integrate external R25 Vaults with dedicated pToken campaigns. For each integrated Vault, the protocol creates and manages an independent campaign that begins with an internal launch and continues through liquidity migration to an external market. After the migration, the protocol supports reward claims and uses collected channel fees to conduct pToken buybacks. This structure provides each R25 Vault with an isolated campaign lifecycle while using a shared framework for token launches, liquidity migration, reward distribution, and fee-funded buybacks. Compared to Version 1 (68c547), Version 2 (b8ef7f) introduces asynchronous R25 deposit requests with user cancellation, canonical pair protection, and time-locked LP positions instead of permanent LP burning. It also extends failed-campaign handling by burning reserved tokens and converting accrued fees into R25 Vault Shares that users can reclaim through a Merkle-based mechanism without an expiration period or administrative sweep.
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 find any critical issues within the audited codebase. However, we have identified some non-critical issues that should be addressed. Additionally, we have put forth recommendations and notes that should be taken into consideration. It is important to note that the scope of our audit was strictly limited to the specific code versions mentioned in the report. Any updates made subsequent to our review would require a re-evaluation.
關鍵發現
我們在該智能合約中共發現 3 個潛在問題,另有 5 條建議與 4 條說明,明細如下:
| ID | Severity | Description | Status |
|---|---|---|---|
| 1 | Medium | Potential DoS of migration due to single sided V2 pair reserves | Fixed |
| 2 | Low | Lack of shareToken validation against R25Vault in function createFromR25Vault() |
Fixed |
| 3 | Low | Transferring default admin role to existing business accounts circumvents role separation policy | Fixed |
| 4 | - | Handle permit failures caused by frontrunning | Fixed |
| 5 | - | Add initializer-disabling constructors to upgradeable implementation contracts | Fixed |
| 6 | - | Validate and enforce consistency between buyback router and migration venue | Fixed |
| 7 | - | Align the ERC-7201 annotation with runtime storage | Fixed |
| 8 | - | Allow failure finalization after rewardpool burning | Fixed |
| 9 | - | Potential centralization risks | - |
| 10 | - | Reliance on trusted off-chain logic | - |
| 11 | - | Reliance on timely migration execution | - |
| 12 | - | Trust assumptions on the external v2 factory | - |
更多細節見審計報告。