项目简介
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 | - |
更多细节见审计报告。