專案簡介
The target of this audit is the private code repository of multisig-timelock-contracts of DeAgentAI. The multisig-timelock-contracts is a token vault deployed on BSC and Sui. It implements a weighted multisig scheme based on off-chain signatures, combined with a conditional timelock. Each owner holds a weight, and an operation is authorized once the combined weight of the signers reaches a fixed threshold. The timelock delay applies only when at least one participating signer is flagged as timelocked. Both chains share identical high-level logic, differing solely in the signature primitive: EIP-712 with ECDSA on BSC and Ed25519 on Sui. The configured owners are A (weight 2, timelocked), B (weight 1), and C (weight 1), with a threshold of 2. Accordingly, A alone requires the delay, B and C together may execute immediately, and B or C alone is rejected. The only governed operation is transferring whitelisted tokens out of the vault, and all configuration is fixed at deployment and immutable.
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.
關鍵發現
我們在該智能合約中共發現 2 個潛在問題,另有 6 條建議與 5 條說明,明細如下:
| ID | Severity | Description | Status |
|---|---|---|---|
| 1 | Medium | Lack of binding on intended signer set | Confirmed |
| 2 | Medium | Lack of balance validation against pending operations | Confirmed |
| 3 | - | Revise misleading documentation | Fixed |
| 4 | - | Add a view function for allowed tokens | Confirmed |
| 5 | - | Align the documentation with the implementation | Fixed |
| 6 | - | Add input validation in the Sui module | Confirmed |
| 7 | - | Add the vault identifier field and creation events | Confirmed |
| 8 | - | Validate owner public keys in function new_internal() |
Confirmed |
| 9 | - | Verification before funding | - |
| 10 | - | Potential centralization risks | - |
| 11 | - | Weird ERC20 tokens | - |
| 12 | - | The upgrade authority of Sui packages | - |
| 13 | - | Design of the multi-signature scheme | - |
更多細節見審計報告。