Napier Finance is the liquidity hub for Yield Trading. This contest covers a router for Napier AMM and Curve TwoCrypto and modules to interact with various LSTs/LRTs.
Scope
Contest Results
On what chains are the smart contracts going to be deployed?
Ethereum
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?
it should support standard ERC20-Tokens.
Tokens with a transfer fee and tokens with a hook are not supported.
Are the admins of the protocols your contracts integrate with (if any) TRUSTED or RESTRICTED? If these integrations are trusted, should auditors also assume they are always responsive, for example, are oracles trusted to provide non-stale information, or VRF providers to respond within a designated timeframe?
LST and LRT protocols are TRUSTED
Internal roles are TRUSTED
Balancer finance flash loan and admin are TRUSTED
Admin of Curve TriCrypto and TwoCrypto are TRUSTED
Are there any protocol roles? Please list them and provide whether they are TRUSTED or RESTRICTED, or provide a more comprehensive description of what a role can and can't do/impact.
Rebalancer role - TRUSTED (as a whole) : An account that manages tokens and assets on vaults and adapters.
Rebalancer can
For permissioned functions, please list all checks and requirements that will be made before calling the function.
LST Adapters
requestWithdrawal and requestWithdrwalAll
Is the codebase expected to comply with any EIPs? Can there be/are there any deviations from the specification?
Optionally compliant (compliancy issues will not be valid Medium/High)
Are there any off-chain mechanisms or off-chain procedures for the protocol (keeper bots, arbitrage bots, etc.)?
We monitor token balances on adapters, available buffer on adapters and current buffer percentage.
And we may run bots to rebalance vaults when users run out of buffer.
Are there any hardcoded values that you intend to change before (some) deployments?
No
If the codebase is to be deployed on an L2, what should be the behavior of the protocol in case of sequencer issues (if applicable)? Should Sherlock assume that the Sequencer won't misbehave, including going offline?
N/A
Should potential issues, like broken assumptions about function behavior, be reported if they could pose risks in future integrations, even if they might not be an issue in the context of the scope? If yes, can you elaborate on properties/invariants that should hold?
No
Please discuss any design choices you made.
Some adapters don't support multiple requests for unstaking LST because some of protocols are not compatible with our code base. We implemented some functions to exit stake positions. Buffer may not fully mitigate the waiting period for unstaking. Kinds of DoS issues may be invalid.
swapETHForPT function on MetapoolRouter can'g swap exact amount of token because of precision loss but we think it's acceptable. But, if this precision loss may cause a serious loss of funds, it may be a valid finding.
Twocrypto, Tricrypto LP token, WETH, Napier PT and YT comply with ERC20 standard completely.
Please list any known issues/acceptable risks that should not result in a valid finding.
claimWithdraw functions on some adapters are public function though the function may change vault share price, which may cause kinds of front running.
Redeeming vault share can be blocked (DoS) because of waiting period of LST/LRT withdrawal
swapETHForPT function on MetapoolRouter can't swap exact amount of token.
Vault inflation attack
We will report issues where the core protocol functionality is inaccessible for at least 7 days. Would you like to override this value?
No
Please provide links to previous audits (if any).
Please list any relevant protocol resources.
Additional audit information.
Total Rewards
Contest Pool
Lead Senior Watson
Judging Pool
Lead Judge
18,000 USDC
10,000 USDC
900 USDC
1,100 USDC
Status
Scope
Start Time
End Time
Judging Rules