
Perennial is a Perpetuals DEX. This update introduces new features to improve RFQ order placement and the addition of Solver vaults.
Scope
Contest Results
On what chains are the smart contracts going to be deployed?
Arbitrum, Base
If you are integrating tokens, are you allowing only whitelisted tokens to work with the codebase or any complying with the standard? Are they assumed to have certain properties, e.g. be non-reentrant? Are there any types of weird tokens you want to integrate?
ERC20 only, particularly DSU and (native) USDC stablecoins.
Are there any limitations on values set by admins (or other roles) in the codebase, including restrictions on array lengths?
Yes:
Owners and coordinators may adjust configuration on the running protocol as appropriate for market and chain conditions.
Hardcoded parameters for L2 gas measurement may be adjusted prior to release based on chain conditions.
Are there any limitations on values set by admins (or other roles) in protocols you integrate with, including restrictions on array lengths?
No
Is the codebase expected to comply with any specific EIPs?
Our codebase uses EIP-712 to verify signed messages.
Are there any off-chain mechanisms involved in the protocol (e.g., keeper bots, arbitrage bots, etc.)? We assume these mechanisms will not misbehave, delay, or go offline unless otherwise specified.
Yes; keeper bots are employed to:
What properties/invariants do you want to hold even if breaking them has a low/unknown impact?
Fine-grained invariants are documented in natspec comments. We have neither documented coarse-grained invariants, nor created automated invariant tests to check them. Watsons are encouraged to raise an issue at the appropriate severity if a perceived invariant is violated.
Please discuss any design choices you made.
Perennial is a complex codebase and each release involves evaluating tradeoffs to determine the best design to achieve our goals. As such, we encourage auditors to thoroughly read documentation, and inquire about specific design decisions they find curious.
Please provide links to previous audits (if any).
Please list any relevant protocol resources.
There are no documentation changes for this release, however these materials remain relevant to the protocol in general:
V2 Docs: https://docs.perennial.finance
V2 Mechanism 1-pager: https://docs.google.com/document/d/1f-V_byFYkJdJAHMXxN2NiiDqysYhoqKzZXteee8BuIQ
V2.3 Intents Doc: https://docs.google.com/document/d/12nCBzhwYRCwAvNESxV0HHYVTFsS2-yNu5BsD9BRjI9M
Additional audit information.
The base of this audit should be this commit: https://github.com/equilibria-xyz/perennial-v2/commit/9c70add56887628ecd999d927c7e0351a3524de8
This release makes (relatively) minor changes intended to improve user experience and reduce transaction fees.
Perennial Intents: https://docs.google.com/document/d/1byG6wleAmR4LAK0x4qFNfmOaXk0Vef__tyYUxF4a4bE/edit?usp=drivesdk
Total Rewards
Contest Pool
Lead Senior Watson
Judging Pool
Lead Judge
19,500 USDC
14,500 USDC
1,200 USDC
2,300 USDC
Status
Scope
Start Time
End Time
Judging Rules