diff --git a/docs/contributing/operations/osc-levels.md b/docs/contributing/operations/osc-levels.md
deleted file mode 100644
index 57d7483d8c..0000000000
--- a/docs/contributing/operations/osc-levels.md
+++ /dev/null
@@ -1,182 +0,0 @@
-# OSC Levels
-
-### **O**pen **S**ource **C**ontributor Levels
-
-## Motivation
-
-On the Web Team, we lacked a framework for making decisions about who should be in linear.app, when someone should join standup, what groups do we add them to and what are our expectations, etc. When we discussed with the strategists, we found that they had similar issues in setting expectations (e.g. you don't just write a strategy then sit on a beach and collect profits, there's further to go) and understanding who was meeting those expectations.
-
-This is a set of guidelines to help all of us frame this conversation. It's expected that this will evolve over time based on things we see working really well, and also problems we run into.
-
-Anytime the team has a disagreement about when or how to bring someone in deeper, the outcome of that discussion will be updates to these guidelines.
-
-
-
-## Outline
-
-- 𝟎 **- Anyone**
-
- - anyone can make stuff for yearn, like the iOS app "yearnings," without any access
- - good candidates can go directly to level 1 or 2, but you have to be at level 2 before you can go to 3
-
-### OSC Levels
-
-|OSC Level|General|Access|Trust|Commitment|Compensation|Criteria to Level Up|
-|---------|-------|------|-----|----------|------------|--------------------|
-|â… : Entry|Anyone who wants to contribute can ask to join Secret Entrance and start doing stuff.|
- **Yearn**: Secret Entrance
Any telegram admin can add you to a workgroup|none|occasional contribution||If they provide value, any 2 level 2 people can vouch them up to level 2.|
-|â…ˇ: Contributor|People are active in more workgroups|- **Yearn**: YFI Contributors, Open Linear, Notion Guest
- **Strategists**: Boarding School
- **Web**: YFI Web
|Trust that they can add value|Consistent contribution|- Coordinape community
- 1-time grants
|- Has demonstrated reliability over at least a month
- at least 2 Doer sponsors (can be on one team)
|
-|â…˘: Trusted Contributor|Has demonstrated reliability over time, at least a month Strategists: Have an ETH mainnet strategy on production (not just in review)|- **Yearn**: YFI Secret Admirers, Private Linear, Paid Notion
- **Strategists**: YFI Strategists
|- Trust that they can reliably add value
- Trust that they will respect private info
|Trusted consistent contribution, they are reliable|- Coordinape community
- 1-time grants
- Team coordinapes
|- Has demonstrated high integrity
- At least 3 sponsors from Doers from more than 1 team
- Agree, stand aside, block poll in Doers
|
-|â…Ł: Doer|Citadel & most trusted|- **Yearn**: YFI Doers Strats: YFI Strategists Core
- **Web**: YFI Web Core
|Just as trusted at the Citadel|All-in|- Citadel: salary + vesting
- Others: OSC III
|Commitment|
-
-## Visual of Teams
-
-When you take the above and apply them to teams, the specific *implementation* of the levels changes based upon the systems in use and processes followed by that teams, but the *spirit* of each level is very much equivalent. Someone who's a trusted contributor on the Web team would be considered the equivalent of a trusted contributor on the Strategist team, and they'd both be welcome to the same conversations.
-
-
-
-
-[https://docs.google.com/presentation/d/1Zey7hr5L6ecf3gvFb8h8O4bejV9MJmKiprt0VIf5H68/edit#slide=id.gb6ef2d2049_0_857](https://docs.google.com/presentation/d/1Zey7hr5L6ecf3gvFb8h8O4bejV9MJmKiprt0VIf5H68/edit#slide=id.gb6ef2d2049_0_857)
-
-## Transitioning Levels
-
-### To move to OSC II
-
-- At least two individual sponsors of OSC III or higher
-- Completed at least one issue of significant size and complexity
-- Or, have completed multiple issues showing a pattern of quality and thoughtfulness
-- It takes less time to ask the person to do the work and review their work, than it does for you to do the work yourself
- - Demonstration of quality work
-
-#### Questions to Ask
-
-- Will they add value to the conversation in telegram?
-- Will they respect coordinape and opt-out when they're not contributing?
-- Is their work at least the quality level of a promising junior engineer?
-- Has any of their completed work caused regressions or serious bugs?
- - If so, do we believe they've learned from this experience? Or is this a recurring behavior?
-
-#### Who asks these questions & who makes this decision?
-
-- The team they're contributing to (e.g. web team, strategist team)
- - It's not required for the team to vote on this, but they should be made aware the person's being elevated
-
-### To move to OSC III
-
-- At least two individual sponsors from doers
-- They've been given privileged information and haven't leaked it
-- They complete 1-2 issues per week (on average)
-- They opt-out of coordinape when not working
-- They assign all their gives in coordinape every epoch (soft requirement)
-- They are an asset to engineering
- - Either contributing strong technical thinking
- - Or contributing quality work that frees the team up to focus on more critical items
- - They self-structure their work and can succeed even with minimal requirements, reaching out to the right teams as needed
-- **Their team trusts them**
-- At this point, the person is effectively being evaluated for becoming a doer
- - This is not a guarantee
- - Some people may not move past this point due to personal considerations, job circumstance, etc.
- - We should not promote anyone to this level we don't think *could* be doer material
-
-#### Questions to Ask
-
-- Do they regularly participate in telegram?
-- Do they improve the quality of the conversation?
-- Could I assign an area of responsibility to this person? (e.g. fix any bugs that come into GitHub on the v2 site)
-- Do they follow process?
- - Are their tech design tickets of good quality?
- - Do they display exemplary attitude in peer review? (i.e. do they take feedback well?)
-- Do I have to structure their work or can they self-structure?
-- Have they come up with issues to suggest?
-- Do they review others work?
-
-#### Who asks these questions & makes this decision?
-
-- The team their contributing to (e.g. web team, strategist team)
- - Sponsors submit a proposal internal to the team for teammates to weigh in on / vote on
- - A brief summary of the person and poll are submitted to the team's core telegram
- - The summary should touch on 'questions to ask', above
- - The poll should use the following format
- - Agree
- - Stand-aside
- - Block
- - If anyone blocks, or stands aside, the issue must be cleared before the person can be brought in. 9 agreements and 1 block on a 10 person team means the person in question isn't elevated.
- - (It's fine to stand-aside as a 'pass' if you don't have strong feelings, just let the team know that's why you're standing aside)
-
-## Additional Considerations for Strategists
-
-Strategists have multiple roles at OSC III & higher. For example, it's possible to obtain the StratOps or other higher level Strategists roles *without* being a doer (e.g. roles above & beyond "I just write strategies", with commensurate reward). Though yearn would generally prefer to have someone in StratOps, etc. as a doer, it may not be possible for the individual, and we don't want to prevent them from being able to do so.
-
-### To move to the StratOps or higher level Strategist role within OSC III
-
-- At least one sponsor from doers.
-- Some kind of selfless activities
- - Reviewing strategies from other people
- - Being active in the YFI Strategist group
- - Helping manage the vaults
- - Contributing to evolving the protocol
- - Vaults releases
- - Creating bugs, raising issues, giving feedback
- - Monitoring their strategy in ganache fork and doing harvests
- - Letting the group know when something's off
- - Proactively raising issues, preventing stuff from breaking
- - Plugging in monitoring and altering
- - Updating dashboards with scorecards for their strategies, making sure the thresholds are accurate and up-to-date
- - Monitoring underlying protocols
- - If you have a strategy using a protocol, you're effectively the 'account manager' for that protocol
- - In close communication
- - Understanding behavior changes, flagging to yearn team, etc.
-
-## To move to Doer
-
-- At least three sponsors from doers, from more than one team
-- Will I bleed for this person?
-- Do I trust them with my livelihood and my freedom?
-
-**Questions to Ask**
-
-- Have they driven significant technical scope?
-- Have they contributed significantly to technical design thinking?
-- Do they regularly file quality issues and complete tech design reviews and code reviews?
-- **Does the team breathe a sigh of relief at locking them in as a full-time doer?**
-- Have they had constructive, positive interactions with other teams?
-
-**Who asks these questions and makes this decision?**
-
-- Team submits a proposal to doers with the sponsors sign-off
-- Treasury says if we can afford the headcount
-- yTeams reviews & approves/disapproves
-
-## Offboarding
-
-**Offboarding Steps for OSC I**
-
-- None, just don't accept their PRs
-
-**Offboarding Steps for OSC II**
-
-- Ideally the conflict resolution process is followed with the individual. If they were a solid enough contributor to vouch into Coordinape, what's going on that we're now removing them?
- - At minimum the team should have a retro after the person is removed to discuss how they could do a better job on selecting people for vouching in.
-- Coordinape uses a vouching out process. Where two people are required to vouch someone into Coordinape, four people are required to vouch someone out.
-- Consequence
- - Ejection from Linear, Coordinape, YFI Contributors
-
-**Offboarding Steps for OSC III**
-
-- The conflict resolution process is followed for one-off incidents. If there's a pattern of problematic behavior, then the offboarding process is considered.
-- Offboarding Process
- - A brief summary of the person and the concerns are submitted in a poll to the team's core telegram
- - Outcome of this vote is whether or not the person requires a performance improvement plan
- - If performance improvement plan is required, someone coaches the individual and shares the performance improvement plan, including steps for the individual to take, and the expected timeline in which the team needs to see the behavior change for them to continue as part of the team.
- - The coach meets with this person at least weekly to discuss issues and assist in their performance improvement coaching.
- - If nobody's willing to coach the individual, that's a strong point of consideration - should they just be offboarded instead?
- - Also, if someone is still trustworthy, but their contribution is no longer reliable, should they just be dropped down to OSC II and kept as a contributor?
- - Once the performance improvement window has passed, a brief summary of the person and the reason for offboarding are submitted in a poll to the team's core telegram
- - This should include details from the performance improvement plan, did they follow it, to what degree, do we have confidence outstanding issues will be addressed, etc.
- - Outcome of this vote is whether or not they're ejected
-- Consequence
- - Ejection from Linear, Coordinape, Telegram, Standup, Planning, Retrospective, etc.
-
-**Offboarding Steps for doer**
-
-- Similar to steps for OSC III
-- Additional consequence is termination of recurring grant and rug-pull of vesting YFI
diff --git a/docs/developers/addresses/yprisma-contracts.md b/docs/developers/addresses/yprisma-contracts.md
deleted file mode 100644
index e574518bf7..0000000000
--- a/docs/developers/addresses/yprisma-contracts.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# yPRISMA Contract Addresses
-
-A list of deployed yPrisma contracts.
-
-## Core Protocol
-
-| Name | Address |
-|--------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
-| YearnBoostedStaker | [0xF4C6e0E006F164535508787873d86b84fe901975](https://etherscan.io/address/0xF4C6e0E006F164535508787873d86b84fe901975) |
-| Rewards Distributor | [0xc480b481dD194EAc469EC9c4484D23d54B868EDD](https://etherscan.io/address/0xc480b481dD194EAc469EC9c4484D23d54B868EDD) |
-| yPRISMA Fee Receiver | [0x76DF88Aa8711822472Cb40Ed8c972A461A20ecdc](https://etherscan.io/address/0x76DF88Aa8711822472Cb40Ed8c972A461A20ecdc) |
-| Boosted Staker Utilities | [0xf04037D102b64E365eF6Eb81937bDf59B31fE5B8](https://etherscan.io/address/0xf04037D102b64E365eF6Eb81937bDf59B31fE5B8) |
-| PRISMA | [0xdA47862a83dac0c112BA89c6abC2159b95afd71C](https://etherscan.io/address/0xdA47862a83dac0c112BA89c6abC2159b95afd71C) |
-| yPRISMA | [0xe3668873d944e4a949da05fc8bde419eff543882](https://etherscan.io/address/0xe3668873d944e4a949da05fc8bde419eff543882) |
-| yvyPRISMA Vault/Token | [0x10537D7bD661C9c34F547b38EC662D6FD482Ae95](https://etherscan.io/address/0x10537D7bD661C9c34F547b38EC662D6FD482Ae95) |
-| yvmkUSD-A Vault/Token | [0x04AeBe2e4301CdF5E9c57B01eBdfe4Ac4B48DD13](https://etherscan.io/address/0x04AeBe2e4301CdF5E9c57B01eBdfe4Ac4B48DD13) |
-
-## Expired Farms and Contracts
-
-| Name | Address |
-|--------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
-| *legacy yPRISMA | [0xfd37356c1a62288b32Fa58188c77Ab0D694a0f4E](https://etherscan.io/address/0xfd37356c1a62288b32Fa58188c77Ab0D694a0f4E) |
-| *yPRISMA Staking (yvmkUSD-A rewards) | [0xE3EE395C9067dD15C492Ca950B101a7d6c85b5Fc](https://etherscan.io/address/0xE3EE395C9067dD15C492Ca950B101a7d6c85b5Fc) |
-| *yPRISMA Staking (wstETH rewards) | [0x774a55C3Eeb79929fD445Ae97191228Ab39c4d0f](https://etherscan.io/address/0x774a55C3Eeb79929fD445Ae97191228Ab39c4d0f) |
-| *yPRISMA Staking (dYFI rewards) | [0x93283184650f4d3B4253ABd00978176732118428](https://etherscan.io/address/0x93283184650f4d3B4253ABd00978176732118428) |
-| *yPRISMA LP Staking (yPRISMA rewards) | [0x6806D62AAdF2Ee97cd4BCE46BF5fCD89766EF246](https://etherscan.io/address/0x6806D62AAdF2Ee97cd4BCE46BF5fCD89766EF246) |
-| *yCRV Staking (yPRISMA rewards) | [0x84c94d739e075b3C7431bdb1A005F0412DF828a5](https://etherscan.io/address/0x84c94d739e075b3C7431bdb1A005F0412DF828a5) |
-**expired*
-
-[yPRISMA Docs](/getting-started/products/ylockers/yprisma/overview)
diff --git a/docs/developers/data-services/yearn-api.md b/docs/developers/data-services/yearn-api.md
deleted file mode 100644
index f5abbac196..0000000000
--- a/docs/developers/data-services/yearn-api.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Yearn API
-
-### Production Endpoint
-
-https://ydaemon.yearn.fi/1/vaults/all
-
-### API Schema
-
-| Field | Description |
-| --------------------------- | --------------------------------------------------------------------------------------------- |
-| `address` | Checksummed address of the vault |
-| `inception` | The block number a vault was created at |
-| `symbol` | Vault token symbol (used primarily in metamask) |
-| `name` | Vault token name |
-| `display_name` | Vault name as displayed in UI (usually based on underlying symbol) |
-| `icon` | Vault token icon url |
-| `token` | Underlying vault token metadata |
-| `token.name` | Underlying token name |
-| `token.symbol` | Underlying token symbol |
-| `token.address` | Underlying token address |
-| `token.decimals` | Underlying token decimal amount |
-| `token.display_name` | Underlying token display name |
-| `token.icon` | Underlying token icon (usually used as vault dispaly icon) |
-| `tvl` | TVL information about a vault |
-| `tvl.total_assets` | TVL in underlying token denomination |
-| `tvl.price` | Token price in USD |
-| `tvl.tvl` | TVL in USD |
-| `apy` | Vault APY metadata |
-| `apy.type` | APY type. Options are `v2:simple`, `v2:averaged`, `v1:simple`, `crv` |
-| `apy.gross_apr` | Uncompounded gross APR before fees |
-| `apy.net_apy` | Net APY (compounded) after fees. This is what the UI shows |
-| `apy.fees` | Fee structure breakdown for a vault |
-| `apy.fees.performance` | Performance fee in bips |
-| `apy.fees.withdrawal` | Withdrawal fee in bips |
-| `apy.fees.management` | Management fee in bips |
-| `apy.fees.keep_crv` | Amount of CRV to keep upon harvest for curve vaults in bips |
-| `apy.fees.cvx_keep_crv` | Amount of CRV to keep upon harvest for curve convex vaults in bips |
-| `apy.points` | APY samples for various timeframes |
-| `apy.points.week_ago` | APY calculated from one week sample of pricePerShare |
-| `apy.points.month_ago` | APY calculated from one month sample of pricePerShare |
-| `apy.points.month_ago` | APY calculated from inception block sample of pricePerShare |
-| `apy.composite` | Complex APY breakdown (for curve vaults) |
-| `apy.composite.boost` | Current boost of the strategies |
-| `apy.composite.pool_apy` | APY of the Curve LP position |
-| `apy.composite.base_apr` | Base APR of Curve emissions |
-| `apy.composite.boosted_apr` | Boosted APR of Curve emissions |
-| `apy.composite.cvx_apr` | APR of Convex rewards |
-| `apy.composite.rewards_apr` | APR of additional pool rewards |
-| `strategies` | A list of active vault strategies |
-| `strategies[idx].address` | Address of an active strategy |
-| `strategies[idx].name` | Name of an active strategy |
-| `endorsed` | True if the vault is an endorsed production vault. Do not show the vault if it's not endorsed |
-| `version` | API version of the vault |
-| `decimals` | Number of decimals for the vault token |
-| `type` | High level vault classification. Valid options are v1 and v2 |
-| `emergency_shutdown` | If true the vault is in shut down mode and no new deposits should be accepted |
-| `updated` | Unix timestamp of the last vault update |
diff --git a/docs/developers/deprecated-products/delegated-funding-dao-vaults.md b/docs/developers/deprecated-products/delegated-funding-dao-vaults.md
deleted file mode 100644
index b02b2550aa..0000000000
--- a/docs/developers/deprecated-products/delegated-funding-dao-vaults.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-status: On Hold (No Active Development or R&D)
----
-
-# Delegated Funding DAO Vaults
-
-YFI holders can provide capital to DAOs approved to accept funding in the DAO vault ecosystem. DAOs wishing to receive funding are required to setup [Gitcoin Grants](https://gitcoin.co/grants/) page and apply for funding via the [Yearn governance forum](https://gov.yearn.fi/). If there is sufficient interest to approve the DAO for funding an offchain vote will be conducted \([https://vote.yearn.fi](https://yearn.snapshot.page/#/)\). If voting is successful the DAO will be added to the DAO vault ecosystem.
-
-Governance determines weekly, monthly, and yearly credit limits that the DAO can access via the [DAO vault](https://yborrow.finance/). The DAO is free to repay the credit line on their own terms, and in tokens or other collateral options accepted in the yearn ecosystem. Any profits are shared between vault LPs.
-
-### Resources
-
-- Medium article: [Delegated Funding DAO Vaults](https://medium.com/iearn/delegated-funding-dao-vaults-7ab05a63d7ba)
diff --git a/docs/developers/deprecated-products/yPools/yETH/overview.md b/docs/developers/deprecated-products/yPools/yETH/overview.md
deleted file mode 100644
index 880ce254a0..0000000000
--- a/docs/developers/deprecated-products/yPools/yETH/overview.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# yETH
-
-
-
-yETH is a user-governed liquidity pool token consisting of various Ethereum Liquid Staking Derivatives (LSTs).
-
-The yETH protocol is an Automated Market Maker (AMM) for LSTs. Each LST in the yETH pool is priced according to the amount of [beacon chain](https://ethereum.org/en/upgrades/beacon-chain/) ETH it represents. This lets users deposit their LSTs into the pool and receive yETH tokens pegged 1:1 with beacon chain ETH. Users can also stake their yETH tokens to mint st-yETH, accrue yield, and participate in yETH governance.
-
-This AMM model, combined with the governance and incentive mechanisms of the yETH protocol, aims to provide an optimal risk-adjusted yield for ETH staking by dynamically adjusting the weights of the LSTs in the pool. It also offers users flexibility with single-sided deposits and withdrawals, and maintains the pool's balance and diversification through a weight management system.
-
-The yETH protocol is governed by its users who can vote to adjust the weights of the LSTs in the pool, helping to maximize yield and mitigate risks associated with individual LSTs.
-
-All yields generated by yETH go to Staked yETH (st-yETH) holders, making yETH an ideal token for Liquidity Providing in stableswap pools like those on Curve. To acquire yETH, users can mint yETH by depositing LSTs or swap against the yETH/ETH Curve pool.
-
-Want to dive into the details? check out the Developer Docs:
-[yETH Developer Docs](/developers/deprecated-products/yPools/yETH/yeth-overview)s
-
-[Frequently Asked Questions](./yeth-faq)
-
-[GitHub Repo](https://github.com/yearn/yETH)
diff --git a/docs/developers/security/risks/protocol-risks.md b/docs/developers/security/risks/protocol-risks.md
index 281af8bc89..30148143e2 100644
--- a/docs/developers/security/risks/protocol-risks.md
+++ b/docs/developers/security/risks/protocol-risks.md
@@ -2,7 +2,7 @@
Yearn’s core products are the vaults. Each vault runs at least one strategy, and each strategy is exposed to at least one protocol. Strategy and protocol risks are described [here](./strategy-risks.md) and [here](./protocol-risks.md) respectively.
-The key protocols to which Yearn’s vaults are exposed are lending protocols, AMMs and protocols that enable leverage.
+The key protocols to which Yearn’s vaults are exposed are lending protocols, AMMs and protocols that enable leverage. The protocol risk reports from Yearn's risk team analysis are stored at https://curation.yearn.fi/.
## Lending Protocols
diff --git a/docs/developers/security/risks/risk-score-legacy.md b/docs/developers/security/risks/risk-score-legacy.md
deleted file mode 100644
index 7cf2eb759c..0000000000
--- a/docs/developers/security/risks/risk-score-legacy.md
+++ /dev/null
@@ -1,336 +0,0 @@
-# Risk Scores
-
-Yearn works with risk scores to quantify and assess the amount of risk of each strategy and vault. This document outlines how we measure risk vectors and use them to find the optimal balance of security and innovation.
-
-* [**Strategy Risk Score**](#strategy-risk-score) defines each dimension of risk for a strategy and how we quantify them
-* [**Vault Risk Score Proposal**](#vault-risk-score-proposal) aggregates all strategy scores for a vault, averaging by TVL **(this is in draft stage)**
-* [**Overall Risk Score Proposal**](#overall-risk-score-proposal) aggregates strategy/vault scores into overall scores **(this is in draft stage)**
-
-Different risk scores for all V2 vaults can be viewed on the [Seafood](https://seafood.yearn.watch/risk) Dashboard.
-
-## Strategy Risk Score
-
-Risk for different strategies is quantified using a 1-5 point system developed by Yearn's strategy deployment process. The higher the risk score number, the more risky the strategy is. The risk assessment evaluates eight dimensions:
-
-1. [Audit](#audit)
-2. [Code Review](#code-review)
-3. [Complexity](#complexity)
-4. [Longevity](#longevity)
-5. [Protocol Safety](#protocol-safety)
-6. [Team Knowledge](#team-knowledge)
-7. [Testing Score](#testing-score)
-8. [TVL Impact](#tvl-impact)
-
-This risk framework is an ongoing process to ensure the security of Yearn strategies. Yearn recognized that, due to its unique approach to deploying strategies, it could not rely on a traditional waterfall process (heavy analysis and design, testing, multiple audits before release, etc.) to deploy contracts. Strategies are deployed and capped by their risk score. As we reduce the risk in any of the eight dimensions, the strategy can grow its TVL. This system allows Yearn to compare the risk score of two strategies and prioritize risk mitigation and preventive actions, such as forming a committee to spread knowledge on the code, getting more audits, migrating current code to improved versions of the strategy, etc.
-
-The current version of the risk score system works for Yearn's current needs, but we are always looking to improve and expand it to the vaults. We want to provide our users with a better understanding of what is happening behind the scenes in the vaults. The development of vault risk scoring is still in progress!
-
-### Audit
-
-Auditing is a process that an audit firm or external security researcher reviews code for any potential vulnerabilities and present a report for mitigation. Audits take longer than an internal security review and are not immediately available due to the high demand for audits in the space. As such, most strategies are sent to production without an audit (leading to a high risk score) in order to limit their Total Value Locked (TVL). This approach allows for strategies to be validated in production while still managing risk, and the risk score helps determine which strategies should get an audit first, based on impact and other scoring criteria. The table below outlines the scoring criteria associated with audits.
-
-
-
- | Score |
- Audit |
-
-
- | 5 |
- No audit by a trusted firm or security researcher. |
-
-
- | 4 |
- Audit by trusted firm or security researcher conducted more than 6 months ago. |
-
-
- | 3 |
- Audit by trusted firm or security researcher conducted more than 3 months ago. |
-
-
- | 2 |
- Audit conducted less than 3 months ago by an independent trusted firm. |
-
-
- | 1 |
- Audit conducted less than 3 months ago by 3 or more independent trusted firms. |
-
-
-
-### Code Review
-
-This is the process that reviews strategy code going to production. It is done in two major phases:
-
-**Phase 1:** Two internal peers (strategists) review the strategy for any potential issues regarding handling accounts, profits, losses, etc. After this phase is completed, the strategy can go to ape.tax for live testing and validation.
-
-**Phase 2:** An internal security reviewer from Yearn will review the code focusing on security concerns. Once phase 2 is completed, the strategy gets a risk score in all dimensions and is usually deemed enough for a strategy to go to production with limited TVL based on scoring.
-
-After these steps a recurring review is scheduled, where either a second either internal or external security reviewer will have another look at the code:
-
-
-
- | Score |
- Code Review |
-
-
- | 5 |
- 0 - 1 reviewer of the code only or most recent was done 6 months+ ago |
-
-
- | 4 |
- 2 reviewers of the code, the most recent of which was done 3+ months ago |
-
-
- | 3 |
- 3 reviewers of the code, the most recent of which was done 3+ months ago (1 of the reviewers is an internal security dev) |
-
-
- | 2 |
- 4 reviewers of the code (2 peers and 2 internal security devs) |
-
-
- | 1 |
- 5 reviewers of the code, (2 strategists peers and 2 security reviewers and either external protocol devs reviewed or external security researchers reviewed) |
-
-
-
-### Complexity
-
-This is how the strategy earns its returns: is it a simple strategy like a masterchef staking or does it have complex mechanics such as leverage, risk of liquidation, and involvement with multiple protocols? The more components it needs will require a higher complexity score. This score is essential in an emergency to evaluate how difficult it is to mitigate a live issue:
-
-
-
- | Score |
- Complexity |
-
-
- | 5 |
- Strategy is highly complex, uses leverage or debt, and is not easy to unwind. No health check available |
-
-
- | 4 |
- Uses leverage or debt, and is not easy to unwind. No health check available |
-
-
- | 3 |
- Has potential for losses, withdrawal fees, or requires detailed queue management to prevent losses. No health check available |
-
-
- | 2 |
- Strategy is relatively simple, and is easy to migrate/unwind. Has a health check |
-
-
- | 1 |
- Strategy is easy to understand, and can be migrated/unwound easily. No leverage and no publicly accessible methods. Highly unlikely to incur losses. |
-
-
-
-### Longevity
-
-How long the strategy has been running live on yearn.fi:
-
-
-
- | Score |
- Longevity |
-
-
- | 5 |
- Code is new and did not go to ape tax before going live on yearn.fi |
-
-
- | 4 |
- Code has been running for less than one month |
-
-
- | 3 |
- Code has been running between 1-4 months |
-
-
- | 2 |
- Code has been running for 4+ months |
-
-
- | 1 |
- Code has been running for 8+ months with no critical issues and no changes in code base |
-
-
-
-### Protocol Safety
-
-Protocol Safety evaluates the resilience of the protocol the strategy uses. It takes into account the safety measures given the current DeFi security standards, based on our internal assessments and due diligence compared to the top projects in DeFi. This includes multisig health, decentralization, bounty programs, audits, etc.
-
-We hope to improve this dimension with the help of the DeFi community to potentially use a standard scoring system that is widely accepted in the ecosystem to replace our current scoring table:
-
-
-
- | Score |
- Protocol Safety |
-
-
- | 5 |
- No due diligence (DD) document for this strategy. The protocol contracts used are very recent and not audited/verified. An EOA (externally owned account) owns the contracts and can upgrade them. |
-
-
- | 4 |
- DD took place. Protocol contracts audited/verified. A multisig is required or contracts are upgradable. Multisig has a low threshold of signers. No bounty program. |
-
-
- | 3 |
- DD took place. Protocol contracts are audited/verified by at least one reputable audit firm. A multisig with an appropriate threshold is required and/or contracts are immutable. Has a good bounty program. |
-
-
- | 2 |
- DD took place. Protocol contracts are audited/verified by at least two reputable audit firms. A multisig with an appropriate threshold is required and/or contracts are immutable. Has a good bounty program. |
-
-
- | 1 |
- Protocols involved in contracts are trusted blue chip protocols with a good track record of security. For example: Maker, Uniswap, Curve, AAVE, and Compound. These protocols meet all the criteria specified in item 2 and more. |
-
-
-
-### Team Knowledge
-
-Measures the amount of expertise on a strategy that is shared amongst Yearn contributors. How many contributors can manage the strategy and respond in an emergency? The fewer people who can manage and respond during an emergency the riskier the strategy assessment in this dimension:
-
-
-
- | Score |
- Team Knowledge |
-
-
- | 5 |
- 1 person in the team is the only one that has in-depth knowledge of the strategy code |
-
-
- | 4 |
- 1 strategist has in-depth knowledge, and 1 strategist is somewhat familiar with the strategy code. |
-
-
- | 3 |
- 2 strategists have in-depth knowledge of the strategy code. |
-
-
- | 2 |
- 2 strategists have in-depth knowledge, and 1 strategist is somewhat familiar with the strategy code. |
-
-
- | 1 |
- A team of 3+ strategists are very familiar with the strategy code and the protocol the strategy is utilising. |
-
-
-
-### Testing Score
-
-Testing score is a metric of how much of the codebase for the strategy has been tested. It uses the test coverage number as a reference, higher coverage means the developer/strategist took time to test most of the operations of the strategy in a unit test or fork environment. This score assumes that a less tested strategy entails more risk since we know less about what is expected from the code:
-
-
-
- | Score |
- Testing Score |
-
-
- | 5 |
- Less than 20% coverage in testing |
-
-
- | 4 |
- Less than 40% coverage in testing |
-
-
- | 3 |
- 40% to 80% coverage |
-
-
- | 2 |
- Over 80% coverage |
-
-
- | 1 |
- Over 90% coverage in testing. Second developer validated and added tests and also added new ones for uncovered cases while reviewing. You can pull the repository and the tests are currently passing |
-
-
-
-### TVL Impact
-
-The TVL (total value locked) metric measures how to allocate to new riskier strategies without having a catastrophic event in case of a hack or issue. The lower the impact, the more likely Yearn’s treasury can recover from an incident. The TVL is measured in USD and grows dynamically based on strategies allocations onchain. Through [seafood](https://seafood.yearn.watch/risk) we keep track of the TVL and risk score to make fund allocation decisions and mitigations if a strategy group has fallen into the “red” high-risk zone:
-
-
-
- | Score |
- TVL Impact |
-
-
- | 5 |
- Extreme: greater than USD 100 MM |
-
-
- | 4 |
- Very high: less than USD 100 MM |
-
-
- | 3 |
- High: less than USD 50 MM |
-
-
- | 2 |
- Medium: less than USD 10 MM |
-
-
- | 1 |
- Low: less than USD 1 MM |
-
-
-
-## Vault Risk Score Proposal
-
-A vault is a contract that holds funds for up to 20 strategies, the vault risk score is a TVL weighted average for each active strategy, for example:
-
-**Strategy X** has **5000$** funds deposited
-**Strategy Y** has **1000$** funds deposited
-
-This vault's risk score would be calculated as follows:
-
-```
-(
- (Strategy X risk) * 5000
- +
- (Strategy Y risk) * 1000
-)
-Ă·
-6000
-```
-
-## Overall Risk Score Proposal
-
-Risks on some projects may have more relevance than others, so before calculating the overall score we first define the weight for the context we want to apply the framework on, and then we do a weighted average between all risk dimensions and risk profiles:
-
-**Risk Profile** = Weighted table of which risk dimension is more important given the current context
-**Risk Score** = Weighted average of all 8 dimensions using the risk profile weights
-
-A project may have many risk profiles, so for each profile the score is calculated and the final list that remains is then used with medians to reach the final result.
-
-The projects overall risk score will be presented in 3 variables:
-
-* **high:** profile score for a risk-averse user
-* **low:** profile score for a risk-seeking user
-* **median:** profile score for a median representative user
-
-Where each one of these use the final list median:
-
-* **high:** median + 1.5 IQR
-* **low:** median - 1.5 IQR
-* **median:** the median value from the distribution
-
-Where IQR stands for the interquartile range of the distribution
-
-Here is what the final result looks like:
-
-```
-{
- 'overallScore': {
- 'high': 3.37675585284281,
- 'low': 2.5463210702341135,
- 'median': 2.9615384615384617,
- },
-}
-```
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/BaseStrategy.md
deleted file mode 100644
index 41a9b2ae9c..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/BaseStrategy.md
+++ /dev/null
@@ -1,632 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) public returns (string)
-```
-
- Used to track which version of `StrategyAPI` this Strategy
- implements.
-
-The Strategy's version must match the Vault's `API_VERSION`.
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`A`| | string which holds the current API version of this contract.
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-This Strategy's name.
-@dev
- You can use this field to manage the "version" of this Strategy, e.g.
- `StrategySomethingOrOtherV1`. However, "API Version" is managed by
- `apiVersion()` function above.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`This`| | Strategy's name.
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
- The amount (priced in want) of the total assets managed by this strategy should not count
- towards Yearn's TVL calculations.
-@dev
- You can override this field to set it to a non-zero value if some of the assets of this
- Strategy is somehow delegated inside another part of Yearn's ecosystem e.g. another Vault.
- Note that this value must be strictly less than or equal to the amount provided by
- `estimatedTotalAssets()` below, as the TVL calc will be total assets minus delegated assets.
-@return
- The amount of assets this strategy manages that should not be included in Yearn's Total Value
- Locked (TVL) calculation across its ecosystem.
-
-
-
-### constructor
-```solidity
- function constructor(
- address _vault
- ) public
-```
-
- Initializes the Strategy, this is called only once, when the
- contract is deployed.
-
-`_vault` should implement `VaultAPI`.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_vault` | address | The address of the Vault responsible for this Strategy.
-
-### setStrategist
-```solidity
- function setStrategist(
- address _strategist
- ) external
-```
-
- Used to change `strategist`.
-
- This may only be called by governance or the existing strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_strategist` | address | The new address to assign as `strategist`.
-
-### setKeeper
-```solidity
- function setKeeper(
- address _keeper
- ) external
-```
-
- Used to change `keeper`.
-
- `keeper` is the only address that may call `tend()` or `harvest()`,
- other than `governance()` or `strategist`. However, unlike
- `governance()` or `strategist`, `keeper` may *only* call `tend()`
- and `harvest()`, and no other authorized functions, following the
- principle of least privilege.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_keeper` | address | The new address to assign as `keeper`.
-
-### setRewards
-```solidity
- function setRewards(
- address _rewards
- ) external
-```
-
- Used to change `rewards`. EOA or smart contract which has the permission
- to pull rewards from the vault.
-
- This may only be called by the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_rewards` | address | The address to use for pulling rewards.
-
-### setMaxReportDelay
-```solidity
- function setMaxReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `maxReportDelay`. `maxReportDelay` is the maximum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the maximum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The maximum number of seconds to wait between harvests.
-
-### setProfitFactor
-```solidity
- function setProfitFactor(
- uint256 _profitFactor
- ) external
-```
-
- Used to change `profitFactor`. `profitFactor` is used to determine
- if it's worthwhile to harvest, given gas costs. (See `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_profitFactor` | uint256 | A ratio to multiply anticipated
-`harvest()` gas cost against.
-
-### setDebtThreshold
-```solidity
- function setDebtThreshold(
- uint256 _debtThreshold
- ) external
-```
-
- Sets how far the Strategy can go into loss without a harvest and report
- being required.
-
- By default this is 0, meaning any losses would cause a harvest which
- will subsequently report the loss to the Vault for tracking. (See
- `harvestTrigger()` for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_debtThreshold` | uint256 | How big of a loss this Strategy may carry without
-being required to report to the Vault.
-
-### setMetadataURI
-```solidity
- function setMetadataURI(
- string _metadataURI
- ) external
-```
-
- Used to change `metadataURI`. `metadataURI` is used to store the URI
-of the file describing the strategy.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_metadataURI` | string | The URI that describe the strategy.
-
-### governance
-```solidity
- function governance(
- ) internal returns (address)
-```
-Resolve governance address from Vault contract, used to make assertions
-on protected functions in the Strategy.
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
- Provide an accurate estimate for the total amount of assets
- (principle + return) that this Strategy is currently managing,
- denominated in terms of `want` tokens.
-
- This total should be "realizable" e.g. the total value that could
- *actually* be obtained from this Strategy if it were to divest its
- entire position based on current onchain conditions.
-@dev
- Care must be taken in using this function, since it relies on external
- systems, which could be manipulated by the attacker to give an inflated
- (or reduced) value produced by this function, based on current onchain
- conditions (e.g. this function is possible to influence through
- flashloan attacks, oracle manipulations, or other DeFi attack
- mechanisms).
-
- It is up to governance to use this function to correctly order this
- Strategy relative to its peers in the withdrawal queue to minimize
- losses for the Vault based on sudden withdrawals. This value should be
- higher than the total debt of the Strategy and higher than its expected
- value to be "safe".
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| | estimated total assets in this Strategy.
-### isActive
-```solidity
- function isActive(
- ) public returns (bool)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-Perform any Strategy unwinding or other calls necessary to capture the
-"free return" this Strategy has generated since the last time its core
-position(s) were adjusted. Examples include unwrapping extra rewards.
-This call is only used during "normal operation" of a Strategy, and
-should be optimized to minimize losses as much as possible.
-
-This method returns any realized profits and/or realized losses
-incurred, and should return the total amounts of profits/losses/debt
-payments (in `want` tokens) for the Vault's accounting (e.g.
-`want.balanceOf(this) >= _debtPayment + _profit - _loss`).
-
-`_debtOutstanding` will be 0 if the Strategy is not past the configured
-debt limit, otherwise its value will be how far past the debt limit
-the Strategy is. The Strategy's debt limit is configured in the Vault.
-
-NOTE: `_debtPayment` should be less than or equal to `_debtOutstanding`.
- It is okay for it to be less than `_debtOutstanding`, as that
- should only used as a guide for how much is left to pay back.
- Payments should be made to minimize loss from slippage, debt,
- withdrawal fees, etc.
-
-See `vault.debtOutstanding()`.
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-Perform any adjustments to the core position(s) of this Strategy given
-what change the Vault made in the "investable capital" available to the
-Strategy. Note that all "free capital" in the Strategy after the report
-was made is available for reinvestment. Also note that this number
-could be 0, and you should handle that scenario accordingly.
-
-See comments regarding `_debtOutstanding` on `prepareReturn()`.
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-Liquidate up to `_amountNeeded` of `want` of this strategy's positions,
-irregardless of slippage. Any excess will be re-invested with `adjustPosition()`.
-This function should return the amount of `want` tokens made available by the
-liquidation. If there is a difference between them, `_loss` indicates whether the
-difference is due to a realized loss, or if there is some other sitution at play
-(e.g. locked funds) where the amount made available is less than what is needed.
-This function is used during emergency exit instead of `prepareReturn()` to
-liquidate all of the Strategy's positions back to the Vault.
-
-NOTE: The invariant `_liquidatedAmount + _loss <= _amountNeeded` should always be maintained
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `tend()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `tend()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `tend()` is not called
- shortly, then this can return `true` even if the keeper might be
- "at a loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `harvestTrigger()` should never return `true` at the same
- time.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `tend()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `tend()` should be called, `false` otherwise.
-### tend
-```solidity
- function tend(
- ) external
-```
-
- Adjust the Strategy's position. The purpose of tending isn't to
- realize gains, but to maximize yield by reinvesting any returns.
-
- See comments on `adjustPosition()`.
-
- This may only be called by governance, the strategist, or the keeper.
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `harvest()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `harvest()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `harvest()` is not called
- shortly, then this can return `true` even if the keeper might be "at a
- loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `tendTrigger` should never return `true` at the
- same time.
-
- See `maxReportDelay`, `profitFactor`, `debtThreshold` to adjust the
- strategist-controlled parameters that will influence whether this call
- returns `true` or not. These parameters will be used in conjunction
- with the parameters reported to the Vault (see `params`) to determine
- if calling `harvest()` is merited.
-
- It is expected that an external system will check `harvestTrigger()`.
- This could be a script run off a desktop or cloud bot (e.g.
- https://github.com/iearn-finance/yearn-vaults/blob/master/scripts/keep.py),
- or via an integration with the Keep3r network (e.g.
- https://github.com/Macarse/GenericKeep3rV2/blob/master/contracts/keep3r/GenericKeep3rV2.sol).
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `harvest()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `harvest()` should be called, `false` otherwise.
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
- Harvests the Strategy, recognizing any profits or losses and adjusting
- the Strategy's position.
-
- In the rare case the Strategy is in emergency shutdown, this will exit
- the Strategy's position.
-
- This may only be called by governance, the strategist, or the keeper.
-@dev
- When `harvest()` is called, the Strategy reports to the Vault (via
- `vault.report()`), so in some cases `harvest()` must be called in order
- to take in profits, to borrow newly available funds from the Vault, or
- otherwise adjust its position. In other cases `harvest()` must be
- called to report to the Vault on the Strategy's position, especially if
- any losses have occurred.
-
-
-
-### withdraw
-```solidity
- function withdraw(
- uint256 _amountNeeded
- ) external returns (uint256 _loss)
-```
-
- Withdraws `_amountNeeded` to `vault`.
-
- This may only be called by the Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amountNeeded` | uint256 | How much `want` to withdraw.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`_loss`| uint256 | Any realized losses
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-Do anything necessary to prepare this Strategy for migration, such as
-transferring any reserve or LP tokens, CDPs, or other tokens or stores of
-value.
-
-
-
-### migrate
-```solidity
- function migrate(
- address _newStrategy
- ) external
-```
-
- Transfers all `want` from this Strategy to `_newStrategy`.
-
- This may only be called by governance or the Vault.
-@dev
- The new Strategy's Vault must be the same as this Strategy's Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_newStrategy` | address | The Strategy to migrate to.
-
-### setEmergencyExit
-```solidity
- function setEmergencyExit(
- ) external
-```
-
- Activates emergency exit. Once activated, the Strategy will exit its
- position upon the next harvest, depositing all funds into the Vault as
- quickly as is reasonable given onchain conditions.
-
- This may only be called by governance or the strategist.
-@dev
- See `vault.setEmergencyShutdown()` and `harvest()` for further details.
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-Override this to add all tokens/tokenized positions this contract
-manages on a *persistent* basis (e.g. not just for swapping back to
-want ephemerally).
-
-NOTE: Do *not* include `want`, already included in `sweep` below.
-
-Example:
-```solidity
- function protectedTokens() internal override view returns (address[] memory) {
- address[] memory protected = new address[](3);
- protected[0] = tokenA;
- protected[1] = tokenB;
- protected[2] = tokenC;
- return protected;
- }
-```
-
-
-### sweep
-```solidity
- function sweep(
- address _token
- ) external
-```
-
- Removes tokens from this Strategy that are not the type of tokens
- managed by this Strategy. This may be used in case of accidentally
- sending the wrong kind of token to this Strategy.
-
- Tokens will be sent to `governance()`.
-
- This will fail if an attempt is made to sweep `want`, or any tokens
- that are protected by this Strategy.
-
- This may only be called by governance.
-@dev
- Implement `protectedTokens()` to specify any additional tokens that
- should be protected from sweeping in addition to `want`.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_token` | address | The token to transfer out of this vault.
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
-### UpdatedStrategist
-```solidity
- event UpdatedStrategist(
- )
-```
-
-
-
-### UpdatedKeeper
-```solidity
- event UpdatedKeeper(
- )
-```
-
-
-
-### UpdatedRewards
-```solidity
- event UpdatedRewards(
- )
-```
-
-
-
-### UpdatedReportDelay
-```solidity
- event UpdatedReportDelay(
- )
-```
-
-
-
-### UpdatedProfitFactor
-```solidity
- event UpdatedProfitFactor(
- )
-```
-
-
-
-### UpdatedDebtThreshold
-```solidity
- event UpdatedDebtThreshold(
- )
-```
-
-
-
-### EmergencyExitEnabled
-```solidity
- event EmergencyExitEnabled(
- )
-```
-
-
-
-### UpdatedMetadataURI
-```solidity
- event UpdatedMetadataURI(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/StrategyAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/StrategyAPI.md
deleted file mode 100644
index 3ac6fbf6eb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/StrategyAPI.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-This interface is here for the keeper bot to use.
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### vault
-```solidity
- function vault(
- ) external returns (address)
-```
-
-
-
-
-### want
-```solidity
- function want(
- ) external returns (address)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### keeper
-```solidity
- function keeper(
- ) external returns (address)
-```
-
-
-
-
-### isActive
-```solidity
- function isActive(
- ) external returns (bool)
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### tend
-```solidity
- function tend(
- ) external
-```
-
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
-
-
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/VaultAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/VaultAPI.md
deleted file mode 100644
index 79c38cc7c8..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/VaultAPI.md
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### token
-```solidity
- function token(
- ) external returns (address)
-```
-
-
-
-
-### strategies
-```solidity
- function strategies(
- ) external returns (struct StrategyParams)
-```
-
-
-
-
-### creditAvailable
-```solidity
- function creditAvailable(
- ) external returns (uint256)
-```
-View how much the Vault would increase this Strategy's borrow limit,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### debtOutstanding
-```solidity
- function debtOutstanding(
- ) external returns (uint256)
-```
-View how much the Vault would like to pull back from the Strategy,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### expectedReturn
-```solidity
- function expectedReturn(
- ) external returns (uint256)
-```
-View how much the Vault expect this Strategy to return at the current
-block, based on its present performance (since its last report). Can be
-used to determine expectedReturn in your Strategy.
-
-
-
-### report
-```solidity
- function report(
- ) external returns (uint256)
-```
-This is the main contact point where the Strategy interacts with the
-Vault. It is critical that this call is handled as intended by the
-Strategy. Therefore, this function will be called by BaseStrategy to
-make sure the integration is correct.
-
-
-
-### revokeStrategy
-```solidity
- function revokeStrategy(
- ) external
-```
-This function should only be used in the scenario where the Strategy is
-being retired but no migration of the positions are possible, or in the
-extreme scenario that the Strategy needs to be put into "Emergency Exit"
-mode in order for it to exit as quickly as possible. The latter scenario
-could be for any reason that is considered "critical" that the Strategy
-exits its position as fast as possible, such as a sudden change in
-market conditions leading to losses, or an imminent failure in an
-external dependency.
-
-
-
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-View the governance address of the Vault to assert privileged functions
-can only be called by governance. The Strategy serves the Vault, so it
-is subject to governance defined by the Vault.
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/registry.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/registry.md
deleted file mode 100644
index 89aeade483..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/registry.md
+++ /dev/null
@@ -1,321 +0,0 @@
-# Registry.vy
-
-
-
-
-
-
-
-## Functions
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Starts the 1st phase of the governance transfer.
-
-
-*Throws if the caller is not current governance.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The next governance address * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Completes the 2nd phase of the governance transfer.
-
-
-*Throws if the caller is not the pending caller. Emits a `NewGovernance` event.*
-
-
-
-
-
-
-
-### latestRelease
-```solidity
-function latestRelease()
-```
-
-
-Returns the api version of the latest release.
-
-
-*Throws if no releases are registered yet.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The api version of the latest release. * |
-
-
-
-
-
-
-### latestVault
-```solidity
-function latestVault(address)
-```
-
-
-Returns the latest deployed vault for the given token.
-
-
-*Throws if no deployments are endorsed yet for the given token.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token address to find the latest deployment for. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the latest deployment. * |
-
-
-
-
-
-
-### newRelease
-```solidity
-function newRelease(address)
-```
-
-
-Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
-
-
-*Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be used as the template contract for the next release. * |
-
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a deployment for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address)
-```
-
-
-Adds an existing vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address)
-```
-
-
-Set the ability of a particular tagger to tag current vaults.
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address,bool)
-```
-
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### tagVault
-```solidity
-function tagVault(address,string)
-```
-
-
-Tag a Vault with a message.
-
-
-*Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The address to tag with the given `tag` message. * |
-| * tag * | * * | * The message to tag `vault` with. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**NewRelease**
-
-* `release_id` : uint256, *indexed*
-* `template` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewVault**
-
-* `token` : address, *indexed*
-* `deployment_id` : uint256, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewExperimentalVault**
-
-* `token` : address, *indexed*
-* `deployer` : address, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewGovernance**
-
-* `governance` : address, *notIndexed*
-
-**VaultTagged**
-
-* `vault` : address, *notIndexed*
-* `tag` : string, *notIndexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/TestGuestList.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/TestGuestList.md
deleted file mode 100644
index ba34279f4b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/TestGuestList.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-A basic guest list contract for testing.
-
-For a Vyper implementation of this contract containing additional
-functionality, see https://github.com/banteg/guest-list/blob/master/contracts/GuestList.vy
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-Create the test guest list, setting the message sender as
-`bouncer`.
-
-Note that since this is just for testing, you're unable to change
-`bouncer`.
-
-
-### setGuests
-```solidity
- function setGuests(
- address[] _guests,
- bool[] _invited
- ) external
-```
-Invite guests or kick them from the party.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guests` | address[] | The guests to add or update.
-|`_invited` | bool[] | A flag for each guest at the matching index, inviting or
-uninviting the guest.
-
-### authorized
-```solidity
- function authorized(
- address _guest,
- uint256 _amount
- ) external returns (bool)
-```
-Check if a guest with a bag of a certain size is allowed into
-the party.
-
-Note that `_amount` isn't checked to keep test setup simple, since
-from the vault tests' perspective this is a pass/fail call anyway.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guest` | address | The guest's address to check.
-|`_amount` | uint256 | Not used. The amount of tokens the guest is bringing.
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/TestStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/TestStrategy.md
deleted file mode 100644
index 1a9b23da1c..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/TestStrategy.md
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### _takeFunds
-```solidity
- function _takeFunds(
- ) public
-```
-
-
-
-
-### _toggleReentrancyExploit
-```solidity
- function _toggleReentrancyExploit(
- ) public
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-
-
-
-
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/Token.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/Token.md
deleted file mode 100644
index 3ffa0142ca..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/test/Token.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-## Functions
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### _beforeTokenTransfer
-```solidity
- function _beforeTokenTransfer(
- ) internal
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/vault.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/vault.md
deleted file mode 100644
index e10b222132..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.1/vault.md
+++ /dev/null
@@ -1,1328 +0,0 @@
-# Vault.vy
-
-
-**Yearn Token Vault**
-
-
-
-
-
-*Yearn Token Vault. Holds an underlying token, and allows users to interact with the Yearn ecosystem through Strategies connected to the Vault. Vaults are not limited to a single Strategy, they can have as many Strategies as can be designed (however the withdrawal queue is capped at 20.) Deposited funds are moved into the most impactful strategy that has not already reached its limit for assets under management, regardless of which Strategy a user's funds end up in, they receive their portion of yields generated across all Strategies. When a user withdraws, if there are no funds sitting undeployed in the Vault, the Vault withdraws funds from Strategies in the order of least impact. (Funds are taken from the Strategy that will disturb everyone's gains the least, then the next least, etc.) In order to achieve this, the withdrawal queue's order must be properly set and managed by the community (through governance). Vault Strategies are parameterized to pursue the highest risk-adjusted yield. There is an "Emergency Shutdown" mode. When the Vault is put into emergency shutdown, assets will be recalled from the Strategies as quickly as is practical (given onchain conditions), minimizing loss. Deposits are halted, new Strategies may not be added, and each Strategy exits with the minimum possible damage to position, while opening up deposits to be withdrawn by users. There are no restrictions on withdrawals above what is expected under Normal Operation. For further details, please refer to the specification: https://github.com/iearn-finance/yearn-vaults/blob/master/SPECIFICATION.md*
-
-
-## Functions
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string)
-```
-
-
-Initializes the Vault, this is called only once, when the contract is deployed. The performance fee is set to 10% of yield, per Strategy. The management fee is set to 2%, per year. The initial deposit limit is set to 0 (deposits disabled); it must be updated after initialization.
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### apiVersion
-```solidity
-function apiVersion()
-```
-
-
-Used to track the deployed version of this contract. In practice you can use this version number to compare with Yearn's GitHub and determine which version of the source matches this deployed contract.
-
-
-*All strategies must have an `apiVersion()` that matches the Vault's `API_VERSION`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * API_VERSION which holds the current version of this contract. * |
-
-
-
-
-
-
-### setName
-```solidity
-function setName(string)
-```
-
-
-Used to change the value of `name`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * name * | * * | * The new name to use. * |
-
-
-
-
-
-
-
-### setSymbol
-```solidity
-function setSymbol(string)
-```
-
-
-Used to change the value of `symbol`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * symbol * | * * | * The new symbol to use. * |
-
-
-
-
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Nominate a new address to use as governance. The change does not go into effect immediately. This function sets a pending change, and the governance address is not updated until the proposed governance address has accepted the responsibility. This may only be called by the current governance address.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The address requested to take over Vault governance. * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Once a new governance address has been proposed using setGovernance(), this function may be called by the proposed address to accept the responsibility of taking over governance for this contract. This may only be called by the proposed governance address.
-
-
-*setGovernance() should be called by the existing governance address, prior to calling this function.*
-
-
-
-
-
-
-
-### setManagement
-```solidity
-function setManagement(address)
-```
-
-
-Changes the management address. Management is able to make some investment decisions adjusting parameters. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * management * | * * | * The address to use for managing. * |
-
-
-
-
-
-
-
-### setGuestList
-```solidity
-function setGuestList(address)
-```
-
-
-Used to set or change `guestList`. A guest list is another contract that dictates who is allowed to participate in a Vault (and transfer shares). This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guestList * | * * | * The address of the `GuestList` contract to use. * |
-
-
-
-
-
-
-
-### setRewards
-```solidity
-function setRewards(address)
-```
-
-
-Changes the rewards address. Any distributed rewards will cease flowing to the old address and begin flowing to this address once the change is in effect. This will not change any Strategy reports in progress, only new reports made after this change goes into effect. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * rewards * | * * | * The address to use for collecting rewards. * |
-
-
-
-
-
-
-
-### setDepositLimit
-```solidity
-function setDepositLimit(uint256)
-```
-
-
-Changes the maximum amount of tokens that can be deposited in this Vault. Note, this is not how much may be deposited by a single depositor, but the maximum amount that may be deposited across all depositors. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * limit * | * * | * The new deposit limit to use. * |
-
-
-
-
-
-
-
-### setPerformanceFee
-```solidity
-function setPerformanceFee(uint256)
-```
-
-
-Used to change the value of `performanceFee`. Should set this value below the maximum strategist performance fee. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new performance fee to use. * |
-
-
-
-
-
-
-
-### setManagementFee
-```solidity
-function setManagementFee(uint256)
-```
-
-
-Used to change the value of `managementFee`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new management fee to use. * |
-
-
-
-
-
-
-
-### setGuardian
-```solidity
-function setGuardian(address)
-```
-
-
-Used to change the address of `guardian`. This may only be called by governance or the existing guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guardian * | * * | * The new guardian address to use. * |
-
-
-
-
-
-
-
-### setEmergencyShutdown
-```solidity
-function setEmergencyShutdown(bool)
-```
-
-
-Activates or deactivates Vault mode where all Strategies go into full withdrawal. During Emergency Shutdown: 1. No Users may deposit into the Vault (but may withdraw as usual.) 2. Governance may not add new Strategies. 3. Each Strategy must pay back their debt as quickly as reasonable to minimally affect their position. 4. Only Governance may undo Emergency Shutdown. See contract level note for further details. This may only be called by governance or the guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * active * | * * | * If true, the Vault goes into Emergency Shutdown. If false, the Vault goes back into Normal Operation. * |
-
-
-
-
-
-
-
-### setWithdrawalQueue
-```solidity
-function setWithdrawalQueue(address[20])
-```
-
-
-Updates the withdrawalQueue to match the addresses and order specified by `queue`. There can be fewer strategies than the maximum, as well as fewer than the total number of strategies active in the vault. `withdrawalQueue` will be updated in a gas-efficient manner, assuming the input is well- ordered with 0x0 only at the end. This may only be called by governance or management.
-
-
-*This is order sensitive, specify the addresses in the order in which funds should be withdrawn (so `queue`[0] is the first Strategy withdrawn from, `queue`[1] is the second, etc.) This means that the least impactful Strategy (the Strategy that will have its core positions impacted the least by having funds removed) should be at `queue`[0], then the next least impactful at `queue`[1], and so on.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * queue * | * * | * The array of addresses to use as the new withdrawal queue. This is order sensitive. * |
-
-
-
-
-
-
-
-### transfer
-```solidity
-function transfer(address,uint256)
-```
-
-
-Transfers shares from the caller's address to `receiver`. This function will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### transferFrom
-```solidity
-function transferFrom(address,address,uint256)
-```
-
-
-Transfers `amount` shares from `sender` to `receiver`. This operation will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0. Unless the caller has given this contract unlimited approval, transfering shares will decrement the caller's `allowance` by `amount`.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * sender * | * * | * The address shares are being transferred from. * |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### approve
-```solidity
-function approve(address,uint256)
-```
-
-
-
-*Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-
-
-
-
-
-
-
-### increaseAllowance
-```solidity
-function increaseAllowance(address,uint256)
-```
-
-
-
-*Increase the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to increase the allowance by. * |
-
-
-
-
-
-
-
-### decreaseAllowance
-```solidity
-function decreaseAllowance(address,uint256)
-```
-
-
-
-*Decrease the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to decrease the allowance by. * |
-
-
-
-
-
-
-
-### permit
-```solidity
-function permit(address,address,uint256,uint256,bytes)
-```
-
-
-Approves spender by owner's signature to expend owner's tokens. See https://eips.ethereum.org/EIPS/eip-2612.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * owner * | * * | * The address which is a source of funds and has signed the Permit. * |
-| * spender * | * * | * The address which is allowed to spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-| * expiry * | * * | * The timestamp after which the Permit is no longer valid. * |
-| * signature * | * * | * A valid secp256k1 signature of Permit by owner encoded as r, s, v. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True, if transaction completes successfully * |
-
-
-
-
-
-
-### totalAssets
-```solidity
-function totalAssets()
-```
-
-
-Returns the total quantity of all assets under control of this Vault, whether they're loaned out to a Strategy, or currently held in the Vault.
-
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total assets under control of this Vault. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit()
-```
-
-
-Deposits `_amount` `token`, issuing shares to `recipient`. If the Vault is in Emergency Shutdown, deposits will not be accepted and this call will fail.
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256,address)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### maxAvailableShares
-```solidity
-function maxAvailableShares()
-```
-
-
-Determines the maximum quantity of shares this Vault can facilitate a withdrawal for, factoring in assets currently residing in the Vault, as well as those deployed to strategies on the Vault's balance sheet.
-
-
-*Regarding how shares are calculated, see dev note on `deposit`. If you want to calculated the maximum a user could withdraw up to, you want to use this function. Note that the amount provided by this function is the theoretical maximum possible from withdrawing, the real amount depends on the realized losses incurred during withdrawal.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total quantity of shares this Vault can provide. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw()
-```
-
-
-Withdraws the calling account's tokens from this Vault, redeeming amount `_shares` for an appropriate amount of tokens. See note on `setWithdrawalQueue` for further details of withdrawal ordering and behavior.
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address,uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### pricePerShare
-```solidity
-function pricePerShare()
-```
-
-
-Gives the price for a single Vault share.
-
-
-*See dev note on `withdraw`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The value of a single share. * |
-
-
-
-
-
-
-### addStrategy
-```solidity
-function addStrategy(address,uint256,uint256,uint256)
-```
-
-
-Add a Strategy to the Vault. This may only be called by governance.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The address of the Strategy to add. * |
-| * debtRatio * | * * | * The share of the total assets in the `vault that the `strategy` has access to. * |
-| * rateLimit * | * * | * Limit on the increase of debt per unit time since last harvest * |
-| * performanceFee * | * * | * The fee the strategist will receive based on this Vault's performance. * |
-
-
-
-
-
-
-
-### updateStrategyDebtRatio
-```solidity
-function updateStrategyDebtRatio(address,uint256)
-```
-
-
-Change the quantity of assets `strategy` may manage. This may be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * debtRatio * | * * | * The quantity of assets `strategy` may now manage. * |
-
-
-
-
-
-
-
-### updateStrategyRateLimit
-```solidity
-function updateStrategyRateLimit(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * rateLimit * | * * | * Limit on the increase of debt per unit time since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyPerformanceFee
-```solidity
-function updateStrategyPerformanceFee(address,uint256)
-```
-
-
-Change the fee the strategist will receive based on this Vault's performance. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * performanceFee * | * * | * The new fee the strategist will receive. * |
-
-
-
-
-
-
-
-### migrateStrategy
-```solidity
-function migrateStrategy(address,address)
-```
-
-
-Migrates a Strategy, including all assets from `oldVersion` to `newVersion`. This may only be called by governance.
-
-
-*Strategy must successfully migrate all capital and positions to new Strategy, or else this will upset the balance of the Vault. The new Strategy should be "empty" e.g. have no prior commitments to this Vault, otherwise it could have issues.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * oldVersion * | * * | * The existing Strategy to migrate from. * |
-| * newVersion * | * * | * The new Strategy to migrate to. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy()
-```
-
-
-Revoke a Strategy, setting its debt limit to 0 and preventing any future deposits. This function should only be used in the scenario where the Strategy is being retired but no migration of the positions are possible, or in the extreme scenario that the Strategy needs to be put into "Emergency Exit" mode in order for it to exit as quickly as possible. The latter scenario could be for any reason that is considered "critical" that the Strategy exits its position as fast as possible, such as a sudden change in market conditions leading to losses, or an imminent failure in an external dependency. This may only be called by governance, the guardian, or the Strategy itself. Note that a Strategy will only revoke itself during emergency shutdown.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### addStrategyToQueue
-```solidity
-function addStrategyToQueue(address)
-```
-
-
-Adds `strategy` to `withdrawalQueue`. This may only be called by governance or management.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to add. * |
-
-
-
-
-
-
-
-### removeStrategyFromQueue
-```solidity
-function removeStrategyFromQueue(address)
-```
-
-
-Remove `strategy` from `withdrawalQueue`. This may only be called by governance or management.
-
-
-*We don't do this with revokeStrategy because it should still be possible to withdraw from the Strategy if it's unwinding.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to remove. * |
-
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding()
-```
-
-
-Determines if `strategy` is past its debt limit and if any tokens should be withdrawn to the Vault.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable()
-```
-
-
-Amount of tokens in Vault a Strategy has access to as a credit line. This will check the Strategy's debt limit, as well as the tokens available in the Vault, and determine the maximum amount of tokens (if any) the Strategy may draw on. In the rare case the Vault is in emergency shutdown this will return 0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn()
-```
-
-
-Provide an accurate expected value for the return this `strategy` would provide to the Vault the next time `report()` is called (since the last time it was called).
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### report
-```solidity
-function report(uint256,uint256,uint256)
-```
-
-
-Reports the amount of assets the calling Strategy has free (usually in terms of ROI). The performance fee is determined here, off of the strategy's profits (if any), and sent to governance. The strategist's fee is also determined here (off of profits), to be handled according to the strategist on the next harvest. This may only be called by a Strategy managed by this Vault.
-
-
-*For approved strategies, this is the most efficient behavior. The Strategy reports back what it has free, then Vault "decides" whether to take some back or give it more. Note that the most it can take is `gain + _debtPayment`, and the most it can give is all of the remaining reserves. Anything outside of those bounds is abnormal behavior. All approved strategies must have increased diligence around calling this function, as abnormal behavior could become catastrophic.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * gain * | * * | * Amount Strategy has realized as a gain on its investment since its last report, and is free to be given back to Vault as earnings * |
-| * loss * | * * | * Amount Strategy has realized as a loss on its investment since its last report, and should be accounted for on the Vault's balance sheet * |
-| * _debtPayment * | * * | * Amount Strategy has made available to cover outstanding debt * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * Amount of debt outstanding (if totalDebt > debtLimit or emergency shutdown). * |
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address)
-```
-
-
-Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault. Tokens will be sent to `governance`. This will fail if an attempt is made to sweep the tokens that this Vault manages. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address,uint256)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**Transfer**
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**Approval**
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**StrategyAdded**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-* `rateLimit` : uint256, *notIndexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyReported**
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `debtPaid` : uint256, *notIndexed*
-* `totalGain` : uint256, *notIndexed*
-* `totalLoss` : uint256, *notIndexed*
-* `totalDebt` : uint256, *notIndexed*
-* `debtAdded` : uint256, *notIndexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**UpdateGovernance**
-
-* `governance` : address, *notIndexed*
-
-**UpdateManagement**
-
-* `management` : address, *notIndexed*
-
-**UpdateGuestList**
-
-* `guestList` : address, *notIndexed*
-
-**UpdateRewards**
-
-* `rewards` : address, *notIndexed*
-
-**UpdateDepositLimit**
-
-* `depositLimit` : uint256, *notIndexed*
-
-**UpdatePerformanceFee**
-
-* `performanceFee` : uint256, *notIndexed*
-
-**UpdateManagementFee**
-
-* `managementFee` : uint256, *notIndexed*
-
-**UpdateGuardian**
-
-* `guardian` : address, *notIndexed*
-
-**EmergencyShutdown**
-
-* `active` : bool, *notIndexed*
-
-**UpdateWithdrawalQueue**
-
-* `queue` : address[20], *notIndexed*
-
-**StrategyUpdateDebtRatio**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**StrategyUpdateRateLimit**
-
-* `strategy` : address, *indexed*
-* `rateLimit` : uint256, *notIndexed*
-
-**StrategyUpdatePerformanceFee**
-
-* `strategy` : address, *indexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyMigrated**
-
-* `oldVersion` : address, *indexed*
-* `newVersion` : address, *indexed*
-
-**StrategyRevoked**
-
-* `strategy` : address, *indexed*
-
-**StrategyRemovedFromQueue**
-
-* `strategy` : address, *indexed*
-
-**StrategyAddedToQueue**
-
-* `strategy` : address, *indexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/BaseStrategy.md
deleted file mode 100644
index 8c4d3eb562..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/BaseStrategy.md
+++ /dev/null
@@ -1,671 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) public returns (string)
-```
-
- Used to track which version of `StrategyAPI` this Strategy
- implements.
-
-The Strategy's version must match the Vault's `API_VERSION`.
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`A`| | string which holds the current API version of this contract.
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-This Strategy's name.
-@dev
- You can use this field to manage the "version" of this Strategy, e.g.
- `StrategySomethingOrOtherV1`. However, "API Version" is managed by
- `apiVersion()` function above.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`This`| | Strategy's name.
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
- The amount (priced in want) of the total assets managed by this strategy should not count
- towards Yearn's TVL calculations.
-@dev
- You can override this field to set it to a non-zero value if some of the assets of this
- Strategy is somehow delegated inside another part of Yearn's ecosystem e.g. another Vault.
- Note that this value must be strictly less than or equal to the amount provided by
- `estimatedTotalAssets()` below, as the TVL calc will be total assets minus delegated assets.
-@return
- The amount of assets this strategy manages that should not be included in Yearn's Total Value
- Locked (TVL) calculation across it's ecosystem.
-
-
-
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _initialize
-```solidity
- function _initialize(
- address _vault
- ) internal
-```
-
- Initializes the Strategy, this is called only once, when the
- contract is deployed.
-
-`_vault` should implement `VaultAPI`.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_vault` | address | The address of the Vault responsible for this Strategy.
-
-### setStrategist
-```solidity
- function setStrategist(
- address _strategist
- ) external
-```
-
- Used to change `strategist`.
-
- This may only be called by governance or the existing strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_strategist` | address | The new address to assign as `strategist`.
-
-### setKeeper
-```solidity
- function setKeeper(
- address _keeper
- ) external
-```
-
- Used to change `keeper`.
-
- `keeper` is the only address that may call `tend()` or `harvest()`,
- other than `governance()` or `strategist`. However, unlike
- `governance()` or `strategist`, `keeper` may *only* call `tend()`
- and `harvest()`, and no other authorized functions, following the
- principle of least privilege.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_keeper` | address | The new address to assign as `keeper`.
-
-### setRewards
-```solidity
- function setRewards(
- address _rewards
- ) external
-```
-
- Used to change `rewards`. EOA or smart contract which has the permission
- to pull rewards from the vault.
-
- This may only be called by the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_rewards` | address | The address to use for pulling rewards.
-
-### setMinReportDelay
-```solidity
- function setMinReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `minReportDelay`. `minReportDelay` is the minimum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the minimum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The minimum number of seconds to wait between harvests.
-
-### setMaxReportDelay
-```solidity
- function setMaxReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `maxReportDelay`. `maxReportDelay` is the maximum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the maximum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The maximum number of seconds to wait between harvests.
-
-### setProfitFactor
-```solidity
- function setProfitFactor(
- uint256 _profitFactor
- ) external
-```
-
- Used to change `profitFactor`. `profitFactor` is used to determine
- if it's worthwhile to harvest, given gas costs. (See `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_profitFactor` | uint256 | A ratio to multiply anticipated
-`harvest()` gas cost against.
-
-### setDebtThreshold
-```solidity
- function setDebtThreshold(
- uint256 _debtThreshold
- ) external
-```
-
- Sets how far the Strategy can go into loss without a harvest and report
- being required.
-
- By default this is 0, meaning any losses would cause a harvest which
- will subsequently report the loss to the Vault for tracking. (See
- `harvestTrigger()` for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_debtThreshold` | uint256 | How big of a loss this Strategy may carry without
-being required to report to the Vault.
-
-### setMetadataURI
-```solidity
- function setMetadataURI(
- string _metadataURI
- ) external
-```
-
- Used to change `metadataURI`. `metadataURI` is used to store the URI
-of the file describing the strategy.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_metadataURI` | string | The URI that describe the strategy.
-
-### governance
-```solidity
- function governance(
- ) internal returns (address)
-```
-Resolve governance address from Vault contract, used to make assertions
-on protected functions in the Strategy.
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
- Provide an accurate estimate for the total amount of assets
- (principle + return) that this Strategy is currently managing,
- denominated in terms of `want` tokens.
-
- This total should be "realizable" e.g. the total value that could
- *actually* be obtained from this Strategy if it were to divest its
- entire position based on current onchain conditions.
-@dev
- Care must be taken in using this function, since it relies on external
- systems, which could be manipulated by the attacker to give an inflated
- (or reduced) value produced by this function, based on current onchain
- conditions (e.g. this function is possible to influence through
- flashloan attacks, oracle manipulations, or other DeFi attack
- mechanisms).
-
- It is up to governance to use this function to correctly order this
- Strategy relative to its peers in the withdrawal queue to minimize
- losses for the Vault based on sudden withdrawals. This value should be
- higher than the total debt of the Strategy and higher than its expected
- value to be "safe".
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| | estimated total assets in this Strategy.
-### isActive
-```solidity
- function isActive(
- ) public returns (bool)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-Perform any Strategy unwinding or other calls necessary to capture the
-"free return" this Strategy has generated since the last time its core
-position(s) were adjusted. Examples include unwrapping extra rewards.
-This call is only used during "normal operation" of a Strategy, and
-should be optimized to minimize losses as much as possible.
-
-This method returns any realized profits and/or realized losses
-incurred, and should return the total amounts of profits/losses/debt
-payments (in `want` tokens) for the Vault's accounting (e.g.
-`want.balanceOf(this) >= _debtPayment + _profit - _loss`).
-
-`_debtOutstanding` will be 0 if the Strategy is not past the configured
-debt limit, otherwise its value will be how far past the debt limit
-the Strategy is. The Strategy's debt limit is configured in the Vault.
-
-NOTE: `_debtPayment` should be less than or equal to `_debtOutstanding`.
- It is okay for it to be less than `_debtOutstanding`, as that
- should only used as a guide for how much is left to pay back.
- Payments should be made to minimize loss from slippage, debt,
- withdrawal fees, etc.
-
-See `vault.debtOutstanding()`.
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-Perform any adjustments to the core position(s) of this Strategy given
-what change the Vault made in the "investable capital" available to the
-Strategy. Note that all "free capital" in the Strategy after the report
-was made is available for reinvestment. Also note that this number
-could be 0, and you should handle that scenario accordingly.
-
-See comments regarding `_debtOutstanding` on `prepareReturn()`.
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-Liquidate up to `_amountNeeded` of `want` of this strategy's positions,
-irregardless of slippage. Any excess will be re-invested with `adjustPosition()`.
-This function should return the amount of `want` tokens made available by the
-liquidation. If there is a difference between them, `_loss` indicates whether the
-difference is due to a realized loss, or if there is some other sitution at play
-(e.g. locked funds) where the amount made available is less than what is needed.
-This function is used during emergency exit instead of `prepareReturn()` to
-liquidate all of the Strategy's positions back to the Vault.
-
-NOTE: The invariant `_liquidatedAmount + _loss <= _amountNeeded` should always be maintained
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `tend()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `tend()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `tend()` is not called
- shortly, then this can return `true` even if the keeper might be
- "at a loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `harvestTrigger()` should never return `true` at the same
- time.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `tend()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `tend()` should be called, `false` otherwise.
-### tend
-```solidity
- function tend(
- ) external
-```
-
- Adjust the Strategy's position. The purpose of tending isn't to
- realize gains, but to maximize yield by reinvesting any returns.
-
- See comments on `adjustPosition()`.
-
- This may only be called by governance, the strategist, or the keeper.
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `harvest()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `harvest()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `harvest()` is not called
- shortly, then this can return `true` even if the keeper might be "at a
- loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `tendTrigger` should never return `true` at the
- same time.
-
- See `min/maxReportDelay`, `profitFactor`, `debtThreshold` to adjust the
- strategist-controlled parameters that will influence whether this call
- returns `true` or not. These parameters will be used in conjunction
- with the parameters reported to the Vault (see `params`) to determine
- if calling `harvest()` is merited.
-
- It is expected that an external system will check `harvestTrigger()`.
- This could be a script run off a desktop or cloud bot (e.g.
- https://github.com/iearn-finance/yearn-vaults/blob/master/scripts/keep.py),
- or via an integration with the Keep3r network (e.g.
- https://github.com/Macarse/GenericKeep3rV2/blob/master/contracts/keep3r/GenericKeep3rV2.sol).
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `harvest()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `harvest()` should be called, `false` otherwise.
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
- Harvests the Strategy, recognizing any profits or losses and adjusting
- the Strategy's position.
-
- In the rare case the Strategy is in emergency shutdown, this will exit
- the Strategy's position.
-
- This may only be called by governance, the strategist, or the keeper.
-@dev
- When `harvest()` is called, the Strategy reports to the Vault (via
- `vault.report()`), so in some cases `harvest()` must be called in order
- to take in profits, to borrow newly available funds from the Vault, or
- otherwise adjust its position. In other cases `harvest()` must be
- called to report to the Vault on the Strategy's position, especially if
- any losses have occurred.
-
-
-
-### withdraw
-```solidity
- function withdraw(
- uint256 _amountNeeded
- ) external returns (uint256 _loss)
-```
-
- Withdraws `_amountNeeded` to `vault`.
-
- This may only be called by the Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amountNeeded` | uint256 | How much `want` to withdraw.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`_loss`| uint256 | Any realized losses
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-Do anything necessary to prepare this Strategy for migration, such as
-transferring any reserve or LP tokens, CDPs, or other tokens or stores of
-value.
-
-
-
-### migrate
-```solidity
- function migrate(
- address _newStrategy
- ) external
-```
-
- Transfers all `want` from this Strategy to `_newStrategy`.
-
- This may only be called by governance or the Vault.
-@dev
- The new Strategy's Vault must be the same as this Strategy's Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_newStrategy` | address | The Strategy to migrate to.
-
-### setEmergencyExit
-```solidity
- function setEmergencyExit(
- ) external
-```
-
- Activates emergency exit. Once activated, the Strategy will exit its
- position upon the next harvest, depositing all funds into the Vault as
- quickly as is reasonable given onchain conditions.
-
- This may only be called by governance or the strategist.
-@dev
- See `vault.setEmergencyShutdown()` and `harvest()` for further details.
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-Override this to add all tokens/tokenized positions this contract
-manages on a *persistent* basis (e.g. not just for swapping back to
-want ephemerally).
-
-NOTE: Do *not* include `want`, already included in `sweep` below.
-
-Example:
-```solidity
- function protectedTokens() internal override view returns (address[] memory) {
- address[] memory protected = new address[](3);
- protected[0] = tokenA;
- protected[1] = tokenB;
- protected[2] = tokenC;
- return protected;
- }
-```
-
-
-### sweep
-```solidity
- function sweep(
- address _token
- ) external
-```
-
- Removes tokens from this Strategy that are not the type of tokens
- managed by this Strategy. This may be used in case of accidentally
- sending the wrong kind of token to this Strategy.
-
- Tokens will be sent to `governance()`.
-
- This will fail if an attempt is made to sweep `want`, or any tokens
- that are protected by this Strategy.
-
- This may only be called by governance.
-@dev
- Implement `protectedTokens()` to specify any additional tokens that
- should be protected from sweeping in addition to `want`.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_token` | address | The token to transfer out of this vault.
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
-### UpdatedStrategist
-```solidity
- event UpdatedStrategist(
- )
-```
-
-
-
-### UpdatedKeeper
-```solidity
- event UpdatedKeeper(
- )
-```
-
-
-
-### UpdatedRewards
-```solidity
- event UpdatedRewards(
- )
-```
-
-
-
-### UpdatedMinReportDelay
-```solidity
- event UpdatedMinReportDelay(
- )
-```
-
-
-
-### UpdatedMaxReportDelay
-```solidity
- event UpdatedMaxReportDelay(
- )
-```
-
-
-
-### UpdatedProfitFactor
-```solidity
- event UpdatedProfitFactor(
- )
-```
-
-
-
-### UpdatedDebtThreshold
-```solidity
- event UpdatedDebtThreshold(
- )
-```
-
-
-
-### EmergencyExitEnabled
-```solidity
- event EmergencyExitEnabled(
- )
-```
-
-
-
-### UpdatedMetadataURI
-```solidity
- event UpdatedMetadataURI(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/BaseStrategyInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/BaseStrategyInitializable.md
deleted file mode 100644
index 7212bf255e..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/BaseStrategyInitializable.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### initialize
-```solidity
- function initialize(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/StrategyAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/StrategyAPI.md
deleted file mode 100644
index 3ac6fbf6eb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/StrategyAPI.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-This interface is here for the keeper bot to use.
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### vault
-```solidity
- function vault(
- ) external returns (address)
-```
-
-
-
-
-### want
-```solidity
- function want(
- ) external returns (address)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### keeper
-```solidity
- function keeper(
- ) external returns (address)
-```
-
-
-
-
-### isActive
-```solidity
- function isActive(
- ) external returns (bool)
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### tend
-```solidity
- function tend(
- ) external
-```
-
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
-
-
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/VaultAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/VaultAPI.md
deleted file mode 100644
index 2b0a9cc757..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/VaultAPI.md
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### token
-```solidity
- function token(
- ) external returns (address)
-```
-
-
-
-
-### strategies
-```solidity
- function strategies(
- ) external returns (struct StrategyParams)
-```
-
-
-
-
-### creditAvailable
-```solidity
- function creditAvailable(
- ) external returns (uint256)
-```
-View how much the Vault would increase this Strategy's borrow limit,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### debtOutstanding
-```solidity
- function debtOutstanding(
- ) external returns (uint256)
-```
-View how much the Vault would like to pull back from the Strategy,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### expectedReturn
-```solidity
- function expectedReturn(
- ) external returns (uint256)
-```
-View how much the Vault expect this Strategy to return at the current
-block, based on its present performance (since its last report). Can be
-used to determine expectedReturn in your Strategy.
-
-
-
-### report
-```solidity
- function report(
- ) external returns (uint256)
-```
-This is the main contact point where the Strategy interacts with the
-Vault. It is critical that this call is handled as intended by the
-Strategy. Therefore, this function will be called by BaseStrategy to
-make sure the integration is correct.
-
-
-
-### revokeStrategy
-```solidity
- function revokeStrategy(
- ) external
-```
-This function should only be used in the scenario where the Strategy is
-being retired but no migration of the positions are possible, or in the
-extreme scenario that the Strategy needs to be put into "Emergency Exit"
-mode in order for it to exit as quickly as possible. The latter scenario
-could be for any reason that is considered "critical" that the Strategy
-exits its position as fast as possible, such as a sudden change in
-market conditions leading to losses, or an imminent failure in an
-external dependency.
-
-
-
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-View the governance address of the Vault to assert privileged functions
-can only be called by governance. The Strategy serves the Vault, so it
-is subject to governance defined by the Vault.
-
-
-
-### management
-```solidity
- function management(
- ) external returns (address)
-```
-View the management address of the Vault to assert privileged functions
-can only be called by management. The Strategy serves the Vault, so it
-is subject to management defined by the Vault.
-
-
-
-### guardian
-```solidity
- function guardian(
- ) external returns (address)
-```
-View the guardian address of the Vault to assert privileged functions
-can only be called by guardian. The Strategy serves the Vault, so it
-is subject to guardian defined by the Vault.
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/registry.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/registry.md
deleted file mode 100644
index 89aeade483..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/registry.md
+++ /dev/null
@@ -1,321 +0,0 @@
-# Registry.vy
-
-
-
-
-
-
-
-## Functions
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Starts the 1st phase of the governance transfer.
-
-
-*Throws if the caller is not current governance.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The next governance address * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Completes the 2nd phase of the governance transfer.
-
-
-*Throws if the caller is not the pending caller. Emits a `NewGovernance` event.*
-
-
-
-
-
-
-
-### latestRelease
-```solidity
-function latestRelease()
-```
-
-
-Returns the api version of the latest release.
-
-
-*Throws if no releases are registered yet.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The api version of the latest release. * |
-
-
-
-
-
-
-### latestVault
-```solidity
-function latestVault(address)
-```
-
-
-Returns the latest deployed vault for the given token.
-
-
-*Throws if no deployments are endorsed yet for the given token.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token address to find the latest deployment for. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the latest deployment. * |
-
-
-
-
-
-
-### newRelease
-```solidity
-function newRelease(address)
-```
-
-
-Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
-
-
-*Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be used as the template contract for the next release. * |
-
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a deployment for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address)
-```
-
-
-Adds an existing vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address)
-```
-
-
-Set the ability of a particular tagger to tag current vaults.
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address,bool)
-```
-
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### tagVault
-```solidity
-function tagVault(address,string)
-```
-
-
-Tag a Vault with a message.
-
-
-*Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The address to tag with the given `tag` message. * |
-| * tag * | * * | * The message to tag `vault` with. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**NewRelease**
-
-* `release_id` : uint256, *indexed*
-* `template` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewVault**
-
-* `token` : address, *indexed*
-* `deployment_id` : uint256, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewExperimentalVault**
-
-* `token` : address, *indexed*
-* `deployer` : address, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewGovernance**
-
-* `governance` : address, *notIndexed*
-
-**VaultTagged**
-
-* `vault` : address, *notIndexed*
-* `tag` : string, *notIndexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/TestGuestList.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/TestGuestList.md
deleted file mode 100644
index ba34279f4b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/TestGuestList.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-A basic guest list contract for testing.
-
-For a Vyper implementation of this contract containing additional
-functionality, see https://github.com/banteg/guest-list/blob/master/contracts/GuestList.vy
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-Create the test guest list, setting the message sender as
-`bouncer`.
-
-Note that since this is just for testing, you're unable to change
-`bouncer`.
-
-
-### setGuests
-```solidity
- function setGuests(
- address[] _guests,
- bool[] _invited
- ) external
-```
-Invite guests or kick them from the party.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guests` | address[] | The guests to add or update.
-|`_invited` | bool[] | A flag for each guest at the matching index, inviting or
-uninviting the guest.
-
-### authorized
-```solidity
- function authorized(
- address _guest,
- uint256 _amount
- ) external returns (bool)
-```
-Check if a guest with a bag of a certain size is allowed into
-the party.
-
-Note that `_amount` isn't checked to keep test setup simple, since
-from the vault tests' perspective this is a pass/fail call anyway.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guest` | address | The guest's address to check.
-|`_amount` | uint256 | Not used. The amount of tokens the guest is bringing.
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/TestStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/TestStrategy.md
deleted file mode 100644
index 1a9b23da1c..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/TestStrategy.md
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### _takeFunds
-```solidity
- function _takeFunds(
- ) public
-```
-
-
-
-
-### _toggleReentrancyExploit
-```solidity
- function _toggleReentrancyExploit(
- ) public
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-
-
-
-
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/Token.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/Token.md
deleted file mode 100644
index b76f7cbca8..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/test/Token.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-## Functions
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### _beforeTokenTransfer
-```solidity
- function _beforeTokenTransfer(
- ) internal
-```
-
-
-
-
-### transferWithoutReturn
-```solidity
- function transferWithoutReturn(
- ) public
-```
-
-
-
-
-### transferFromWithoutReturn
-```solidity
- function transferFromWithoutReturn(
- ) public
-```
-
-
-
-
-### approveWithoutReturn
-```solidity
- function approveWithoutReturn(
- ) public
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/utils/ProxyFactoryInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/utils/ProxyFactoryInitializable.md
deleted file mode 100644
index 7d1fd7ea2a..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/utils/ProxyFactoryInitializable.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-## Functions
-### deployMinimal
-```solidity
- function deployMinimal(
- ) external returns (address proxy, bytes returnData)
-```
-
-
-
-
-### _getRevertMsg
-```solidity
- function _getRevertMsg(
- bytes _res
- ) internal returns (string)
-```
-This is needed in order to get the human-readable revert message from a call
-
-Get the revert message from a call
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_res` | bytes | Response of the call
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`Revert`| bytes | message string
-### slice
-```solidity
- function slice(
- ) internal returns (bytes)
-```
-
-
-
-
-## Events
-### ProxyCreated
-```solidity
- event ProxyCreated(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/vault.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/vault.md
deleted file mode 100644
index 45d9718229..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.2/vault.md
+++ /dev/null
@@ -1,1378 +0,0 @@
-# Vault.vy
-
-
-**Yearn Token Vault**
-
-
-
-
-
-*Yearn Token Vault. Holds an underlying token, and allows users to interact with the Yearn ecosystem through Strategies connected to the Vault. Vaults are not limited to a single Strategy, they can have as many Strategies as can be designed (however the withdrawal queue is capped at 20.) Deposited funds are moved into the most impactful strategy that has not already reached its limit for assets under management, regardless of which Strategy a user's funds end up in, they receive their portion of yields generated across all Strategies. When a user withdraws, if there are no funds sitting undeployed in the Vault, the Vault withdraws funds from Strategies in the order of least impact. (Funds are taken from the Strategy that will disturb everyone's gains the least, then the next least, etc.) In order to achieve this, the withdrawal queue's order must be properly set and managed by the community (through governance). Vault Strategies are parameterized to pursue the highest risk-adjusted yield. There is an "Emergency Shutdown" mode. When the Vault is put into emergency shutdown, assets will be recalled from the Strategies as quickly as is practical (given onchain conditions), minimizing loss. Deposits are halted, new Strategies may not be added, and each Strategy exits with the minimum possible damage to position, while opening up deposits to be withdrawn by users. There are no restrictions on withdrawals above what is expected under Normal Operation. For further details, please refer to the specification: https://github.com/iearn-finance/yearn-vaults/blob/master/SPECIFICATION.md*
-
-
-## Functions
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string)
-```
-
-
-Initializes the Vault, this is called only once, when the contract is deployed. The performance fee is set to 10% of yield, per Strategy. The management fee is set to 2%, per year. The initial deposit limit is set to 0 (deposits disabled); it must be updated after initialization.
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### apiVersion
-```solidity
-function apiVersion()
-```
-
-
-Used to track the deployed version of this contract. In practice you can use this version number to compare with Yearn's GitHub and determine which version of the source matches this deployed contract.
-
-
-*All strategies must have an `apiVersion()` that matches the Vault's `API_VERSION`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * API_VERSION which holds the current version of this contract. * |
-
-
-
-
-
-
-### setName
-```solidity
-function setName(string)
-```
-
-
-Used to change the value of `name`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * name * | * * | * The new name to use. * |
-
-
-
-
-
-
-
-### setSymbol
-```solidity
-function setSymbol(string)
-```
-
-
-Used to change the value of `symbol`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * symbol * | * * | * The new symbol to use. * |
-
-
-
-
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Nominate a new address to use as governance. The change does not go into effect immediately. This function sets a pending change, and the governance address is not updated until the proposed governance address has accepted the responsibility. This may only be called by the current governance address.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The address requested to take over Vault governance. * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Once a new governance address has been proposed using setGovernance(), this function may be called by the proposed address to accept the responsibility of taking over governance for this contract. This may only be called by the proposed governance address.
-
-
-*setGovernance() should be called by the existing governance address, prior to calling this function.*
-
-
-
-
-
-
-
-### setManagement
-```solidity
-function setManagement(address)
-```
-
-
-Changes the management address. Management is able to make some investment decisions adjusting parameters. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * management * | * * | * The address to use for managing. * |
-
-
-
-
-
-
-
-### setGuestList
-```solidity
-function setGuestList(address)
-```
-
-
-Used to set or change `guestList`. A guest list is another contract that dictates who is allowed to participate in a Vault (and transfer shares). This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guestList * | * * | * The address of the `GuestList` contract to use. * |
-
-
-
-
-
-
-
-### setRewards
-```solidity
-function setRewards(address)
-```
-
-
-Changes the rewards address. Any distributed rewards will cease flowing to the old address and begin flowing to this address once the change is in effect. This will not change any Strategy reports in progress, only new reports made after this change goes into effect. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * rewards * | * * | * The address to use for collecting rewards. * |
-
-
-
-
-
-
-
-### setLockedProfitDegration
-```solidity
-function setLockedProfitDegration(uint256)
-```
-
-
-Changes the locked profit degration.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * degration * | * * | * The rate of degration in percent per second scaled to 1e18. * |
-
-
-
-
-
-
-
-### setDepositLimit
-```solidity
-function setDepositLimit(uint256)
-```
-
-
-Changes the maximum amount of tokens that can be deposited in this Vault. Note, this is not how much may be deposited by a single depositor, but the maximum amount that may be deposited across all depositors. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * limit * | * * | * The new deposit limit to use. * |
-
-
-
-
-
-
-
-### setPerformanceFee
-```solidity
-function setPerformanceFee(uint256)
-```
-
-
-Used to change the value of `performanceFee`. Should set this value below the maximum strategist performance fee. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new performance fee to use. * |
-
-
-
-
-
-
-
-### setManagementFee
-```solidity
-function setManagementFee(uint256)
-```
-
-
-Used to change the value of `managementFee`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new management fee to use. * |
-
-
-
-
-
-
-
-### setGuardian
-```solidity
-function setGuardian(address)
-```
-
-
-Used to change the address of `guardian`. This may only be called by governance or the existing guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guardian * | * * | * The new guardian address to use. * |
-
-
-
-
-
-
-
-### setEmergencyShutdown
-```solidity
-function setEmergencyShutdown(bool)
-```
-
-
-Activates or deactivates Vault mode where all Strategies go into full withdrawal. During Emergency Shutdown: 1. No Users may deposit into the Vault (but may withdraw as usual.) 2. Governance may not add new Strategies. 3. Each Strategy must pay back their debt as quickly as reasonable to minimally affect their position. 4. Only Governance may undo Emergency Shutdown. See contract level note for further details. This may only be called by governance or the guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * active * | * * | * If true, the Vault goes into Emergency Shutdown. If false, the Vault goes back into Normal Operation. * |
-
-
-
-
-
-
-
-### setWithdrawalQueue
-```solidity
-function setWithdrawalQueue(address[20])
-```
-
-
-Updates the withdrawalQueue to match the addresses and order specified by `queue`. There can be fewer strategies than the maximum, as well as fewer than the total number of strategies active in the vault. `withdrawalQueue` will be updated in a gas-efficient manner, assuming the input is well- ordered with 0x0 only at the end. This may only be called by governance or management.
-
-
-*This is order sensitive, specify the addresses in the order in which funds should be withdrawn (so `queue`[0] is the first Strategy withdrawn from, `queue`[1] is the second, etc.) This means that the least impactful Strategy (the Strategy that will have its core positions impacted the least by having funds removed) should be at `queue`[0], then the next least impactful at `queue`[1], and so on.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * queue * | * * | * The array of addresses to use as the new withdrawal queue. This is order sensitive. * |
-
-
-
-
-
-
-
-### transfer
-```solidity
-function transfer(address,uint256)
-```
-
-
-Transfers shares from the caller's address to `receiver`. This function will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### transferFrom
-```solidity
-function transferFrom(address,address,uint256)
-```
-
-
-Transfers `amount` shares from `sender` to `receiver`. This operation will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0. Unless the caller has given this contract unlimited approval, transfering shares will decrement the caller's `allowance` by `amount`.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * sender * | * * | * The address shares are being transferred from. * |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### approve
-```solidity
-function approve(address,uint256)
-```
-
-
-
-*Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-
-
-
-
-
-
-
-### increaseAllowance
-```solidity
-function increaseAllowance(address,uint256)
-```
-
-
-
-*Increase the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to increase the allowance by. * |
-
-
-
-
-
-
-
-### decreaseAllowance
-```solidity
-function decreaseAllowance(address,uint256)
-```
-
-
-
-*Decrease the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to decrease the allowance by. * |
-
-
-
-
-
-
-
-### permit
-```solidity
-function permit(address,address,uint256,uint256,bytes)
-```
-
-
-Approves spender by owner's signature to expend owner's tokens. See https://eips.ethereum.org/EIPS/eip-2612.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * owner * | * * | * The address which is a source of funds and has signed the Permit. * |
-| * spender * | * * | * The address which is allowed to spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-| * expiry * | * * | * The timestamp after which the Permit is no longer valid. * |
-| * signature * | * * | * A valid secp256k1 signature of Permit by owner encoded as r, s, v. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True, if transaction completes successfully * |
-
-
-
-
-
-
-### totalAssets
-```solidity
-function totalAssets()
-```
-
-
-Returns the total quantity of all assets under control of this Vault, whether they're loaned out to a Strategy, or currently held in the Vault.
-
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total assets under control of this Vault. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit()
-```
-
-
-Deposits `_amount` `token`, issuing shares to `recipient`. If the Vault is in Emergency Shutdown, deposits will not be accepted and this call will fail.
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256,address)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### maxAvailableShares
-```solidity
-function maxAvailableShares()
-```
-
-
-Determines the maximum quantity of shares this Vault can facilitate a withdrawal for, factoring in assets currently residing in the Vault, as well as those deployed to strategies on the Vault's balance sheet.
-
-
-*Regarding how shares are calculated, see dev note on `deposit`. If you want to calculated the maximum a user could withdraw up to, you want to use this function. Note that the amount provided by this function is the theoretical maximum possible from withdrawing, the real amount depends on the realized losses incurred during withdrawal.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total quantity of shares this Vault can provide. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw()
-```
-
-
-Withdraws the calling account's tokens from this Vault, redeeming amount `_shares` for an appropriate amount of tokens. See note on `setWithdrawalQueue` for further details of withdrawal ordering and behavior.
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address,uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### pricePerShare
-```solidity
-function pricePerShare()
-```
-
-
-Gives the price for a single Vault share.
-
-
-*See dev note on `withdraw`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The value of a single share. * |
-
-
-
-
-
-
-### addStrategy
-```solidity
-function addStrategy(address,uint256,uint256,uint256,uint256)
-```
-
-
-Add a Strategy to the Vault. This may only be called by governance.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The address of the Strategy to add. * |
-| * debtRatio * | * * | * The share of the total assets in the `vault that the `strategy` has access to. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-| * performanceFee * | * * | * The fee the strategist will receive based on this Vault's performance. * |
-
-
-
-
-
-
-
-### updateStrategyDebtRatio
-```solidity
-function updateStrategyDebtRatio(address,uint256)
-```
-
-
-Change the quantity of assets `strategy` may manage. This may be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * debtRatio * | * * | * The quantity of assets `strategy` may now manage. * |
-
-
-
-
-
-
-
-### updateStrategyMinDebtPerHarvest
-```solidity
-function updateStrategyMinDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyMaxDebtPerHarvest
-```solidity
-function updateStrategyMaxDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyPerformanceFee
-```solidity
-function updateStrategyPerformanceFee(address,uint256)
-```
-
-
-Change the fee the strategist will receive based on this Vault's performance. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * performanceFee * | * * | * The new fee the strategist will receive. * |
-
-
-
-
-
-
-
-### migrateStrategy
-```solidity
-function migrateStrategy(address,address)
-```
-
-
-Migrates a Strategy, including all assets from `oldVersion` to `newVersion`. This may only be called by governance.
-
-
-*Strategy must successfully migrate all capital and positions to new Strategy, or else this will upset the balance of the Vault. The new Strategy should be "empty" e.g. have no prior commitments to this Vault, otherwise it could have issues.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * oldVersion * | * * | * The existing Strategy to migrate from. * |
-| * newVersion * | * * | * The new Strategy to migrate to. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy()
-```
-
-
-Revoke a Strategy, setting its debt limit to 0 and preventing any future deposits. This function should only be used in the scenario where the Strategy is being retired but no migration of the positions are possible, or in the extreme scenario that the Strategy needs to be put into "Emergency Exit" mode in order for it to exit as quickly as possible. The latter scenario could be for any reason that is considered "critical" that the Strategy exits its position as fast as possible, such as a sudden change in market conditions leading to losses, or an imminent failure in an external dependency. This may only be called by governance, the guardian, or the Strategy itself. Note that a Strategy will only revoke itself during emergency shutdown.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### addStrategyToQueue
-```solidity
-function addStrategyToQueue(address)
-```
-
-
-Adds `strategy` to `withdrawalQueue`. This may only be called by governance or management.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to add. * |
-
-
-
-
-
-
-
-### removeStrategyFromQueue
-```solidity
-function removeStrategyFromQueue(address)
-```
-
-
-Remove `strategy` from `withdrawalQueue`. This may only be called by governance or management.
-
-
-*We don't do this with revokeStrategy because it should still be possible to withdraw from the Strategy if it's unwinding.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to remove. * |
-
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding()
-```
-
-
-Determines if `strategy` is past its debt limit and if any tokens should be withdrawn to the Vault.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable()
-```
-
-
-Amount of tokens in Vault a Strategy has access to as a credit line. This will check the Strategy's debt limit, as well as the tokens available in the Vault, and determine the maximum amount of tokens (if any) the Strategy may draw on. In the rare case the Vault is in emergency shutdown this will return 0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn()
-```
-
-
-Provide an accurate expected value for the return this `strategy` would provide to the Vault the next time `report()` is called (since the last time it was called).
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### report
-```solidity
-function report(uint256,uint256,uint256)
-```
-
-
-Reports the amount of assets the calling Strategy has free (usually in terms of ROI). The performance fee is determined here, off of the strategy's profits (if any), and sent to governance. The strategist's fee is also determined here (off of profits), to be handled according to the strategist on the next harvest. This may only be called by a Strategy managed by this Vault.
-
-
-*For approved strategies, this is the most efficient behavior. The Strategy reports back what it has free, then Vault "decides" whether to take some back or give it more. Note that the most it can take is `gain + _debtPayment`, and the most it can give is all of the remaining reserves. Anything outside of those bounds is abnormal behavior. All approved strategies must have increased diligence around calling this function, as abnormal behavior could become catastrophic.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * gain * | * * | * Amount Strategy has realized as a gain on its investment since its last report, and is free to be given back to Vault as earnings * |
-| * loss * | * * | * Amount Strategy has realized as a loss on its investment since its last report, and should be accounted for on the Vault's balance sheet * |
-| * _debtPayment * | * * | * Amount Strategy has made available to cover outstanding debt * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * Amount of debt outstanding (if totalDebt > debtLimit or emergency shutdown). * |
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address)
-```
-
-
-Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault. Tokens will be sent to `governance`. This will fail if an attempt is made to sweep the tokens that this Vault manages. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address,uint256)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**Transfer**
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**Approval**
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**StrategyAdded**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyReported**
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `debtPaid` : uint256, *notIndexed*
-* `totalGain` : uint256, *notIndexed*
-* `totalLoss` : uint256, *notIndexed*
-* `totalDebt` : uint256, *notIndexed*
-* `debtAdded` : uint256, *notIndexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**UpdateGovernance**
-
-* `governance` : address, *notIndexed*
-
-**UpdateManagement**
-
-* `management` : address, *notIndexed*
-
-**UpdateGuestList**
-
-* `guestList` : address, *notIndexed*
-
-**UpdateRewards**
-
-* `rewards` : address, *notIndexed*
-
-**UpdateDepositLimit**
-
-* `depositLimit` : uint256, *notIndexed*
-
-**UpdatePerformanceFee**
-
-* `performanceFee` : uint256, *notIndexed*
-
-**UpdateManagementFee**
-
-* `managementFee` : uint256, *notIndexed*
-
-**UpdateGuardian**
-
-* `guardian` : address, *notIndexed*
-
-**EmergencyShutdown**
-
-* `active` : bool, *notIndexed*
-
-**UpdateWithdrawalQueue**
-
-* `queue` : address[20], *notIndexed*
-
-**StrategyUpdateDebtRatio**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**StrategyUpdateMinDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdateMaxDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdatePerformanceFee**
-
-* `strategy` : address, *indexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyMigrated**
-
-* `oldVersion` : address, *indexed*
-* `newVersion` : address, *indexed*
-
-**StrategyRevoked**
-
-* `strategy` : address, *indexed*
-
-**StrategyRemovedFromQueue**
-
-* `strategy` : address, *indexed*
-
-**StrategyAddedToQueue**
-
-* `strategy` : address, *indexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseStrategy.md
deleted file mode 100644
index f00c6c89dd..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseStrategy.md
+++ /dev/null
@@ -1,671 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) public returns (string)
-```
-
- Used to track which version of `StrategyAPI` this Strategy
- implements.
-
-The Strategy's version must match the Vault's `API_VERSION`.
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`A`| | string which holds the current API version of this contract.
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-This Strategy's name.
-@dev
- You can use this field to manage the "version" of this Strategy, e.g.
- `StrategySomethingOrOtherV1`. However, "API Version" is managed by
- `apiVersion()` function above.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`This`| | Strategy's name.
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
- The amount (priced in want) of the total assets managed by this strategy should not count
- towards Yearn's TVL calculations.
-@dev
- You can override this field to set it to a non-zero value if some of the assets of this
- Strategy is somehow delegated inside another part of Yearn's ecosystem e.g. another Vault.
- Note that this value must be strictly less than or equal to the amount provided by
- `estimatedTotalAssets()` below, as the TVL calc will be total assets minus delegated assets.
-@return
- The amount of assets this strategy manages that should not be included in Yearn's Total Value
- Locked (TVL) calculation across its ecosystem.
-
-
-
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _initialize
-```solidity
- function _initialize(
- address _vault
- ) internal
-```
-
- Initializes the Strategy, this is called only once, when the
- contract is deployed.
-
-`_vault` should implement `VaultAPI`.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_vault` | address | The address of the Vault responsible for this Strategy.
-
-### setStrategist
-```solidity
- function setStrategist(
- address _strategist
- ) external
-```
-
- Used to change `strategist`.
-
- This may only be called by governance or the existing strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_strategist` | address | The new address to assign as `strategist`.
-
-### setKeeper
-```solidity
- function setKeeper(
- address _keeper
- ) external
-```
-
- Used to change `keeper`.
-
- `keeper` is the only address that may call `tend()` or `harvest()`,
- other than `governance()` or `strategist`. However, unlike
- `governance()` or `strategist`, `keeper` may *only* call `tend()`
- and `harvest()`, and no other authorized functions, following the
- principle of least privilege.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_keeper` | address | The new address to assign as `keeper`.
-
-### setRewards
-```solidity
- function setRewards(
- address _rewards
- ) external
-```
-
- Used to change `rewards`. EOA or smart contract which has the permission
- to pull rewards from the vault.
-
- This may only be called by the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_rewards` | address | The address to use for pulling rewards.
-
-### setMinReportDelay
-```solidity
- function setMinReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `minReportDelay`. `minReportDelay` is the minimum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the minimum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The minimum number of seconds to wait between harvests.
-
-### setMaxReportDelay
-```solidity
- function setMaxReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `maxReportDelay`. `maxReportDelay` is the maximum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the maximum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The maximum number of seconds to wait between harvests.
-
-### setProfitFactor
-```solidity
- function setProfitFactor(
- uint256 _profitFactor
- ) external
-```
-
- Used to change `profitFactor`. `profitFactor` is used to determine
- if it's worthwhile to harvest, given gas costs. (See `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_profitFactor` | uint256 | A ratio to multiply anticipated
-`harvest()` gas cost against.
-
-### setDebtThreshold
-```solidity
- function setDebtThreshold(
- uint256 _debtThreshold
- ) external
-```
-
- Sets how far the Strategy can go into loss without a harvest and report
- being required.
-
- By default this is 0, meaning any losses would cause a harvest which
- will subsequently report the loss to the Vault for tracking. (See
- `harvestTrigger()` for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_debtThreshold` | uint256 | How big of a loss this Strategy may carry without
-being required to report to the Vault.
-
-### setMetadataURI
-```solidity
- function setMetadataURI(
- string _metadataURI
- ) external
-```
-
- Used to change `metadataURI`. `metadataURI` is used to store the URI
-of the file describing the strategy.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_metadataURI` | string | The URI that describe the strategy.
-
-### governance
-```solidity
- function governance(
- ) internal returns (address)
-```
-Resolve governance address from Vault contract, used to make assertions
-on protected functions in the Strategy.
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
- Provide an accurate estimate for the total amount of assets
- (principle + return) that this Strategy is currently managing,
- denominated in terms of `want` tokens.
-
- This total should be "realizable" e.g. the total value that could
- *actually* be obtained from this Strategy if it were to divest its
- entire position based on current onchain conditions.
-@dev
- Care must be taken in using this function, since it relies on external
- systems, which could be manipulated by the attacker to give an inflated
- (or reduced) value produced by this function, based on current onchain
- conditions (e.g. this function is possible to influence through
- flashloan attacks, oracle manipulations, or other DeFi attack
- mechanisms).
-
- It is up to governance to use this function to correctly order this
- Strategy relative to its peers in the withdrawal queue to minimize
- losses for the Vault based on sudden withdrawals. This value should be
- higher than the total debt of the Strategy and higher than its expected
- value to be "safe".
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| | estimated total assets in this Strategy.
-### isActive
-```solidity
- function isActive(
- ) public returns (bool)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-Perform any Strategy unwinding or other calls necessary to capture the
-"free return" this Strategy has generated since the last time its core
-position(s) were adjusted. Examples include unwrapping extra rewards.
-This call is only used during "normal operation" of a Strategy, and
-should be optimized to minimize losses as much as possible.
-
-This method returns any realized profits and/or realized losses
-incurred, and should return the total amounts of profits/losses/debt
-payments (in `want` tokens) for the Vault's accounting (e.g.
-`want.balanceOf(this) >= _debtPayment + _profit - _loss`).
-
-`_debtOutstanding` will be 0 if the Strategy is not past the configured
-debt limit, otherwise its value will be how far past the debt limit
-the Strategy is. The Strategy's debt limit is configured in the Vault.
-
-NOTE: `_debtPayment` should be less than or equal to `_debtOutstanding`.
- It is okay for it to be less than `_debtOutstanding`, as that
- should only used as a guide for how much is left to pay back.
- Payments should be made to minimize loss from slippage, debt,
- withdrawal fees, etc.
-
-See `vault.debtOutstanding()`.
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-Perform any adjustments to the core position(s) of this Strategy given
-what change the Vault made in the "investable capital" available to the
-Strategy. Note that all "free capital" in the Strategy after the report
-was made is available for reinvestment. Also note that this number
-could be 0, and you should handle that scenario accordingly.
-
-See comments regarding `_debtOutstanding` on `prepareReturn()`.
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-Liquidate up to `_amountNeeded` of `want` of this strategy's positions,
-irregardless of slippage. Any excess will be re-invested with `adjustPosition()`.
-This function should return the amount of `want` tokens made available by the
-liquidation. If there is a difference between them, `_loss` indicates whether the
-difference is due to a realized loss, or if there is some other sitution at play
-(e.g. locked funds) where the amount made available is less than what is needed.
-This function is used during emergency exit instead of `prepareReturn()` to
-liquidate all of the Strategy's positions back to the Vault.
-
-NOTE: The invariant `_liquidatedAmount + _loss <= _amountNeeded` should always be maintained
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `tend()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `tend()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `tend()` is not called
- shortly, then this can return `true` even if the keeper might be
- "at a loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `harvestTrigger()` should never return `true` at the same
- time.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `tend()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `tend()` should be called, `false` otherwise.
-### tend
-```solidity
- function tend(
- ) external
-```
-
- Adjust the Strategy's position. The purpose of tending isn't to
- realize gains, but to maximize yield by reinvesting any returns.
-
- See comments on `adjustPosition()`.
-
- This may only be called by governance, the strategist, or the keeper.
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `harvest()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `harvest()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `harvest()` is not called
- shortly, then this can return `true` even if the keeper might be "at a
- loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `tendTrigger` should never return `true` at the
- same time.
-
- See `min/maxReportDelay`, `profitFactor`, `debtThreshold` to adjust the
- strategist-controlled parameters that will influence whether this call
- returns `true` or not. These parameters will be used in conjunction
- with the parameters reported to the Vault (see `params`) to determine
- if calling `harvest()` is merited.
-
- It is expected that an external system will check `harvestTrigger()`.
- This could be a script run off a desktop or cloud bot (e.g.
- https://github.com/iearn-finance/yearn-vaults/blob/master/scripts/keep.py),
- or via an integration with the Keep3r network (e.g.
- https://github.com/Macarse/GenericKeep3rV2/blob/master/contracts/keep3r/GenericKeep3rV2.sol).
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `harvest()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `harvest()` should be called, `false` otherwise.
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
- Harvests the Strategy, recognizing any profits or losses and adjusting
- the Strategy's position.
-
- In the rare case the Strategy is in emergency shutdown, this will exit
- the Strategy's position.
-
- This may only be called by governance, the strategist, or the keeper.
-@dev
- When `harvest()` is called, the Strategy reports to the Vault (via
- `vault.report()`), so in some cases `harvest()` must be called in order
- to take in profits, to borrow newly available funds from the Vault, or
- otherwise adjust its position. In other cases `harvest()` must be
- called to report to the Vault on the Strategy's position, especially if
- any losses have occurred.
-
-
-
-### withdraw
-```solidity
- function withdraw(
- uint256 _amountNeeded
- ) external returns (uint256 _loss)
-```
-
- Withdraws `_amountNeeded` to `vault`.
-
- This may only be called by the Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amountNeeded` | uint256 | How much `want` to withdraw.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`_loss`| uint256 | Any realized losses
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-Do anything necessary to prepare this Strategy for migration, such as
-transferring any reserve or LP tokens, CDPs, or other tokens or stores of
-value.
-
-
-
-### migrate
-```solidity
- function migrate(
- address _newStrategy
- ) external
-```
-
- Transfers all `want` from this Strategy to `_newStrategy`.
-
- This may only be called by governance or the Vault.
-@dev
- The new Strategy's Vault must be the same as this Strategy's Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_newStrategy` | address | The Strategy to migrate to.
-
-### setEmergencyExit
-```solidity
- function setEmergencyExit(
- ) external
-```
-
- Activates emergency exit. Once activated, the Strategy will exit its
- position upon the next harvest, depositing all funds into the Vault as
- quickly as is reasonable given onchain conditions.
-
- This may only be called by governance or the strategist.
-@dev
- See `vault.setEmergencyShutdown()` and `harvest()` for further details.
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-Override this to add all tokens/tokenized positions this contract
-manages on a *persistent* basis (e.g. not just for swapping back to
-want ephemerally).
-
-NOTE: Do *not* include `want`, already included in `sweep` below.
-
-Example:
-```solidity
- function protectedTokens() internal override view returns (address[] memory) {
- address[] memory protected = new address[](3);
- protected[0] = tokenA;
- protected[1] = tokenB;
- protected[2] = tokenC;
- return protected;
- }
-```
-
-
-### sweep
-```solidity
- function sweep(
- address _token
- ) external
-```
-
- Removes tokens from this Strategy that are not the type of tokens
- managed by this Strategy. This may be used in case of accidentally
- sending the wrong kind of token to this Strategy.
-
- Tokens will be sent to `governance()`.
-
- This will fail if an attempt is made to sweep `want`, or any tokens
- that are protected by this Strategy.
-
- This may only be called by governance.
-@dev
- Implement `protectedTokens()` to specify any additional tokens that
- should be protected from sweeping in addition to `want`.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_token` | address | The token to transfer out of this vault.
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
-### UpdatedStrategist
-```solidity
- event UpdatedStrategist(
- )
-```
-
-
-
-### UpdatedKeeper
-```solidity
- event UpdatedKeeper(
- )
-```
-
-
-
-### UpdatedRewards
-```solidity
- event UpdatedRewards(
- )
-```
-
-
-
-### UpdatedMinReportDelay
-```solidity
- event UpdatedMinReportDelay(
- )
-```
-
-
-
-### UpdatedMaxReportDelay
-```solidity
- event UpdatedMaxReportDelay(
- )
-```
-
-
-
-### UpdatedProfitFactor
-```solidity
- event UpdatedProfitFactor(
- )
-```
-
-
-
-### UpdatedDebtThreshold
-```solidity
- event UpdatedDebtThreshold(
- )
-```
-
-
-
-### EmergencyExitEnabled
-```solidity
- event EmergencyExitEnabled(
- )
-```
-
-
-
-### UpdatedMetadataURI
-```solidity
- event UpdatedMetadataURI(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseStrategyInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseStrategyInitializable.md
deleted file mode 100644
index 90b02232d3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseStrategyInitializable.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### initialize
-```solidity
- function initialize(
- ) external
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address)
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address newStrategy)
-```
-
-
-
-
-## Events
-### Cloned
-```solidity
- event Cloned(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseWrapper.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseWrapper.md
deleted file mode 100644
index dda2343de7..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/BaseWrapper.md
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### setRegistry
-```solidity
- function setRegistry(
- ) external
-```
-
-
-
-
-### bestVault
-```solidity
- function bestVault(
- ) public returns (contract VaultAPI)
-```
-
-
-
-
-### allVaults
-```solidity
- function allVaults(
- ) public returns (contract VaultAPI[])
-```
-
-
-
-
-### _updateVaultCache
-```solidity
- function _updateVaultCache(
- ) internal
-```
-
-
-
-
-### totalVaultBalance
-```solidity
- function totalVaultBalance(
- ) public returns (uint256 balance)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) public returns (uint256 assets)
-```
-
-
-
-
-### _deposit
-```solidity
- function _deposit(
- ) internal returns (uint256 deposited)
-```
-
-
-
-
-### _withdraw
-```solidity
- function _withdraw(
- ) internal returns (uint256 withdrawn)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256 migrated)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/IWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/IWETH.md
deleted file mode 100644
index 383b7b45bb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/IWETH.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-## Functions
-### deposit
-```solidity
- function deposit(
- ) external
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/RegistryAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/RegistryAPI.md
deleted file mode 100644
index 1d3ea44db3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/RegistryAPI.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-
-
-
-
-### latestVault
-```solidity
- function latestVault(
- ) external returns (address)
-```
-
-
-
-
-### numVaults
-```solidity
- function numVaults(
- ) external returns (uint256)
-```
-
-
-
-
-### vaults
-```solidity
- function vaults(
- ) external returns (address)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/StrategyAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/StrategyAPI.md
deleted file mode 100644
index 3ac6fbf6eb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/StrategyAPI.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-This interface is here for the keeper bot to use.
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### vault
-```solidity
- function vault(
- ) external returns (address)
-```
-
-
-
-
-### want
-```solidity
- function want(
- ) external returns (address)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### keeper
-```solidity
- function keeper(
- ) external returns (address)
-```
-
-
-
-
-### isActive
-```solidity
- function isActive(
- ) external returns (bool)
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### tend
-```solidity
- function tend(
- ) external
-```
-
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
-
-
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/VaultAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/VaultAPI.md
deleted file mode 100644
index 4c99deda19..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/VaultAPI.md
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- ) external returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### token
-```solidity
- function token(
- ) external returns (address)
-```
-
-
-
-
-### strategies
-```solidity
- function strategies(
- ) external returns (struct StrategyParams)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### depositLimit
-```solidity
- function depositLimit(
- ) external returns (uint256)
-```
-
-
-
-
-### maxAvailableShares
-```solidity
- function maxAvailableShares(
- ) external returns (uint256)
-```
-
-
-
-
-### creditAvailable
-```solidity
- function creditAvailable(
- ) external returns (uint256)
-```
-View how much the Vault would increase this Strategy's borrow limit,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### debtOutstanding
-```solidity
- function debtOutstanding(
- ) external returns (uint256)
-```
-View how much the Vault would like to pull back from the Strategy,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### expectedReturn
-```solidity
- function expectedReturn(
- ) external returns (uint256)
-```
-View how much the Vault expect this Strategy to return at the current
-block, based on its present performance (since its last report). Can be
-used to determine expectedReturn in your Strategy.
-
-
-
-### report
-```solidity
- function report(
- ) external returns (uint256)
-```
-This is the main contact point where the Strategy interacts with the
-Vault. It is critical that this call is handled as intended by the
-Strategy. Therefore, this function will be called by BaseStrategy to
-make sure the integration is correct.
-
-
-
-### revokeStrategy
-```solidity
- function revokeStrategy(
- ) external
-```
-This function should only be used in the scenario where the Strategy is
-being retired but no migration of the positions are possible, or in the
-extreme scenario that the Strategy needs to be put into "Emergency Exit"
-mode in order for it to exit as quickly as possible. The latter scenario
-could be for any reason that is considered "critical" that the Strategy
-exits its position as fast as possible, such as a sudden change in
-market conditions leading to losses, or an imminent failure in an
-external dependency.
-
-
-
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-View the governance address of the Vault to assert privileged functions
-can only be called by governance. The Strategy serves the Vault, so it
-is subject to governance defined by the Vault.
-
-
-
-### management
-```solidity
- function management(
- ) external returns (address)
-```
-View the management address of the Vault to assert privileged functions
-can only be called by management. The Strategy serves the Vault, so it
-is subject to management defined by the Vault.
-
-
-
-### guardian
-```solidity
- function guardian(
- ) external returns (address)
-```
-View the guardian address of the Vault to assert privileged functions
-can only be called by guardian. The Strategy serves the Vault, so it
-is subject to guardian defined by the Vault.
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/registry.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/registry.md
deleted file mode 100644
index 4cf44c7835..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/registry.md
+++ /dev/null
@@ -1,411 +0,0 @@
-# Registry.vy
-
-
-
-
-
-
-
-## Functions
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Starts the 1st phase of the governance transfer.
-
-
-*Throws if the caller is not current governance.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The next governance address * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Completes the 2nd phase of the governance transfer.
-
-
-*Throws if the caller is not the pending caller. Emits a `NewGovernance` event.*
-
-
-
-
-
-
-
-### latestRelease
-```solidity
-function latestRelease()
-```
-
-
-Returns the api version of the latest release.
-
-
-*Throws if no releases are registered yet.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The api version of the latest release. * |
-
-
-
-
-
-
-### latestVault
-```solidity
-function latestVault(address)
-```
-
-
-Returns the latest deployed vault for the given token.
-
-
-*Throws if no vaults are endorsed yet for the given token.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token address to find the latest vault for. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the latest vault for the given token. * |
-
-
-
-
-
-
-### newRelease
-```solidity
-function newRelease(address)
-```
-
-
-Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
-
-
-*Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be used as the template contract for the next release. * |
-
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string,uint256)
-```
-
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address)
-```
-
-
-Adds an existing vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address)
-```
-
-
-Set the ability of a particular tagger to tag current vaults.
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address,bool)
-```
-
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### tagVault
-```solidity
-function tagVault(address,string)
-```
-
-
-Tag a Vault with a message.
-
-
-*Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The address to tag with the given `tag` message. * |
-| * tag * | * * | * The message to tag `vault` with. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**NewRelease**
-
-* `release_id` : uint256, *indexed*
-* `template` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewVault**
-
-* `token` : address, *indexed*
-* `vault_id` : uint256, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewExperimentalVault**
-
-* `token` : address, *indexed*
-* `deployer` : address, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewGovernance**
-
-* `governance` : address, *notIndexed*
-
-**VaultTagged**
-
-* `vault` : address, *notIndexed*
-* `tag` : string, *notIndexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/AffiliateToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/AffiliateToken.md
deleted file mode 100644
index b2ea31868d..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/AffiliateToken.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _getChainId
-```solidity
- function _getChainId(
- ) internal returns (uint256)
-```
-
-
-
-
-### setAffiliate
-```solidity
- function setAffiliate(
- ) external
-```
-
-
-
-
-### acceptAffiliate
-```solidity
- function acceptAffiliate(
- ) external
-```
-
-
-
-
-### _shareValue
-```solidity
- function _shareValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### _sharesForValue
-```solidity
- function _sharesForValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) public returns (uint256 deposited)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) public returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- address owner,
- address spender,
- uint256 amount,
- uint256 deadline,
- uint8 v,
- bytes32 r,
- bytes32 s
- ) external
-```
-Triggers an approval from owner to spends
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`owner` | address | The address to approve from
-|`spender` | address | The address to be approved
-|`amount` | uint256 | The number of tokens that are approved (2^256-1 means infinite)
-|`deadline` | uint256 | The time at which to expire the signature
-|`v` | uint8 | The recovery byte of the signature
-|`r` | bytes32 | Half of the ECDSA signature pair
-|`s` | bytes32 | Half of the ECDSA signature pair
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TestGuestList.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TestGuestList.md
deleted file mode 100644
index ba34279f4b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TestGuestList.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-A basic guest list contract for testing.
-
-For a Vyper implementation of this contract containing additional
-functionality, see https://github.com/banteg/guest-list/blob/master/contracts/GuestList.vy
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-Create the test guest list, setting the message sender as
-`bouncer`.
-
-Note that since this is just for testing, you're unable to change
-`bouncer`.
-
-
-### setGuests
-```solidity
- function setGuests(
- address[] _guests,
- bool[] _invited
- ) external
-```
-Invite guests or kick them from the party.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guests` | address[] | The guests to add or update.
-|`_invited` | bool[] | A flag for each guest at the matching index, inviting or
-uninviting the guest.
-
-### authorized
-```solidity
- function authorized(
- address _guest,
- uint256 _amount
- ) external returns (bool)
-```
-Check if a guest with a bag of a certain size is allowed into
-the party.
-
-Note that `_amount` isn't checked to keep test setup simple, since
-from the vault tests' perspective this is a pass/fail call anyway.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guest` | address | The guest's address to check.
-|`_amount` | uint256 | Not used. The amount of tokens the guest is bringing.
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TestStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TestStrategy.md
deleted file mode 100644
index 481ef956ce..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TestStrategy.md
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### _takeFunds
-```solidity
- function _takeFunds(
- ) public
-```
-
-
-
-
-### _toggleReentrancyExploit
-```solidity
- function _toggleReentrancyExploit(
- ) public
-```
-
-
-
-
-### _setWant
-```solidity
- function _setWant(
- ) public
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-
-
-
-
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/Token.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/Token.md
deleted file mode 100644
index 6bc7e4f416..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/Token.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### _beforeTokenTransfer
-```solidity
- function _beforeTokenTransfer(
- ) internal
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TokenFalseReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TokenFalseReturn.md
deleted file mode 100644
index 82c282f5fa..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TokenFalseReturn.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TokenNoReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TokenNoReturn.md
deleted file mode 100644
index 311566ddb6..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/test/TokenNoReturn.md
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) external
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) external
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) external
-```
-
-
-
-
-## Events
-### Transfer
-```solidity
- event Transfer(
- )
-```
-
-
-
-### Approval
-```solidity
- event Approval(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/utils/ProxyFactoryInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/utils/ProxyFactoryInitializable.md
deleted file mode 100644
index 7d1fd7ea2a..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/utils/ProxyFactoryInitializable.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-## Functions
-### deployMinimal
-```solidity
- function deployMinimal(
- ) external returns (address proxy, bytes returnData)
-```
-
-
-
-
-### _getRevertMsg
-```solidity
- function _getRevertMsg(
- bytes _res
- ) internal returns (string)
-```
-This is needed in order to get the human-readable revert message from a call
-
-Get the revert message from a call
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_res` | bytes | Response of the call
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`Revert`| bytes | message string
-### slice
-```solidity
- function slice(
- ) internal returns (bytes)
-```
-
-
-
-
-## Events
-### ProxyCreated
-```solidity
- event ProxyCreated(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/vault.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/vault.md
deleted file mode 100644
index 45d9718229..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/vault.md
+++ /dev/null
@@ -1,1378 +0,0 @@
-# Vault.vy
-
-
-**Yearn Token Vault**
-
-
-
-
-
-*Yearn Token Vault. Holds an underlying token, and allows users to interact with the Yearn ecosystem through Strategies connected to the Vault. Vaults are not limited to a single Strategy, they can have as many Strategies as can be designed (however the withdrawal queue is capped at 20.) Deposited funds are moved into the most impactful strategy that has not already reached its limit for assets under management, regardless of which Strategy a user's funds end up in, they receive their portion of yields generated across all Strategies. When a user withdraws, if there are no funds sitting undeployed in the Vault, the Vault withdraws funds from Strategies in the order of least impact. (Funds are taken from the Strategy that will disturb everyone's gains the least, then the next least, etc.) In order to achieve this, the withdrawal queue's order must be properly set and managed by the community (through governance). Vault Strategies are parameterized to pursue the highest risk-adjusted yield. There is an "Emergency Shutdown" mode. When the Vault is put into emergency shutdown, assets will be recalled from the Strategies as quickly as is practical (given onchain conditions), minimizing loss. Deposits are halted, new Strategies may not be added, and each Strategy exits with the minimum possible damage to position, while opening up deposits to be withdrawn by users. There are no restrictions on withdrawals above what is expected under Normal Operation. For further details, please refer to the specification: https://github.com/iearn-finance/yearn-vaults/blob/master/SPECIFICATION.md*
-
-
-## Functions
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string)
-```
-
-
-Initializes the Vault, this is called only once, when the contract is deployed. The performance fee is set to 10% of yield, per Strategy. The management fee is set to 2%, per year. The initial deposit limit is set to 0 (deposits disabled); it must be updated after initialization.
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### apiVersion
-```solidity
-function apiVersion()
-```
-
-
-Used to track the deployed version of this contract. In practice you can use this version number to compare with Yearn's GitHub and determine which version of the source matches this deployed contract.
-
-
-*All strategies must have an `apiVersion()` that matches the Vault's `API_VERSION`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * API_VERSION which holds the current version of this contract. * |
-
-
-
-
-
-
-### setName
-```solidity
-function setName(string)
-```
-
-
-Used to change the value of `name`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * name * | * * | * The new name to use. * |
-
-
-
-
-
-
-
-### setSymbol
-```solidity
-function setSymbol(string)
-```
-
-
-Used to change the value of `symbol`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * symbol * | * * | * The new symbol to use. * |
-
-
-
-
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Nominate a new address to use as governance. The change does not go into effect immediately. This function sets a pending change, and the governance address is not updated until the proposed governance address has accepted the responsibility. This may only be called by the current governance address.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The address requested to take over Vault governance. * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Once a new governance address has been proposed using setGovernance(), this function may be called by the proposed address to accept the responsibility of taking over governance for this contract. This may only be called by the proposed governance address.
-
-
-*setGovernance() should be called by the existing governance address, prior to calling this function.*
-
-
-
-
-
-
-
-### setManagement
-```solidity
-function setManagement(address)
-```
-
-
-Changes the management address. Management is able to make some investment decisions adjusting parameters. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * management * | * * | * The address to use for managing. * |
-
-
-
-
-
-
-
-### setGuestList
-```solidity
-function setGuestList(address)
-```
-
-
-Used to set or change `guestList`. A guest list is another contract that dictates who is allowed to participate in a Vault (and transfer shares). This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guestList * | * * | * The address of the `GuestList` contract to use. * |
-
-
-
-
-
-
-
-### setRewards
-```solidity
-function setRewards(address)
-```
-
-
-Changes the rewards address. Any distributed rewards will cease flowing to the old address and begin flowing to this address once the change is in effect. This will not change any Strategy reports in progress, only new reports made after this change goes into effect. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * rewards * | * * | * The address to use for collecting rewards. * |
-
-
-
-
-
-
-
-### setLockedProfitDegration
-```solidity
-function setLockedProfitDegration(uint256)
-```
-
-
-Changes the locked profit degration.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * degration * | * * | * The rate of degration in percent per second scaled to 1e18. * |
-
-
-
-
-
-
-
-### setDepositLimit
-```solidity
-function setDepositLimit(uint256)
-```
-
-
-Changes the maximum amount of tokens that can be deposited in this Vault. Note, this is not how much may be deposited by a single depositor, but the maximum amount that may be deposited across all depositors. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * limit * | * * | * The new deposit limit to use. * |
-
-
-
-
-
-
-
-### setPerformanceFee
-```solidity
-function setPerformanceFee(uint256)
-```
-
-
-Used to change the value of `performanceFee`. Should set this value below the maximum strategist performance fee. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new performance fee to use. * |
-
-
-
-
-
-
-
-### setManagementFee
-```solidity
-function setManagementFee(uint256)
-```
-
-
-Used to change the value of `managementFee`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new management fee to use. * |
-
-
-
-
-
-
-
-### setGuardian
-```solidity
-function setGuardian(address)
-```
-
-
-Used to change the address of `guardian`. This may only be called by governance or the existing guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guardian * | * * | * The new guardian address to use. * |
-
-
-
-
-
-
-
-### setEmergencyShutdown
-```solidity
-function setEmergencyShutdown(bool)
-```
-
-
-Activates or deactivates Vault mode where all Strategies go into full withdrawal. During Emergency Shutdown: 1. No Users may deposit into the Vault (but may withdraw as usual.) 2. Governance may not add new Strategies. 3. Each Strategy must pay back their debt as quickly as reasonable to minimally affect their position. 4. Only Governance may undo Emergency Shutdown. See contract level note for further details. This may only be called by governance or the guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * active * | * * | * If true, the Vault goes into Emergency Shutdown. If false, the Vault goes back into Normal Operation. * |
-
-
-
-
-
-
-
-### setWithdrawalQueue
-```solidity
-function setWithdrawalQueue(address[20])
-```
-
-
-Updates the withdrawalQueue to match the addresses and order specified by `queue`. There can be fewer strategies than the maximum, as well as fewer than the total number of strategies active in the vault. `withdrawalQueue` will be updated in a gas-efficient manner, assuming the input is well- ordered with 0x0 only at the end. This may only be called by governance or management.
-
-
-*This is order sensitive, specify the addresses in the order in which funds should be withdrawn (so `queue`[0] is the first Strategy withdrawn from, `queue`[1] is the second, etc.) This means that the least impactful Strategy (the Strategy that will have its core positions impacted the least by having funds removed) should be at `queue`[0], then the next least impactful at `queue`[1], and so on.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * queue * | * * | * The array of addresses to use as the new withdrawal queue. This is order sensitive. * |
-
-
-
-
-
-
-
-### transfer
-```solidity
-function transfer(address,uint256)
-```
-
-
-Transfers shares from the caller's address to `receiver`. This function will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### transferFrom
-```solidity
-function transferFrom(address,address,uint256)
-```
-
-
-Transfers `amount` shares from `sender` to `receiver`. This operation will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0. Unless the caller has given this contract unlimited approval, transfering shares will decrement the caller's `allowance` by `amount`.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * sender * | * * | * The address shares are being transferred from. * |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### approve
-```solidity
-function approve(address,uint256)
-```
-
-
-
-*Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-
-
-
-
-
-
-
-### increaseAllowance
-```solidity
-function increaseAllowance(address,uint256)
-```
-
-
-
-*Increase the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to increase the allowance by. * |
-
-
-
-
-
-
-
-### decreaseAllowance
-```solidity
-function decreaseAllowance(address,uint256)
-```
-
-
-
-*Decrease the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to decrease the allowance by. * |
-
-
-
-
-
-
-
-### permit
-```solidity
-function permit(address,address,uint256,uint256,bytes)
-```
-
-
-Approves spender by owner's signature to expend owner's tokens. See https://eips.ethereum.org/EIPS/eip-2612.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * owner * | * * | * The address which is a source of funds and has signed the Permit. * |
-| * spender * | * * | * The address which is allowed to spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-| * expiry * | * * | * The timestamp after which the Permit is no longer valid. * |
-| * signature * | * * | * A valid secp256k1 signature of Permit by owner encoded as r, s, v. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True, if transaction completes successfully * |
-
-
-
-
-
-
-### totalAssets
-```solidity
-function totalAssets()
-```
-
-
-Returns the total quantity of all assets under control of this Vault, whether they're loaned out to a Strategy, or currently held in the Vault.
-
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total assets under control of this Vault. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit()
-```
-
-
-Deposits `_amount` `token`, issuing shares to `recipient`. If the Vault is in Emergency Shutdown, deposits will not be accepted and this call will fail.
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256,address)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### maxAvailableShares
-```solidity
-function maxAvailableShares()
-```
-
-
-Determines the maximum quantity of shares this Vault can facilitate a withdrawal for, factoring in assets currently residing in the Vault, as well as those deployed to strategies on the Vault's balance sheet.
-
-
-*Regarding how shares are calculated, see dev note on `deposit`. If you want to calculated the maximum a user could withdraw up to, you want to use this function. Note that the amount provided by this function is the theoretical maximum possible from withdrawing, the real amount depends on the realized losses incurred during withdrawal.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total quantity of shares this Vault can provide. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw()
-```
-
-
-Withdraws the calling account's tokens from this Vault, redeeming amount `_shares` for an appropriate amount of tokens. See note on `setWithdrawalQueue` for further details of withdrawal ordering and behavior.
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address,uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### pricePerShare
-```solidity
-function pricePerShare()
-```
-
-
-Gives the price for a single Vault share.
-
-
-*See dev note on `withdraw`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The value of a single share. * |
-
-
-
-
-
-
-### addStrategy
-```solidity
-function addStrategy(address,uint256,uint256,uint256,uint256)
-```
-
-
-Add a Strategy to the Vault. This may only be called by governance.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The address of the Strategy to add. * |
-| * debtRatio * | * * | * The share of the total assets in the `vault that the `strategy` has access to. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-| * performanceFee * | * * | * The fee the strategist will receive based on this Vault's performance. * |
-
-
-
-
-
-
-
-### updateStrategyDebtRatio
-```solidity
-function updateStrategyDebtRatio(address,uint256)
-```
-
-
-Change the quantity of assets `strategy` may manage. This may be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * debtRatio * | * * | * The quantity of assets `strategy` may now manage. * |
-
-
-
-
-
-
-
-### updateStrategyMinDebtPerHarvest
-```solidity
-function updateStrategyMinDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyMaxDebtPerHarvest
-```solidity
-function updateStrategyMaxDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyPerformanceFee
-```solidity
-function updateStrategyPerformanceFee(address,uint256)
-```
-
-
-Change the fee the strategist will receive based on this Vault's performance. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * performanceFee * | * * | * The new fee the strategist will receive. * |
-
-
-
-
-
-
-
-### migrateStrategy
-```solidity
-function migrateStrategy(address,address)
-```
-
-
-Migrates a Strategy, including all assets from `oldVersion` to `newVersion`. This may only be called by governance.
-
-
-*Strategy must successfully migrate all capital and positions to new Strategy, or else this will upset the balance of the Vault. The new Strategy should be "empty" e.g. have no prior commitments to this Vault, otherwise it could have issues.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * oldVersion * | * * | * The existing Strategy to migrate from. * |
-| * newVersion * | * * | * The new Strategy to migrate to. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy()
-```
-
-
-Revoke a Strategy, setting its debt limit to 0 and preventing any future deposits. This function should only be used in the scenario where the Strategy is being retired but no migration of the positions are possible, or in the extreme scenario that the Strategy needs to be put into "Emergency Exit" mode in order for it to exit as quickly as possible. The latter scenario could be for any reason that is considered "critical" that the Strategy exits its position as fast as possible, such as a sudden change in market conditions leading to losses, or an imminent failure in an external dependency. This may only be called by governance, the guardian, or the Strategy itself. Note that a Strategy will only revoke itself during emergency shutdown.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### addStrategyToQueue
-```solidity
-function addStrategyToQueue(address)
-```
-
-
-Adds `strategy` to `withdrawalQueue`. This may only be called by governance or management.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to add. * |
-
-
-
-
-
-
-
-### removeStrategyFromQueue
-```solidity
-function removeStrategyFromQueue(address)
-```
-
-
-Remove `strategy` from `withdrawalQueue`. This may only be called by governance or management.
-
-
-*We don't do this with revokeStrategy because it should still be possible to withdraw from the Strategy if it's unwinding.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to remove. * |
-
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding()
-```
-
-
-Determines if `strategy` is past its debt limit and if any tokens should be withdrawn to the Vault.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable()
-```
-
-
-Amount of tokens in Vault a Strategy has access to as a credit line. This will check the Strategy's debt limit, as well as the tokens available in the Vault, and determine the maximum amount of tokens (if any) the Strategy may draw on. In the rare case the Vault is in emergency shutdown this will return 0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn()
-```
-
-
-Provide an accurate expected value for the return this `strategy` would provide to the Vault the next time `report()` is called (since the last time it was called).
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### report
-```solidity
-function report(uint256,uint256,uint256)
-```
-
-
-Reports the amount of assets the calling Strategy has free (usually in terms of ROI). The performance fee is determined here, off of the strategy's profits (if any), and sent to governance. The strategist's fee is also determined here (off of profits), to be handled according to the strategist on the next harvest. This may only be called by a Strategy managed by this Vault.
-
-
-*For approved strategies, this is the most efficient behavior. The Strategy reports back what it has free, then Vault "decides" whether to take some back or give it more. Note that the most it can take is `gain + _debtPayment`, and the most it can give is all of the remaining reserves. Anything outside of those bounds is abnormal behavior. All approved strategies must have increased diligence around calling this function, as abnormal behavior could become catastrophic.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * gain * | * * | * Amount Strategy has realized as a gain on its investment since its last report, and is free to be given back to Vault as earnings * |
-| * loss * | * * | * Amount Strategy has realized as a loss on its investment since its last report, and should be accounted for on the Vault's balance sheet * |
-| * _debtPayment * | * * | * Amount Strategy has made available to cover outstanding debt * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * Amount of debt outstanding (if totalDebt > debtLimit or emergency shutdown). * |
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address)
-```
-
-
-Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault. Tokens will be sent to `governance`. This will fail if an attempt is made to sweep the tokens that this Vault manages. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address,uint256)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**Transfer**
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**Approval**
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**StrategyAdded**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyReported**
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `debtPaid` : uint256, *notIndexed*
-* `totalGain` : uint256, *notIndexed*
-* `totalLoss` : uint256, *notIndexed*
-* `totalDebt` : uint256, *notIndexed*
-* `debtAdded` : uint256, *notIndexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**UpdateGovernance**
-
-* `governance` : address, *notIndexed*
-
-**UpdateManagement**
-
-* `management` : address, *notIndexed*
-
-**UpdateGuestList**
-
-* `guestList` : address, *notIndexed*
-
-**UpdateRewards**
-
-* `rewards` : address, *notIndexed*
-
-**UpdateDepositLimit**
-
-* `depositLimit` : uint256, *notIndexed*
-
-**UpdatePerformanceFee**
-
-* `performanceFee` : uint256, *notIndexed*
-
-**UpdateManagementFee**
-
-* `managementFee` : uint256, *notIndexed*
-
-**UpdateGuardian**
-
-* `guardian` : address, *notIndexed*
-
-**EmergencyShutdown**
-
-* `active` : bool, *notIndexed*
-
-**UpdateWithdrawalQueue**
-
-* `queue` : address[20], *notIndexed*
-
-**StrategyUpdateDebtRatio**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**StrategyUpdateMinDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdateMaxDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdatePerformanceFee**
-
-* `strategy` : address, *indexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyMigrated**
-
-* `oldVersion` : address, *indexed*
-* `newVersion` : address, *indexed*
-
-**StrategyRevoked**
-
-* `strategy` : address, *indexed*
-
-**StrategyRemovedFromQueue**
-
-* `strategy` : address, *indexed*
-
-**StrategyAddedToQueue**
-
-* `strategy` : address, *indexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/yToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/yToken.md
deleted file mode 100644
index ccbc709769..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/yToken.md
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### totalSupply
-```solidity
- function totalSupply(
- ) external returns (uint256 total)
-```
-
-
-
-
-### balanceOf
-```solidity
- function balanceOf(
- ) external returns (uint256 balance)
-```
-
-
-
-
-### _transfer
-```solidity
- function _transfer(
- ) internal
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### _approve
-```solidity
- function _approve(
- ) internal
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
-### increaseAllowance
-```solidity
- function increaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### decreaseAllowance
-```solidity
- function decreaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### _permitAll
-```solidity
- function _permitAll(
- ) internal
-```
-
-
-
-
-### permitAll
-```solidity
- function permitAll(
- ) public
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### revokeAll
-```solidity
- function revokeAll(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/yWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/yWETH.md
deleted file mode 100644
index 459bc7b3f1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.3/yWETH.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### depositETH
-```solidity
- function depositETH(
- ) public returns (uint256)
-```
-
-
-
-
-### withdrawETH
-```solidity
- function withdrawETH(
- ) external returns (uint256 withdrawn)
-```
-
-
-
-
-### receive
-```solidity
- function receive(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseStrategy.md
deleted file mode 100644
index 8f02063a9e..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseStrategy.md
+++ /dev/null
@@ -1,673 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) public returns (string)
-```
-
- Used to track which version of `StrategyAPI` this Strategy
- implements.
-
-The Strategy's version must match the Vault's `API_VERSION`.
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`A`| | string which holds the current API version of this contract.
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-This Strategy's name.
-@dev
- You can use this field to manage the "version" of this Strategy, e.g.
- `StrategySomethingOrOtherV1`. However, "API Version" is managed by
- `apiVersion()` function above.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`This`| | Strategy's name.
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
- The amount (priced in want) of the total assets managed by this strategy should not count
- towards Yearn's TVL calculations.
-@dev
- You can override this field to set it to a non-zero value if some of the assets of this
- Strategy is somehow delegated inside another part of Yearn's ecosystem e.g. another Vault.
- Note that this value must be strictly less than or equal to the amount provided by
- `estimatedTotalAssets()` below, as the TVL calc will be total assets minus delegated assets.
- Also note that this value is used to determine the total assets under management by this
- strategy, for the purposes of computing the management fee in `Vault`
-@return
- The amount of assets this strategy manages that should not be included in Yearn's Total Value
- Locked (TVL) calculation across it's ecosystem.
-
-
-
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _initialize
-```solidity
- function _initialize(
- address _vault
- ) internal
-```
-
- Initializes the Strategy, this is called only once, when the
- contract is deployed.
-
-`_vault` should implement `VaultAPI`.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_vault` | address | The address of the Vault responsible for this Strategy.
-
-### setStrategist
-```solidity
- function setStrategist(
- address _strategist
- ) external
-```
-
- Used to change `strategist`.
-
- This may only be called by governance or the existing strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_strategist` | address | The new address to assign as `strategist`.
-
-### setKeeper
-```solidity
- function setKeeper(
- address _keeper
- ) external
-```
-
- Used to change `keeper`.
-
- `keeper` is the only address that may call `tend()` or `harvest()`,
- other than `governance()` or `strategist`. However, unlike
- `governance()` or `strategist`, `keeper` may *only* call `tend()`
- and `harvest()`, and no other authorized functions, following the
- principle of least privilege.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_keeper` | address | The new address to assign as `keeper`.
-
-### setRewards
-```solidity
- function setRewards(
- address _rewards
- ) external
-```
-
- Used to change `rewards`. EOA or smart contract which has the permission
- to pull rewards from the vault.
-
- This may only be called by the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_rewards` | address | The address to use for pulling rewards.
-
-### setMinReportDelay
-```solidity
- function setMinReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `minReportDelay`. `minReportDelay` is the minimum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the minimum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The minimum number of seconds to wait between harvests.
-
-### setMaxReportDelay
-```solidity
- function setMaxReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `maxReportDelay`. `maxReportDelay` is the maximum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the maximum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The maximum number of seconds to wait between harvests.
-
-### setProfitFactor
-```solidity
- function setProfitFactor(
- uint256 _profitFactor
- ) external
-```
-
- Used to change `profitFactor`. `profitFactor` is used to determine
- if it's worthwhile to harvest, given gas costs. (See `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_profitFactor` | uint256 | A ratio to multiply anticipated
-`harvest()` gas cost against.
-
-### setDebtThreshold
-```solidity
- function setDebtThreshold(
- uint256 _debtThreshold
- ) external
-```
-
- Sets how far the Strategy can go into loss without a harvest and report
- being required.
-
- By default this is 0, meaning any losses would cause a harvest which
- will subsequently report the loss to the Vault for tracking. (See
- `harvestTrigger()` for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_debtThreshold` | uint256 | How big of a loss this Strategy may carry without
-being required to report to the Vault.
-
-### setMetadataURI
-```solidity
- function setMetadataURI(
- string _metadataURI
- ) external
-```
-
- Used to change `metadataURI`. `metadataURI` is used to store the URI
-of the file describing the strategy.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_metadataURI` | string | The URI that describe the strategy.
-
-### governance
-```solidity
- function governance(
- ) internal returns (address)
-```
-Resolve governance address from Vault contract, used to make assertions
-on protected functions in the Strategy.
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
- Provide an accurate estimate for the total amount of assets
- (principle + return) that this Strategy is currently managing,
- denominated in terms of `want` tokens.
-
- This total should be "realizable" e.g. the total value that could
- *actually* be obtained from this Strategy if it were to divest its
- entire position based on current onchain conditions.
-@dev
- Care must be taken in using this function, since it relies on external
- systems, which could be manipulated by the attacker to give an inflated
- (or reduced) value produced by this function, based on current onchain
- conditions (e.g. this function is possible to influence through
- flashloan attacks, oracle manipulations, or other DeFi attack
- mechanisms).
-
- It is up to governance to use this function to correctly order this
- Strategy relative to its peers in the withdrawal queue to minimize
- losses for the Vault based on sudden withdrawals. This value should be
- higher than the total debt of the Strategy and higher than its expected
- value to be "safe".
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| | estimated total assets in this Strategy.
-### isActive
-```solidity
- function isActive(
- ) public returns (bool)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-Perform any Strategy unwinding or other calls necessary to capture the
-"free return" this Strategy has generated since the last time its core
-position(s) were adjusted. Examples include unwrapping extra rewards.
-This call is only used during "normal operation" of a Strategy, and
-should be optimized to minimize losses as much as possible.
-
-This method returns any realized profits and/or realized losses
-incurred, and should return the total amounts of profits/losses/debt
-payments (in `want` tokens) for the Vault's accounting (e.g.
-`want.balanceOf(this) >= _debtPayment + _profit - _loss`).
-
-`_debtOutstanding` will be 0 if the Strategy is not past the configured
-debt limit, otherwise its value will be how far past the debt limit
-the Strategy is. The Strategy's debt limit is configured in the Vault.
-
-NOTE: `_debtPayment` should be less than or equal to `_debtOutstanding`.
- It is okay for it to be less than `_debtOutstanding`, as that
- should only used as a guide for how much is left to pay back.
- Payments should be made to minimize loss from slippage, debt,
- withdrawal fees, etc.
-
-See `vault.debtOutstanding()`.
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-Perform any adjustments to the core position(s) of this Strategy given
-what change the Vault made in the "investable capital" available to the
-Strategy. Note that all "free capital" in the Strategy after the report
-was made is available for reinvestment. Also note that this number
-could be 0, and you should handle that scenario accordingly.
-
-See comments regarding `_debtOutstanding` on `prepareReturn()`.
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-Liquidate up to `_amountNeeded` of `want` of this strategy's positions,
-irregardless of slippage. Any excess will be re-invested with `adjustPosition()`.
-This function should return the amount of `want` tokens made available by the
-liquidation. If there is a difference between them, `_loss` indicates whether the
-difference is due to a realized loss, or if there is some other sitution at play
-(e.g. locked funds) where the amount made available is less than what is needed.
-This function is used during emergency exit instead of `prepareReturn()` to
-liquidate all of the Strategy's positions back to the Vault.
-
-NOTE: The invariant `_liquidatedAmount + _loss <= _amountNeeded` should always be maintained
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `tend()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `tend()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `tend()` is not called
- shortly, then this can return `true` even if the keeper might be
- "at a loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `harvestTrigger()` should never return `true` at the same
- time.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `tend()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `tend()` should be called, `false` otherwise.
-### tend
-```solidity
- function tend(
- ) external
-```
-
- Adjust the Strategy's position. The purpose of tending isn't to
- realize gains, but to maximize yield by reinvesting any returns.
-
- See comments on `adjustPosition()`.
-
- This may only be called by governance, the strategist, or the keeper.
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `harvest()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `harvest()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `harvest()` is not called
- shortly, then this can return `true` even if the keeper might be "at a
- loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `tendTrigger` should never return `true` at the
- same time.
-
- See `min/maxReportDelay`, `profitFactor`, `debtThreshold` to adjust the
- strategist-controlled parameters that will influence whether this call
- returns `true` or not. These parameters will be used in conjunction
- with the parameters reported to the Vault (see `params`) to determine
- if calling `harvest()` is merited.
-
- It is expected that an external system will check `harvestTrigger()`.
- This could be a script run off a desktop or cloud bot (e.g.
- https://github.com/iearn-finance/yearn-vaults/blob/master/scripts/keep.py),
- or via an integration with the Keep3r network (e.g.
- https://github.com/Macarse/GenericKeep3rV2/blob/master/contracts/keep3r/GenericKeep3rV2.sol).
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `harvest()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `harvest()` should be called, `false` otherwise.
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
- Harvests the Strategy, recognizing any profits or losses and adjusting
- the Strategy's position.
-
- In the rare case the Strategy is in emergency shutdown, this will exit
- the Strategy's position.
-
- This may only be called by governance, the strategist, or the keeper.
-@dev
- When `harvest()` is called, the Strategy reports to the Vault (via
- `vault.report()`), so in some cases `harvest()` must be called in order
- to take in profits, to borrow newly available funds from the Vault, or
- otherwise adjust its position. In other cases `harvest()` must be
- called to report to the Vault on the Strategy's position, especially if
- any losses have occurred.
-
-
-
-### withdraw
-```solidity
- function withdraw(
- uint256 _amountNeeded
- ) external returns (uint256 _loss)
-```
-
- Withdraws `_amountNeeded` to `vault`.
-
- This may only be called by the Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amountNeeded` | uint256 | How much `want` to withdraw.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`_loss`| uint256 | Any realized losses
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-Do anything necessary to prepare this Strategy for migration, such as
-transferring any reserve or LP tokens, CDPs, or other tokens or stores of
-value.
-
-
-
-### migrate
-```solidity
- function migrate(
- address _newStrategy
- ) external
-```
-
- Transfers all `want` from this Strategy to `_newStrategy`.
-
- This may only be called by governance or the Vault.
-@dev
- The new Strategy's Vault must be the same as this Strategy's Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_newStrategy` | address | The Strategy to migrate to.
-
-### setEmergencyExit
-```solidity
- function setEmergencyExit(
- ) external
-```
-
- Activates emergency exit. Once activated, the Strategy will exit its
- position upon the next harvest, depositing all funds into the Vault as
- quickly as is reasonable given onchain conditions.
-
- This may only be called by governance or the strategist.
-@dev
- See `vault.setEmergencyShutdown()` and `harvest()` for further details.
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-Override this to add all tokens/tokenized positions this contract
-manages on a *persistent* basis (e.g. not just for swapping back to
-want ephemerally).
-
-NOTE: Do *not* include `want`, already included in `sweep` below.
-
-Example:
-```solidity
- function protectedTokens() internal override view returns (address[] memory) {
- address[] memory protected = new address[](3);
- protected[0] = tokenA;
- protected[1] = tokenB;
- protected[2] = tokenC;
- return protected;
- }
-```
-
-
-### sweep
-```solidity
- function sweep(
- address _token
- ) external
-```
-
- Removes tokens from this Strategy that are not the type of tokens
- managed by this Strategy. This may be used in case of accidentally
- sending the wrong kind of token to this Strategy.
-
- Tokens will be sent to `governance()`.
-
- This will fail if an attempt is made to sweep `want`, or any tokens
- that are protected by this Strategy.
-
- This may only be called by governance.
-@dev
- Implement `protectedTokens()` to specify any additional tokens that
- should be protected from sweeping in addition to `want`.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_token` | address | The token to transfer out of this vault.
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
-### UpdatedStrategist
-```solidity
- event UpdatedStrategist(
- )
-```
-
-
-
-### UpdatedKeeper
-```solidity
- event UpdatedKeeper(
- )
-```
-
-
-
-### UpdatedRewards
-```solidity
- event UpdatedRewards(
- )
-```
-
-
-
-### UpdatedMinReportDelay
-```solidity
- event UpdatedMinReportDelay(
- )
-```
-
-
-
-### UpdatedMaxReportDelay
-```solidity
- event UpdatedMaxReportDelay(
- )
-```
-
-
-
-### UpdatedProfitFactor
-```solidity
- event UpdatedProfitFactor(
- )
-```
-
-
-
-### UpdatedDebtThreshold
-```solidity
- event UpdatedDebtThreshold(
- )
-```
-
-
-
-### EmergencyExitEnabled
-```solidity
- event EmergencyExitEnabled(
- )
-```
-
-
-
-### UpdatedMetadataURI
-```solidity
- event UpdatedMetadataURI(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseStrategyInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseStrategyInitializable.md
deleted file mode 100644
index 90b02232d3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseStrategyInitializable.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### initialize
-```solidity
- function initialize(
- ) external
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address)
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address newStrategy)
-```
-
-
-
-
-## Events
-### Cloned
-```solidity
- event Cloned(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseWrapper.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseWrapper.md
deleted file mode 100644
index dda2343de7..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/BaseWrapper.md
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### setRegistry
-```solidity
- function setRegistry(
- ) external
-```
-
-
-
-
-### bestVault
-```solidity
- function bestVault(
- ) public returns (contract VaultAPI)
-```
-
-
-
-
-### allVaults
-```solidity
- function allVaults(
- ) public returns (contract VaultAPI[])
-```
-
-
-
-
-### _updateVaultCache
-```solidity
- function _updateVaultCache(
- ) internal
-```
-
-
-
-
-### totalVaultBalance
-```solidity
- function totalVaultBalance(
- ) public returns (uint256 balance)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) public returns (uint256 assets)
-```
-
-
-
-
-### _deposit
-```solidity
- function _deposit(
- ) internal returns (uint256 deposited)
-```
-
-
-
-
-### _withdraw
-```solidity
- function _withdraw(
- ) internal returns (uint256 withdrawn)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256 migrated)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/IWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/IWETH.md
deleted file mode 100644
index 383b7b45bb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/IWETH.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-## Functions
-### deposit
-```solidity
- function deposit(
- ) external
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/RegistryAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/RegistryAPI.md
deleted file mode 100644
index 1d3ea44db3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/RegistryAPI.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-
-
-
-
-### latestVault
-```solidity
- function latestVault(
- ) external returns (address)
-```
-
-
-
-
-### numVaults
-```solidity
- function numVaults(
- ) external returns (uint256)
-```
-
-
-
-
-### vaults
-```solidity
- function vaults(
- ) external returns (address)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/StrategyAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/StrategyAPI.md
deleted file mode 100644
index 3ac6fbf6eb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/StrategyAPI.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-This interface is here for the keeper bot to use.
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### vault
-```solidity
- function vault(
- ) external returns (address)
-```
-
-
-
-
-### want
-```solidity
- function want(
- ) external returns (address)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### keeper
-```solidity
- function keeper(
- ) external returns (address)
-```
-
-
-
-
-### isActive
-```solidity
- function isActive(
- ) external returns (bool)
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### tend
-```solidity
- function tend(
- ) external
-```
-
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
-
-
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/VaultAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/VaultAPI.md
deleted file mode 100644
index 4c99deda19..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/VaultAPI.md
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- ) external returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### token
-```solidity
- function token(
- ) external returns (address)
-```
-
-
-
-
-### strategies
-```solidity
- function strategies(
- ) external returns (struct StrategyParams)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### depositLimit
-```solidity
- function depositLimit(
- ) external returns (uint256)
-```
-
-
-
-
-### maxAvailableShares
-```solidity
- function maxAvailableShares(
- ) external returns (uint256)
-```
-
-
-
-
-### creditAvailable
-```solidity
- function creditAvailable(
- ) external returns (uint256)
-```
-View how much the Vault would increase this Strategy's borrow limit,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### debtOutstanding
-```solidity
- function debtOutstanding(
- ) external returns (uint256)
-```
-View how much the Vault would like to pull back from the Strategy,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### expectedReturn
-```solidity
- function expectedReturn(
- ) external returns (uint256)
-```
-View how much the Vault expect this Strategy to return at the current
-block, based on its present performance (since its last report). Can be
-used to determine expectedReturn in your Strategy.
-
-
-
-### report
-```solidity
- function report(
- ) external returns (uint256)
-```
-This is the main contact point where the Strategy interacts with the
-Vault. It is critical that this call is handled as intended by the
-Strategy. Therefore, this function will be called by BaseStrategy to
-make sure the integration is correct.
-
-
-
-### revokeStrategy
-```solidity
- function revokeStrategy(
- ) external
-```
-This function should only be used in the scenario where the Strategy is
-being retired but no migration of the positions are possible, or in the
-extreme scenario that the Strategy needs to be put into "Emergency Exit"
-mode in order for it to exit as quickly as possible. The latter scenario
-could be for any reason that is considered "critical" that the Strategy
-exits its position as fast as possible, such as a sudden change in
-market conditions leading to losses, or an imminent failure in an
-external dependency.
-
-
-
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-View the governance address of the Vault to assert privileged functions
-can only be called by governance. The Strategy serves the Vault, so it
-is subject to governance defined by the Vault.
-
-
-
-### management
-```solidity
- function management(
- ) external returns (address)
-```
-View the management address of the Vault to assert privileged functions
-can only be called by management. The Strategy serves the Vault, so it
-is subject to management defined by the Vault.
-
-
-
-### guardian
-```solidity
- function guardian(
- ) external returns (address)
-```
-View the guardian address of the Vault to assert privileged functions
-can only be called by guardian. The Strategy serves the Vault, so it
-is subject to guardian defined by the Vault.
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/registry.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/registry.md
deleted file mode 100644
index 4cf44c7835..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/registry.md
+++ /dev/null
@@ -1,411 +0,0 @@
-# Registry.vy
-
-
-
-
-
-
-
-## Functions
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Starts the 1st phase of the governance transfer.
-
-
-*Throws if the caller is not current governance.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The next governance address * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Completes the 2nd phase of the governance transfer.
-
-
-*Throws if the caller is not the pending caller. Emits a `NewGovernance` event.*
-
-
-
-
-
-
-
-### latestRelease
-```solidity
-function latestRelease()
-```
-
-
-Returns the api version of the latest release.
-
-
-*Throws if no releases are registered yet.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The api version of the latest release. * |
-
-
-
-
-
-
-### latestVault
-```solidity
-function latestVault(address)
-```
-
-
-Returns the latest deployed vault for the given token.
-
-
-*Throws if no vaults are endorsed yet for the given token.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token address to find the latest vault for. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the latest vault for the given token. * |
-
-
-
-
-
-
-### newRelease
-```solidity
-function newRelease(address)
-```
-
-
-Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
-
-
-*Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be used as the template contract for the next release. * |
-
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string,uint256)
-```
-
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address)
-```
-
-
-Adds an existing vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address)
-```
-
-
-Set the ability of a particular tagger to tag current vaults.
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address,bool)
-```
-
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### tagVault
-```solidity
-function tagVault(address,string)
-```
-
-
-Tag a Vault with a message.
-
-
-*Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The address to tag with the given `tag` message. * |
-| * tag * | * * | * The message to tag `vault` with. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**NewRelease**
-
-* `release_id` : uint256, *indexed*
-* `template` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewVault**
-
-* `token` : address, *indexed*
-* `vault_id` : uint256, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewExperimentalVault**
-
-* `token` : address, *indexed*
-* `deployer` : address, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewGovernance**
-
-* `governance` : address, *notIndexed*
-
-**VaultTagged**
-
-* `vault` : address, *notIndexed*
-* `tag` : string, *notIndexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/AffiliateToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/AffiliateToken.md
deleted file mode 100644
index b2ea31868d..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/AffiliateToken.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _getChainId
-```solidity
- function _getChainId(
- ) internal returns (uint256)
-```
-
-
-
-
-### setAffiliate
-```solidity
- function setAffiliate(
- ) external
-```
-
-
-
-
-### acceptAffiliate
-```solidity
- function acceptAffiliate(
- ) external
-```
-
-
-
-
-### _shareValue
-```solidity
- function _shareValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### _sharesForValue
-```solidity
- function _sharesForValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) public returns (uint256 deposited)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) public returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- address owner,
- address spender,
- uint256 amount,
- uint256 deadline,
- uint8 v,
- bytes32 r,
- bytes32 s
- ) external
-```
-Triggers an approval from owner to spends
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`owner` | address | The address to approve from
-|`spender` | address | The address to be approved
-|`amount` | uint256 | The number of tokens that are approved (2^256-1 means infinite)
-|`deadline` | uint256 | The time at which to expire the signature
-|`v` | uint8 | The recovery byte of the signature
-|`r` | bytes32 | Half of the ECDSA signature pair
-|`s` | bytes32 | Half of the ECDSA signature pair
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TestGuestList.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TestGuestList.md
deleted file mode 100644
index ba34279f4b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TestGuestList.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-A basic guest list contract for testing.
-
-For a Vyper implementation of this contract containing additional
-functionality, see https://github.com/banteg/guest-list/blob/master/contracts/GuestList.vy
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-Create the test guest list, setting the message sender as
-`bouncer`.
-
-Note that since this is just for testing, you're unable to change
-`bouncer`.
-
-
-### setGuests
-```solidity
- function setGuests(
- address[] _guests,
- bool[] _invited
- ) external
-```
-Invite guests or kick them from the party.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guests` | address[] | The guests to add or update.
-|`_invited` | bool[] | A flag for each guest at the matching index, inviting or
-uninviting the guest.
-
-### authorized
-```solidity
- function authorized(
- address _guest,
- uint256 _amount
- ) external returns (bool)
-```
-Check if a guest with a bag of a certain size is allowed into
-the party.
-
-Note that `_amount` isn't checked to keep test setup simple, since
-from the vault tests' perspective this is a pass/fail call anyway.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guest` | address | The guest's address to check.
-|`_amount` | uint256 | Not used. The amount of tokens the guest is bringing.
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TestStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TestStrategy.md
deleted file mode 100644
index e7f6143783..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TestStrategy.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### _toggleDelegation
-```solidity
- function _toggleDelegation(
- ) public
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### _takeFunds
-```solidity
- function _takeFunds(
- ) public
-```
-
-
-
-
-### _toggleReentrancyExploit
-```solidity
- function _toggleReentrancyExploit(
- ) public
-```
-
-
-
-
-### _setWant
-```solidity
- function _setWant(
- ) public
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-
-
-
-
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/Token.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/Token.md
deleted file mode 100644
index 6bc7e4f416..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/Token.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### _beforeTokenTransfer
-```solidity
- function _beforeTokenTransfer(
- ) internal
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TokenFalseReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TokenFalseReturn.md
deleted file mode 100644
index 82c282f5fa..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TokenFalseReturn.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TokenNoReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TokenNoReturn.md
deleted file mode 100644
index 311566ddb6..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/test/TokenNoReturn.md
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) external
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) external
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) external
-```
-
-
-
-
-## Events
-### Transfer
-```solidity
- event Transfer(
- )
-```
-
-
-
-### Approval
-```solidity
- event Approval(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/utils/ProxyFactoryInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/utils/ProxyFactoryInitializable.md
deleted file mode 100644
index 7d1fd7ea2a..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/utils/ProxyFactoryInitializable.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-## Functions
-### deployMinimal
-```solidity
- function deployMinimal(
- ) external returns (address proxy, bytes returnData)
-```
-
-
-
-
-### _getRevertMsg
-```solidity
- function _getRevertMsg(
- bytes _res
- ) internal returns (string)
-```
-This is needed in order to get the human-readable revert message from a call
-
-Get the revert message from a call
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_res` | bytes | Response of the call
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`Revert`| bytes | message string
-### slice
-```solidity
- function slice(
- ) internal returns (bytes)
-```
-
-
-
-
-## Events
-### ProxyCreated
-```solidity
- event ProxyCreated(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/vault.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/vault.md
deleted file mode 100644
index 45d9718229..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/vault.md
+++ /dev/null
@@ -1,1378 +0,0 @@
-# Vault.vy
-
-
-**Yearn Token Vault**
-
-
-
-
-
-*Yearn Token Vault. Holds an underlying token, and allows users to interact with the Yearn ecosystem through Strategies connected to the Vault. Vaults are not limited to a single Strategy, they can have as many Strategies as can be designed (however the withdrawal queue is capped at 20.) Deposited funds are moved into the most impactful strategy that has not already reached its limit for assets under management, regardless of which Strategy a user's funds end up in, they receive their portion of yields generated across all Strategies. When a user withdraws, if there are no funds sitting undeployed in the Vault, the Vault withdraws funds from Strategies in the order of least impact. (Funds are taken from the Strategy that will disturb everyone's gains the least, then the next least, etc.) In order to achieve this, the withdrawal queue's order must be properly set and managed by the community (through governance). Vault Strategies are parameterized to pursue the highest risk-adjusted yield. There is an "Emergency Shutdown" mode. When the Vault is put into emergency shutdown, assets will be recalled from the Strategies as quickly as is practical (given onchain conditions), minimizing loss. Deposits are halted, new Strategies may not be added, and each Strategy exits with the minimum possible damage to position, while opening up deposits to be withdrawn by users. There are no restrictions on withdrawals above what is expected under Normal Operation. For further details, please refer to the specification: https://github.com/iearn-finance/yearn-vaults/blob/master/SPECIFICATION.md*
-
-
-## Functions
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string)
-```
-
-
-Initializes the Vault, this is called only once, when the contract is deployed. The performance fee is set to 10% of yield, per Strategy. The management fee is set to 2%, per year. The initial deposit limit is set to 0 (deposits disabled); it must be updated after initialization.
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### apiVersion
-```solidity
-function apiVersion()
-```
-
-
-Used to track the deployed version of this contract. In practice you can use this version number to compare with Yearn's GitHub and determine which version of the source matches this deployed contract.
-
-
-*All strategies must have an `apiVersion()` that matches the Vault's `API_VERSION`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * API_VERSION which holds the current version of this contract. * |
-
-
-
-
-
-
-### setName
-```solidity
-function setName(string)
-```
-
-
-Used to change the value of `name`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * name * | * * | * The new name to use. * |
-
-
-
-
-
-
-
-### setSymbol
-```solidity
-function setSymbol(string)
-```
-
-
-Used to change the value of `symbol`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * symbol * | * * | * The new symbol to use. * |
-
-
-
-
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Nominate a new address to use as governance. The change does not go into effect immediately. This function sets a pending change, and the governance address is not updated until the proposed governance address has accepted the responsibility. This may only be called by the current governance address.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The address requested to take over Vault governance. * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Once a new governance address has been proposed using setGovernance(), this function may be called by the proposed address to accept the responsibility of taking over governance for this contract. This may only be called by the proposed governance address.
-
-
-*setGovernance() should be called by the existing governance address, prior to calling this function.*
-
-
-
-
-
-
-
-### setManagement
-```solidity
-function setManagement(address)
-```
-
-
-Changes the management address. Management is able to make some investment decisions adjusting parameters. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * management * | * * | * The address to use for managing. * |
-
-
-
-
-
-
-
-### setGuestList
-```solidity
-function setGuestList(address)
-```
-
-
-Used to set or change `guestList`. A guest list is another contract that dictates who is allowed to participate in a Vault (and transfer shares). This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guestList * | * * | * The address of the `GuestList` contract to use. * |
-
-
-
-
-
-
-
-### setRewards
-```solidity
-function setRewards(address)
-```
-
-
-Changes the rewards address. Any distributed rewards will cease flowing to the old address and begin flowing to this address once the change is in effect. This will not change any Strategy reports in progress, only new reports made after this change goes into effect. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * rewards * | * * | * The address to use for collecting rewards. * |
-
-
-
-
-
-
-
-### setLockedProfitDegration
-```solidity
-function setLockedProfitDegration(uint256)
-```
-
-
-Changes the locked profit degration.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * degration * | * * | * The rate of degration in percent per second scaled to 1e18. * |
-
-
-
-
-
-
-
-### setDepositLimit
-```solidity
-function setDepositLimit(uint256)
-```
-
-
-Changes the maximum amount of tokens that can be deposited in this Vault. Note, this is not how much may be deposited by a single depositor, but the maximum amount that may be deposited across all depositors. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * limit * | * * | * The new deposit limit to use. * |
-
-
-
-
-
-
-
-### setPerformanceFee
-```solidity
-function setPerformanceFee(uint256)
-```
-
-
-Used to change the value of `performanceFee`. Should set this value below the maximum strategist performance fee. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new performance fee to use. * |
-
-
-
-
-
-
-
-### setManagementFee
-```solidity
-function setManagementFee(uint256)
-```
-
-
-Used to change the value of `managementFee`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new management fee to use. * |
-
-
-
-
-
-
-
-### setGuardian
-```solidity
-function setGuardian(address)
-```
-
-
-Used to change the address of `guardian`. This may only be called by governance or the existing guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guardian * | * * | * The new guardian address to use. * |
-
-
-
-
-
-
-
-### setEmergencyShutdown
-```solidity
-function setEmergencyShutdown(bool)
-```
-
-
-Activates or deactivates Vault mode where all Strategies go into full withdrawal. During Emergency Shutdown: 1. No Users may deposit into the Vault (but may withdraw as usual.) 2. Governance may not add new Strategies. 3. Each Strategy must pay back their debt as quickly as reasonable to minimally affect their position. 4. Only Governance may undo Emergency Shutdown. See contract level note for further details. This may only be called by governance or the guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * active * | * * | * If true, the Vault goes into Emergency Shutdown. If false, the Vault goes back into Normal Operation. * |
-
-
-
-
-
-
-
-### setWithdrawalQueue
-```solidity
-function setWithdrawalQueue(address[20])
-```
-
-
-Updates the withdrawalQueue to match the addresses and order specified by `queue`. There can be fewer strategies than the maximum, as well as fewer than the total number of strategies active in the vault. `withdrawalQueue` will be updated in a gas-efficient manner, assuming the input is well- ordered with 0x0 only at the end. This may only be called by governance or management.
-
-
-*This is order sensitive, specify the addresses in the order in which funds should be withdrawn (so `queue`[0] is the first Strategy withdrawn from, `queue`[1] is the second, etc.) This means that the least impactful Strategy (the Strategy that will have its core positions impacted the least by having funds removed) should be at `queue`[0], then the next least impactful at `queue`[1], and so on.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * queue * | * * | * The array of addresses to use as the new withdrawal queue. This is order sensitive. * |
-
-
-
-
-
-
-
-### transfer
-```solidity
-function transfer(address,uint256)
-```
-
-
-Transfers shares from the caller's address to `receiver`. This function will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### transferFrom
-```solidity
-function transferFrom(address,address,uint256)
-```
-
-
-Transfers `amount` shares from `sender` to `receiver`. This operation will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0. Unless the caller has given this contract unlimited approval, transfering shares will decrement the caller's `allowance` by `amount`.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * sender * | * * | * The address shares are being transferred from. * |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### approve
-```solidity
-function approve(address,uint256)
-```
-
-
-
-*Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-
-
-
-
-
-
-
-### increaseAllowance
-```solidity
-function increaseAllowance(address,uint256)
-```
-
-
-
-*Increase the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to increase the allowance by. * |
-
-
-
-
-
-
-
-### decreaseAllowance
-```solidity
-function decreaseAllowance(address,uint256)
-```
-
-
-
-*Decrease the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to decrease the allowance by. * |
-
-
-
-
-
-
-
-### permit
-```solidity
-function permit(address,address,uint256,uint256,bytes)
-```
-
-
-Approves spender by owner's signature to expend owner's tokens. See https://eips.ethereum.org/EIPS/eip-2612.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * owner * | * * | * The address which is a source of funds and has signed the Permit. * |
-| * spender * | * * | * The address which is allowed to spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-| * expiry * | * * | * The timestamp after which the Permit is no longer valid. * |
-| * signature * | * * | * A valid secp256k1 signature of Permit by owner encoded as r, s, v. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True, if transaction completes successfully * |
-
-
-
-
-
-
-### totalAssets
-```solidity
-function totalAssets()
-```
-
-
-Returns the total quantity of all assets under control of this Vault, whether they're loaned out to a Strategy, or currently held in the Vault.
-
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total assets under control of this Vault. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit()
-```
-
-
-Deposits `_amount` `token`, issuing shares to `recipient`. If the Vault is in Emergency Shutdown, deposits will not be accepted and this call will fail.
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256,address)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### maxAvailableShares
-```solidity
-function maxAvailableShares()
-```
-
-
-Determines the maximum quantity of shares this Vault can facilitate a withdrawal for, factoring in assets currently residing in the Vault, as well as those deployed to strategies on the Vault's balance sheet.
-
-
-*Regarding how shares are calculated, see dev note on `deposit`. If you want to calculated the maximum a user could withdraw up to, you want to use this function. Note that the amount provided by this function is the theoretical maximum possible from withdrawing, the real amount depends on the realized losses incurred during withdrawal.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total quantity of shares this Vault can provide. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw()
-```
-
-
-Withdraws the calling account's tokens from this Vault, redeeming amount `_shares` for an appropriate amount of tokens. See note on `setWithdrawalQueue` for further details of withdrawal ordering and behavior.
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address,uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### pricePerShare
-```solidity
-function pricePerShare()
-```
-
-
-Gives the price for a single Vault share.
-
-
-*See dev note on `withdraw`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The value of a single share. * |
-
-
-
-
-
-
-### addStrategy
-```solidity
-function addStrategy(address,uint256,uint256,uint256,uint256)
-```
-
-
-Add a Strategy to the Vault. This may only be called by governance.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The address of the Strategy to add. * |
-| * debtRatio * | * * | * The share of the total assets in the `vault that the `strategy` has access to. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-| * performanceFee * | * * | * The fee the strategist will receive based on this Vault's performance. * |
-
-
-
-
-
-
-
-### updateStrategyDebtRatio
-```solidity
-function updateStrategyDebtRatio(address,uint256)
-```
-
-
-Change the quantity of assets `strategy` may manage. This may be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * debtRatio * | * * | * The quantity of assets `strategy` may now manage. * |
-
-
-
-
-
-
-
-### updateStrategyMinDebtPerHarvest
-```solidity
-function updateStrategyMinDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyMaxDebtPerHarvest
-```solidity
-function updateStrategyMaxDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyPerformanceFee
-```solidity
-function updateStrategyPerformanceFee(address,uint256)
-```
-
-
-Change the fee the strategist will receive based on this Vault's performance. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * performanceFee * | * * | * The new fee the strategist will receive. * |
-
-
-
-
-
-
-
-### migrateStrategy
-```solidity
-function migrateStrategy(address,address)
-```
-
-
-Migrates a Strategy, including all assets from `oldVersion` to `newVersion`. This may only be called by governance.
-
-
-*Strategy must successfully migrate all capital and positions to new Strategy, or else this will upset the balance of the Vault. The new Strategy should be "empty" e.g. have no prior commitments to this Vault, otherwise it could have issues.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * oldVersion * | * * | * The existing Strategy to migrate from. * |
-| * newVersion * | * * | * The new Strategy to migrate to. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy()
-```
-
-
-Revoke a Strategy, setting its debt limit to 0 and preventing any future deposits. This function should only be used in the scenario where the Strategy is being retired but no migration of the positions are possible, or in the extreme scenario that the Strategy needs to be put into "Emergency Exit" mode in order for it to exit as quickly as possible. The latter scenario could be for any reason that is considered "critical" that the Strategy exits its position as fast as possible, such as a sudden change in market conditions leading to losses, or an imminent failure in an external dependency. This may only be called by governance, the guardian, or the Strategy itself. Note that a Strategy will only revoke itself during emergency shutdown.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### addStrategyToQueue
-```solidity
-function addStrategyToQueue(address)
-```
-
-
-Adds `strategy` to `withdrawalQueue`. This may only be called by governance or management.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to add. * |
-
-
-
-
-
-
-
-### removeStrategyFromQueue
-```solidity
-function removeStrategyFromQueue(address)
-```
-
-
-Remove `strategy` from `withdrawalQueue`. This may only be called by governance or management.
-
-
-*We don't do this with revokeStrategy because it should still be possible to withdraw from the Strategy if it's unwinding.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to remove. * |
-
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding()
-```
-
-
-Determines if `strategy` is past its debt limit and if any tokens should be withdrawn to the Vault.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable()
-```
-
-
-Amount of tokens in Vault a Strategy has access to as a credit line. This will check the Strategy's debt limit, as well as the tokens available in the Vault, and determine the maximum amount of tokens (if any) the Strategy may draw on. In the rare case the Vault is in emergency shutdown this will return 0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn()
-```
-
-
-Provide an accurate expected value for the return this `strategy` would provide to the Vault the next time `report()` is called (since the last time it was called).
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### report
-```solidity
-function report(uint256,uint256,uint256)
-```
-
-
-Reports the amount of assets the calling Strategy has free (usually in terms of ROI). The performance fee is determined here, off of the strategy's profits (if any), and sent to governance. The strategist's fee is also determined here (off of profits), to be handled according to the strategist on the next harvest. This may only be called by a Strategy managed by this Vault.
-
-
-*For approved strategies, this is the most efficient behavior. The Strategy reports back what it has free, then Vault "decides" whether to take some back or give it more. Note that the most it can take is `gain + _debtPayment`, and the most it can give is all of the remaining reserves. Anything outside of those bounds is abnormal behavior. All approved strategies must have increased diligence around calling this function, as abnormal behavior could become catastrophic.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * gain * | * * | * Amount Strategy has realized as a gain on its investment since its last report, and is free to be given back to Vault as earnings * |
-| * loss * | * * | * Amount Strategy has realized as a loss on its investment since its last report, and should be accounted for on the Vault's balance sheet * |
-| * _debtPayment * | * * | * Amount Strategy has made available to cover outstanding debt * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * Amount of debt outstanding (if totalDebt > debtLimit or emergency shutdown). * |
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address)
-```
-
-
-Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault. Tokens will be sent to `governance`. This will fail if an attempt is made to sweep the tokens that this Vault manages. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address,uint256)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**Transfer**
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**Approval**
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**StrategyAdded**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyReported**
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `debtPaid` : uint256, *notIndexed*
-* `totalGain` : uint256, *notIndexed*
-* `totalLoss` : uint256, *notIndexed*
-* `totalDebt` : uint256, *notIndexed*
-* `debtAdded` : uint256, *notIndexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**UpdateGovernance**
-
-* `governance` : address, *notIndexed*
-
-**UpdateManagement**
-
-* `management` : address, *notIndexed*
-
-**UpdateGuestList**
-
-* `guestList` : address, *notIndexed*
-
-**UpdateRewards**
-
-* `rewards` : address, *notIndexed*
-
-**UpdateDepositLimit**
-
-* `depositLimit` : uint256, *notIndexed*
-
-**UpdatePerformanceFee**
-
-* `performanceFee` : uint256, *notIndexed*
-
-**UpdateManagementFee**
-
-* `managementFee` : uint256, *notIndexed*
-
-**UpdateGuardian**
-
-* `guardian` : address, *notIndexed*
-
-**EmergencyShutdown**
-
-* `active` : bool, *notIndexed*
-
-**UpdateWithdrawalQueue**
-
-* `queue` : address[20], *notIndexed*
-
-**StrategyUpdateDebtRatio**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**StrategyUpdateMinDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdateMaxDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdatePerformanceFee**
-
-* `strategy` : address, *indexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyMigrated**
-
-* `oldVersion` : address, *indexed*
-* `newVersion` : address, *indexed*
-
-**StrategyRevoked**
-
-* `strategy` : address, *indexed*
-
-**StrategyRemovedFromQueue**
-
-* `strategy` : address, *indexed*
-
-**StrategyAddedToQueue**
-
-* `strategy` : address, *indexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/yToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/yToken.md
deleted file mode 100644
index ccbc709769..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/yToken.md
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### totalSupply
-```solidity
- function totalSupply(
- ) external returns (uint256 total)
-```
-
-
-
-
-### balanceOf
-```solidity
- function balanceOf(
- ) external returns (uint256 balance)
-```
-
-
-
-
-### _transfer
-```solidity
- function _transfer(
- ) internal
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### _approve
-```solidity
- function _approve(
- ) internal
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
-### increaseAllowance
-```solidity
- function increaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### decreaseAllowance
-```solidity
- function decreaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### _permitAll
-```solidity
- function _permitAll(
- ) internal
-```
-
-
-
-
-### permitAll
-```solidity
- function permitAll(
- ) public
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### revokeAll
-```solidity
- function revokeAll(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/yWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/yWETH.md
deleted file mode 100644
index 459bc7b3f1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.4/yWETH.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### depositETH
-```solidity
- function depositETH(
- ) public returns (uint256)
-```
-
-
-
-
-### withdrawETH
-```solidity
- function withdrawETH(
- ) external returns (uint256 withdrawn)
-```
-
-
-
-
-### receive
-```solidity
- function receive(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseStrategy.md
deleted file mode 100644
index df5f393cca..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseStrategy.md
+++ /dev/null
@@ -1,673 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) public returns (string)
-```
-
- Used to track which version of `StrategyAPI` this Strategy
- implements.
-
-The Strategy's version must match the Vault's `API_VERSION`.
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`A`| | string which holds the current API version of this contract.
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-This Strategy's name.
-@dev
- You can use this field to manage the "version" of this Strategy, e.g.
- `StrategySomethingOrOtherV1`. However, "API Version" is managed by
- `apiVersion()` function above.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`This`| | Strategy's name.
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
- The amount (priced in want) of the total assets managed by this strategy should not count
- towards Yearn's TVL calculations.
-@dev
- You can override this field to set it to a non-zero value if some of the assets of this
- Strategy is somehow delegated inside another part of Yearn's ecosystem e.g. another Vault.
- Note that this value must be strictly less than or equal to the amount provided by
- `estimatedTotalAssets()` below, as the TVL calc will be total assets minus delegated assets.
- Also note that this value is used to determine the total assets under management by this
- strategy, for the purposes of computing the management fee in `Vault`
-@return
- The amount of assets this strategy manages that should not be included in Yearn's Total Value
- Locked (TVL) calculation across its ecosystem.
-
-
-
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _initialize
-```solidity
- function _initialize(
- address _vault
- ) internal
-```
-
- Initializes the Strategy, this is called only once, when the
- contract is deployed.
-
-`_vault` should implement `VaultAPI`.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_vault` | address | The address of the Vault responsible for this Strategy.
-
-### setStrategist
-```solidity
- function setStrategist(
- address _strategist
- ) external
-```
-
- Used to change `strategist`.
-
- This may only be called by governance or the existing strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_strategist` | address | The new address to assign as `strategist`.
-
-### setKeeper
-```solidity
- function setKeeper(
- address _keeper
- ) external
-```
-
- Used to change `keeper`.
-
- `keeper` is the only address that may call `tend()` or `harvest()`,
- other than `governance()` or `strategist`. However, unlike
- `governance()` or `strategist`, `keeper` may *only* call `tend()`
- and `harvest()`, and no other authorized functions, following the
- principle of least privilege.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_keeper` | address | The new address to assign as `keeper`.
-
-### setRewards
-```solidity
- function setRewards(
- address _rewards
- ) external
-```
-
- Used to change `rewards`. EOA or smart contract which has the permission
- to pull rewards from the vault.
-
- This may only be called by the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_rewards` | address | The address to use for pulling rewards.
-
-### setMinReportDelay
-```solidity
- function setMinReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `minReportDelay`. `minReportDelay` is the minimum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the minimum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The minimum number of seconds to wait between harvests.
-
-### setMaxReportDelay
-```solidity
- function setMaxReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `maxReportDelay`. `maxReportDelay` is the maximum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the maximum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The maximum number of seconds to wait between harvests.
-
-### setProfitFactor
-```solidity
- function setProfitFactor(
- uint256 _profitFactor
- ) external
-```
-
- Used to change `profitFactor`. `profitFactor` is used to determine
- if it's worthwhile to harvest, given gas costs. (See `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_profitFactor` | uint256 | A ratio to multiply anticipated
-`harvest()` gas cost against.
-
-### setDebtThreshold
-```solidity
- function setDebtThreshold(
- uint256 _debtThreshold
- ) external
-```
-
- Sets how far the Strategy can go into loss without a harvest and report
- being required.
-
- By default this is 0, meaning any losses would cause a harvest which
- will subsequently report the loss to the Vault for tracking. (See
- `harvestTrigger()` for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_debtThreshold` | uint256 | How big of a loss this Strategy may carry without
-being required to report to the Vault.
-
-### setMetadataURI
-```solidity
- function setMetadataURI(
- string _metadataURI
- ) external
-```
-
- Used to change `metadataURI`. `metadataURI` is used to store the URI
-of the file describing the strategy.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_metadataURI` | string | The URI that describe the strategy.
-
-### governance
-```solidity
- function governance(
- ) internal returns (address)
-```
-Resolve governance address from Vault contract, used to make assertions
-on protected functions in the Strategy.
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
- Provide an accurate estimate for the total amount of assets
- (principle + return) that this Strategy is currently managing,
- denominated in terms of `want` tokens.
-
- This total should be "realizable" e.g. the total value that could
- *actually* be obtained from this Strategy if it were to divest its
- entire position based on current onchain conditions.
-@dev
- Care must be taken in using this function, since it relies on external
- systems, which could be manipulated by the attacker to give an inflated
- (or reduced) value produced by this function, based on current onchain
- conditions (e.g. this function is possible to influence through
- flashloan attacks, oracle manipulations, or other DeFi attack
- mechanisms).
-
- It is up to governance to use this function to correctly order this
- Strategy relative to its peers in the withdrawal queue to minimize
- losses for the Vault based on sudden withdrawals. This value should be
- higher than the total debt of the Strategy and higher than its expected
- value to be "safe".
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| | estimated total assets in this Strategy.
-### isActive
-```solidity
- function isActive(
- ) public returns (bool)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-Perform any Strategy unwinding or other calls necessary to capture the
-"free return" this Strategy has generated since the last time its core
-position(s) were adjusted. Examples include unwrapping extra rewards.
-This call is only used during "normal operation" of a Strategy, and
-should be optimized to minimize losses as much as possible.
-
-This method returns any realized profits and/or realized losses
-incurred, and should return the total amounts of profits/losses/debt
-payments (in `want` tokens) for the Vault's accounting (e.g.
-`want.balanceOf(this) >= _debtPayment + _profit - _loss`).
-
-`_debtOutstanding` will be 0 if the Strategy is not past the configured
-debt limit, otherwise its value will be how far past the debt limit
-the Strategy is. The Strategy's debt limit is configured in the Vault.
-
-NOTE: `_debtPayment` should be less than or equal to `_debtOutstanding`.
- It is okay for it to be less than `_debtOutstanding`, as that
- should only used as a guide for how much is left to pay back.
- Payments should be made to minimize loss from slippage, debt,
- withdrawal fees, etc.
-
-See `vault.debtOutstanding()`.
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-Perform any adjustments to the core position(s) of this Strategy given
-what change the Vault made in the "investable capital" available to the
-Strategy. Note that all "free capital" in the Strategy after the report
-was made is available for reinvestment. Also note that this number
-could be 0, and you should handle that scenario accordingly.
-
-See comments regarding `_debtOutstanding` on `prepareReturn()`.
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-Liquidate up to `_amountNeeded` of `want` of this strategy's positions,
-irregardless of slippage. Any excess will be re-invested with `adjustPosition()`.
-This function should return the amount of `want` tokens made available by the
-liquidation. If there is a difference between them, `_loss` indicates whether the
-difference is due to a realized loss, or if there is some other sitution at play
-(e.g. locked funds) where the amount made available is less than what is needed.
-This function is used during emergency exit instead of `prepareReturn()` to
-liquidate all of the Strategy's positions back to the Vault.
-
-NOTE: The invariant `_liquidatedAmount + _loss <= _amountNeeded` should always be maintained
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `tend()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `tend()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `tend()` is not called
- shortly, then this can return `true` even if the keeper might be
- "at a loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `harvestTrigger()` should never return `true` at the same
- time.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `tend()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `tend()` should be called, `false` otherwise.
-### tend
-```solidity
- function tend(
- ) external
-```
-
- Adjust the Strategy's position. The purpose of tending isn't to
- realize gains, but to maximize yield by reinvesting any returns.
-
- See comments on `adjustPosition()`.
-
- This may only be called by governance, the strategist, or the keeper.
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- uint256 callCost
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `harvest()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `harvest()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `harvest()` is not called
- shortly, then this can return `true` even if the keeper might be "at a
- loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCost` must be priced in terms of `want`.
-
- This call and `tendTrigger` should never return `true` at the
- same time.
-
- See `min/maxReportDelay`, `profitFactor`, `debtThreshold` to adjust the
- strategist-controlled parameters that will influence whether this call
- returns `true` or not. These parameters will be used in conjunction
- with the parameters reported to the Vault (see `params`) to determine
- if calling `harvest()` is merited.
-
- It is expected that an external system will check `harvestTrigger()`.
- This could be a script run off a desktop or cloud bot (e.g.
- https://github.com/iearn-finance/yearn-vaults/blob/master/scripts/keep.py),
- or via an integration with the Keep3r network (e.g.
- https://github.com/Macarse/GenericKeep3rV2/blob/master/contracts/keep3r/GenericKeep3rV2.sol).
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCost` | uint256 | The keeper's estimated cast cost to call `harvest()`.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `harvest()` should be called, `false` otherwise.
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
- Harvests the Strategy, recognizing any profits or losses and adjusting
- the Strategy's position.
-
- In the rare case the Strategy is in emergency shutdown, this will exit
- the Strategy's position.
-
- This may only be called by governance, the strategist, or the keeper.
-@dev
- When `harvest()` is called, the Strategy reports to the Vault (via
- `vault.report()`), so in some cases `harvest()` must be called in order
- to take in profits, to borrow newly available funds from the Vault, or
- otherwise adjust its position. In other cases `harvest()` must be
- called to report to the Vault on the Strategy's position, especially if
- any losses have occurred.
-
-
-
-### withdraw
-```solidity
- function withdraw(
- uint256 _amountNeeded
- ) external returns (uint256 _loss)
-```
-
- Withdraws `_amountNeeded` to `vault`.
-
- This may only be called by the Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amountNeeded` | uint256 | How much `want` to withdraw.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`_loss`| uint256 | Any realized losses
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-Do anything necessary to prepare this Strategy for migration, such as
-transferring any reserve or LP tokens, CDPs, or other tokens or stores of
-value.
-
-
-
-### migrate
-```solidity
- function migrate(
- address _newStrategy
- ) external
-```
-
- Transfers all `want` from this Strategy to `_newStrategy`.
-
- This may only be called by governance or the Vault.
-@dev
- The new Strategy's Vault must be the same as this Strategy's Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_newStrategy` | address | The Strategy to migrate to.
-
-### setEmergencyExit
-```solidity
- function setEmergencyExit(
- ) external
-```
-
- Activates emergency exit. Once activated, the Strategy will exit its
- position upon the next harvest, depositing all funds into the Vault as
- quickly as is reasonable given onchain conditions.
-
- This may only be called by governance or the strategist.
-@dev
- See `vault.setEmergencyShutdown()` and `harvest()` for further details.
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-Override this to add all tokens/tokenized positions this contract
-manages on a *persistent* basis (e.g. not just for swapping back to
-want ephemerally).
-
-NOTE: Do *not* include `want`, already included in `sweep` below.
-
-Example:
-```solidity
- function protectedTokens() internal override view returns (address[] memory) {
- address[] memory protected = new address[](3);
- protected[0] = tokenA;
- protected[1] = tokenB;
- protected[2] = tokenC;
- return protected;
- }
-```
-
-
-### sweep
-```solidity
- function sweep(
- address _token
- ) external
-```
-
- Removes tokens from this Strategy that are not the type of tokens
- managed by this Strategy. This may be used in case of accidentally
- sending the wrong kind of token to this Strategy.
-
- Tokens will be sent to `governance()`.
-
- This will fail if an attempt is made to sweep `want`, or any tokens
- that are protected by this Strategy.
-
- This may only be called by governance.
-@dev
- Implement `protectedTokens()` to specify any additional tokens that
- should be protected from sweeping in addition to `want`.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_token` | address | The token to transfer out of this vault.
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
-### UpdatedStrategist
-```solidity
- event UpdatedStrategist(
- )
-```
-
-
-
-### UpdatedKeeper
-```solidity
- event UpdatedKeeper(
- )
-```
-
-
-
-### UpdatedRewards
-```solidity
- event UpdatedRewards(
- )
-```
-
-
-
-### UpdatedMinReportDelay
-```solidity
- event UpdatedMinReportDelay(
- )
-```
-
-
-
-### UpdatedMaxReportDelay
-```solidity
- event UpdatedMaxReportDelay(
- )
-```
-
-
-
-### UpdatedProfitFactor
-```solidity
- event UpdatedProfitFactor(
- )
-```
-
-
-
-### UpdatedDebtThreshold
-```solidity
- event UpdatedDebtThreshold(
- )
-```
-
-
-
-### EmergencyExitEnabled
-```solidity
- event EmergencyExitEnabled(
- )
-```
-
-
-
-### UpdatedMetadataURI
-```solidity
- event UpdatedMetadataURI(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseStrategyInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseStrategyInitializable.md
deleted file mode 100644
index 90b02232d3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseStrategyInitializable.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### initialize
-```solidity
- function initialize(
- ) external
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address)
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address newStrategy)
-```
-
-
-
-
-## Events
-### Cloned
-```solidity
- event Cloned(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseWrapper.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseWrapper.md
deleted file mode 100644
index dda2343de7..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/BaseWrapper.md
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### setRegistry
-```solidity
- function setRegistry(
- ) external
-```
-
-
-
-
-### bestVault
-```solidity
- function bestVault(
- ) public returns (contract VaultAPI)
-```
-
-
-
-
-### allVaults
-```solidity
- function allVaults(
- ) public returns (contract VaultAPI[])
-```
-
-
-
-
-### _updateVaultCache
-```solidity
- function _updateVaultCache(
- ) internal
-```
-
-
-
-
-### totalVaultBalance
-```solidity
- function totalVaultBalance(
- ) public returns (uint256 balance)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) public returns (uint256 assets)
-```
-
-
-
-
-### _deposit
-```solidity
- function _deposit(
- ) internal returns (uint256 deposited)
-```
-
-
-
-
-### _withdraw
-```solidity
- function _withdraw(
- ) internal returns (uint256 withdrawn)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256 migrated)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/IWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/IWETH.md
deleted file mode 100644
index 383b7b45bb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/IWETH.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-## Functions
-### deposit
-```solidity
- function deposit(
- ) external
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/RegistryAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/RegistryAPI.md
deleted file mode 100644
index 1d3ea44db3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/RegistryAPI.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-
-
-
-
-### latestVault
-```solidity
- function latestVault(
- ) external returns (address)
-```
-
-
-
-
-### numVaults
-```solidity
- function numVaults(
- ) external returns (uint256)
-```
-
-
-
-
-### vaults
-```solidity
- function vaults(
- ) external returns (address)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/StrategyAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/StrategyAPI.md
deleted file mode 100644
index 3ac6fbf6eb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/StrategyAPI.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-This interface is here for the keeper bot to use.
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### vault
-```solidity
- function vault(
- ) external returns (address)
-```
-
-
-
-
-### want
-```solidity
- function want(
- ) external returns (address)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### keeper
-```solidity
- function keeper(
- ) external returns (address)
-```
-
-
-
-
-### isActive
-```solidity
- function isActive(
- ) external returns (bool)
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### tend
-```solidity
- function tend(
- ) external
-```
-
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
-
-
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/VaultAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/VaultAPI.md
deleted file mode 100644
index 4c99deda19..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/VaultAPI.md
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- ) external returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### token
-```solidity
- function token(
- ) external returns (address)
-```
-
-
-
-
-### strategies
-```solidity
- function strategies(
- ) external returns (struct StrategyParams)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### depositLimit
-```solidity
- function depositLimit(
- ) external returns (uint256)
-```
-
-
-
-
-### maxAvailableShares
-```solidity
- function maxAvailableShares(
- ) external returns (uint256)
-```
-
-
-
-
-### creditAvailable
-```solidity
- function creditAvailable(
- ) external returns (uint256)
-```
-View how much the Vault would increase this Strategy's borrow limit,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### debtOutstanding
-```solidity
- function debtOutstanding(
- ) external returns (uint256)
-```
-View how much the Vault would like to pull back from the Strategy,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### expectedReturn
-```solidity
- function expectedReturn(
- ) external returns (uint256)
-```
-View how much the Vault expect this Strategy to return at the current
-block, based on its present performance (since its last report). Can be
-used to determine expectedReturn in your Strategy.
-
-
-
-### report
-```solidity
- function report(
- ) external returns (uint256)
-```
-This is the main contact point where the Strategy interacts with the
-Vault. It is critical that this call is handled as intended by the
-Strategy. Therefore, this function will be called by BaseStrategy to
-make sure the integration is correct.
-
-
-
-### revokeStrategy
-```solidity
- function revokeStrategy(
- ) external
-```
-This function should only be used in the scenario where the Strategy is
-being retired but no migration of the positions are possible, or in the
-extreme scenario that the Strategy needs to be put into "Emergency Exit"
-mode in order for it to exit as quickly as possible. The latter scenario
-could be for any reason that is considered "critical" that the Strategy
-exits its position as fast as possible, such as a sudden change in
-market conditions leading to losses, or an imminent failure in an
-external dependency.
-
-
-
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-View the governance address of the Vault to assert privileged functions
-can only be called by governance. The Strategy serves the Vault, so it
-is subject to governance defined by the Vault.
-
-
-
-### management
-```solidity
- function management(
- ) external returns (address)
-```
-View the management address of the Vault to assert privileged functions
-can only be called by management. The Strategy serves the Vault, so it
-is subject to management defined by the Vault.
-
-
-
-### guardian
-```solidity
- function guardian(
- ) external returns (address)
-```
-View the guardian address of the Vault to assert privileged functions
-can only be called by guardian. The Strategy serves the Vault, so it
-is subject to guardian defined by the Vault.
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/registry.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/registry.md
deleted file mode 100644
index 4cf44c7835..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/registry.md
+++ /dev/null
@@ -1,411 +0,0 @@
-# Registry.vy
-
-
-
-
-
-
-
-## Functions
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Starts the 1st phase of the governance transfer.
-
-
-*Throws if the caller is not current governance.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The next governance address * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Completes the 2nd phase of the governance transfer.
-
-
-*Throws if the caller is not the pending caller. Emits a `NewGovernance` event.*
-
-
-
-
-
-
-
-### latestRelease
-```solidity
-function latestRelease()
-```
-
-
-Returns the api version of the latest release.
-
-
-*Throws if no releases are registered yet.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The api version of the latest release. * |
-
-
-
-
-
-
-### latestVault
-```solidity
-function latestVault(address)
-```
-
-
-Returns the latest deployed vault for the given token.
-
-
-*Throws if no vaults are endorsed yet for the given token.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token address to find the latest vault for. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the latest vault for the given token. * |
-
-
-
-
-
-
-### newRelease
-```solidity
-function newRelease(address)
-```
-
-
-Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
-
-
-*Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be used as the template contract for the next release. * |
-
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string,uint256)
-```
-
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address)
-```
-
-
-Adds an existing vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address)
-```
-
-
-Set the ability of a particular tagger to tag current vaults.
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address,bool)
-```
-
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### tagVault
-```solidity
-function tagVault(address,string)
-```
-
-
-Tag a Vault with a message.
-
-
-*Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The address to tag with the given `tag` message. * |
-| * tag * | * * | * The message to tag `vault` with. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**NewRelease**
-
-* `release_id` : uint256, *indexed*
-* `template` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewVault**
-
-* `token` : address, *indexed*
-* `vault_id` : uint256, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewExperimentalVault**
-
-* `token` : address, *indexed*
-* `deployer` : address, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewGovernance**
-
-* `governance` : address, *notIndexed*
-
-**VaultTagged**
-
-* `vault` : address, *notIndexed*
-* `tag` : string, *notIndexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/AffiliateToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/AffiliateToken.md
deleted file mode 100644
index b2ea31868d..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/AffiliateToken.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _getChainId
-```solidity
- function _getChainId(
- ) internal returns (uint256)
-```
-
-
-
-
-### setAffiliate
-```solidity
- function setAffiliate(
- ) external
-```
-
-
-
-
-### acceptAffiliate
-```solidity
- function acceptAffiliate(
- ) external
-```
-
-
-
-
-### _shareValue
-```solidity
- function _shareValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### _sharesForValue
-```solidity
- function _sharesForValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) public returns (uint256 deposited)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) public returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- address owner,
- address spender,
- uint256 amount,
- uint256 deadline,
- uint8 v,
- bytes32 r,
- bytes32 s
- ) external
-```
-Triggers an approval from owner to spends
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`owner` | address | The address to approve from
-|`spender` | address | The address to be approved
-|`amount` | uint256 | The number of tokens that are approved (2^256-1 means infinite)
-|`deadline` | uint256 | The time at which to expire the signature
-|`v` | uint8 | The recovery byte of the signature
-|`r` | bytes32 | Half of the ECDSA signature pair
-|`s` | bytes32 | Half of the ECDSA signature pair
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TestGuestList.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TestGuestList.md
deleted file mode 100644
index ba34279f4b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TestGuestList.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-A basic guest list contract for testing.
-
-For a Vyper implementation of this contract containing additional
-functionality, see https://github.com/banteg/guest-list/blob/master/contracts/GuestList.vy
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-Create the test guest list, setting the message sender as
-`bouncer`.
-
-Note that since this is just for testing, you're unable to change
-`bouncer`.
-
-
-### setGuests
-```solidity
- function setGuests(
- address[] _guests,
- bool[] _invited
- ) external
-```
-Invite guests or kick them from the party.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guests` | address[] | The guests to add or update.
-|`_invited` | bool[] | A flag for each guest at the matching index, inviting or
-uninviting the guest.
-
-### authorized
-```solidity
- function authorized(
- address _guest,
- uint256 _amount
- ) external returns (bool)
-```
-Check if a guest with a bag of a certain size is allowed into
-the party.
-
-Note that `_amount` isn't checked to keep test setup simple, since
-from the vault tests' perspective this is a pass/fail call anyway.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guest` | address | The guest's address to check.
-|`_amount` | uint256 | Not used. The amount of tokens the guest is bringing.
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TestStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TestStrategy.md
deleted file mode 100644
index e7f6143783..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TestStrategy.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### _toggleDelegation
-```solidity
- function _toggleDelegation(
- ) public
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### _takeFunds
-```solidity
- function _takeFunds(
- ) public
-```
-
-
-
-
-### _toggleReentrancyExploit
-```solidity
- function _toggleReentrancyExploit(
- ) public
-```
-
-
-
-
-### _setWant
-```solidity
- function _setWant(
- ) public
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-
-
-
-
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/Token.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/Token.md
deleted file mode 100644
index 6bc7e4f416..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/Token.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### _beforeTokenTransfer
-```solidity
- function _beforeTokenTransfer(
- ) internal
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TokenFalseReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TokenFalseReturn.md
deleted file mode 100644
index 82c282f5fa..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TokenFalseReturn.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TokenNoReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TokenNoReturn.md
deleted file mode 100644
index 311566ddb6..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/test/TokenNoReturn.md
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) external
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) external
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) external
-```
-
-
-
-
-## Events
-### Transfer
-```solidity
- event Transfer(
- )
-```
-
-
-
-### Approval
-```solidity
- event Approval(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/utils/ProxyFactoryInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/utils/ProxyFactoryInitializable.md
deleted file mode 100644
index 7d1fd7ea2a..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/utils/ProxyFactoryInitializable.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-## Functions
-### deployMinimal
-```solidity
- function deployMinimal(
- ) external returns (address proxy, bytes returnData)
-```
-
-
-
-
-### _getRevertMsg
-```solidity
- function _getRevertMsg(
- bytes _res
- ) internal returns (string)
-```
-This is needed in order to get the human-readable revert message from a call
-
-Get the revert message from a call
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_res` | bytes | Response of the call
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`Revert`| bytes | message string
-### slice
-```solidity
- function slice(
- ) internal returns (bytes)
-```
-
-
-
-
-## Events
-### ProxyCreated
-```solidity
- event ProxyCreated(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/vault.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/vault.md
deleted file mode 100644
index 45d9718229..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/vault.md
+++ /dev/null
@@ -1,1378 +0,0 @@
-# Vault.vy
-
-
-**Yearn Token Vault**
-
-
-
-
-
-*Yearn Token Vault. Holds an underlying token, and allows users to interact with the Yearn ecosystem through Strategies connected to the Vault. Vaults are not limited to a single Strategy, they can have as many Strategies as can be designed (however the withdrawal queue is capped at 20.) Deposited funds are moved into the most impactful strategy that has not already reached its limit for assets under management, regardless of which Strategy a user's funds end up in, they receive their portion of yields generated across all Strategies. When a user withdraws, if there are no funds sitting undeployed in the Vault, the Vault withdraws funds from Strategies in the order of least impact. (Funds are taken from the Strategy that will disturb everyone's gains the least, then the next least, etc.) In order to achieve this, the withdrawal queue's order must be properly set and managed by the community (through governance). Vault Strategies are parameterized to pursue the highest risk-adjusted yield. There is an "Emergency Shutdown" mode. When the Vault is put into emergency shutdown, assets will be recalled from the Strategies as quickly as is practical (given onchain conditions), minimizing loss. Deposits are halted, new Strategies may not be added, and each Strategy exits with the minimum possible damage to position, while opening up deposits to be withdrawn by users. There are no restrictions on withdrawals above what is expected under Normal Operation. For further details, please refer to the specification: https://github.com/iearn-finance/yearn-vaults/blob/master/SPECIFICATION.md*
-
-
-## Functions
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string)
-```
-
-
-Initializes the Vault, this is called only once, when the contract is deployed. The performance fee is set to 10% of yield, per Strategy. The management fee is set to 2%, per year. The initial deposit limit is set to 0 (deposits disabled); it must be updated after initialization.
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'y' combined with the symbol of `token`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### apiVersion
-```solidity
-function apiVersion()
-```
-
-
-Used to track the deployed version of this contract. In practice you can use this version number to compare with Yearn's GitHub and determine which version of the source matches this deployed contract.
-
-
-*All strategies must have an `apiVersion()` that matches the Vault's `API_VERSION`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * API_VERSION which holds the current version of this contract. * |
-
-
-
-
-
-
-### setName
-```solidity
-function setName(string)
-```
-
-
-Used to change the value of `name`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * name * | * * | * The new name to use. * |
-
-
-
-
-
-
-
-### setSymbol
-```solidity
-function setSymbol(string)
-```
-
-
-Used to change the value of `symbol`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * symbol * | * * | * The new symbol to use. * |
-
-
-
-
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Nominate a new address to use as governance. The change does not go into effect immediately. This function sets a pending change, and the governance address is not updated until the proposed governance address has accepted the responsibility. This may only be called by the current governance address.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The address requested to take over Vault governance. * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Once a new governance address has been proposed using setGovernance(), this function may be called by the proposed address to accept the responsibility of taking over governance for this contract. This may only be called by the proposed governance address.
-
-
-*setGovernance() should be called by the existing governance address, prior to calling this function.*
-
-
-
-
-
-
-
-### setManagement
-```solidity
-function setManagement(address)
-```
-
-
-Changes the management address. Management is able to make some investment decisions adjusting parameters. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * management * | * * | * The address to use for managing. * |
-
-
-
-
-
-
-
-### setGuestList
-```solidity
-function setGuestList(address)
-```
-
-
-Used to set or change `guestList`. A guest list is another contract that dictates who is allowed to participate in a Vault (and transfer shares). This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guestList * | * * | * The address of the `GuestList` contract to use. * |
-
-
-
-
-
-
-
-### setRewards
-```solidity
-function setRewards(address)
-```
-
-
-Changes the rewards address. Any distributed rewards will cease flowing to the old address and begin flowing to this address once the change is in effect. This will not change any Strategy reports in progress, only new reports made after this change goes into effect. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * rewards * | * * | * The address to use for collecting rewards. * |
-
-
-
-
-
-
-
-### setLockedProfitDegration
-```solidity
-function setLockedProfitDegration(uint256)
-```
-
-
-Changes the locked profit degration.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * degration * | * * | * The rate of degration in percent per second scaled to 1e18. * |
-
-
-
-
-
-
-
-### setDepositLimit
-```solidity
-function setDepositLimit(uint256)
-```
-
-
-Changes the maximum amount of tokens that can be deposited in this Vault. Note, this is not how much may be deposited by a single depositor, but the maximum amount that may be deposited across all depositors. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * limit * | * * | * The new deposit limit to use. * |
-
-
-
-
-
-
-
-### setPerformanceFee
-```solidity
-function setPerformanceFee(uint256)
-```
-
-
-Used to change the value of `performanceFee`. Should set this value below the maximum strategist performance fee. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new performance fee to use. * |
-
-
-
-
-
-
-
-### setManagementFee
-```solidity
-function setManagementFee(uint256)
-```
-
-
-Used to change the value of `managementFee`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new management fee to use. * |
-
-
-
-
-
-
-
-### setGuardian
-```solidity
-function setGuardian(address)
-```
-
-
-Used to change the address of `guardian`. This may only be called by governance or the existing guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guardian * | * * | * The new guardian address to use. * |
-
-
-
-
-
-
-
-### setEmergencyShutdown
-```solidity
-function setEmergencyShutdown(bool)
-```
-
-
-Activates or deactivates Vault mode where all Strategies go into full withdrawal. During Emergency Shutdown: 1. No Users may deposit into the Vault (but may withdraw as usual.) 2. Governance may not add new Strategies. 3. Each Strategy must pay back their debt as quickly as reasonable to minimally affect their position. 4. Only Governance may undo Emergency Shutdown. See contract level note for further details. This may only be called by governance or the guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * active * | * * | * If true, the Vault goes into Emergency Shutdown. If false, the Vault goes back into Normal Operation. * |
-
-
-
-
-
-
-
-### setWithdrawalQueue
-```solidity
-function setWithdrawalQueue(address[20])
-```
-
-
-Updates the withdrawalQueue to match the addresses and order specified by `queue`. There can be fewer strategies than the maximum, as well as fewer than the total number of strategies active in the vault. `withdrawalQueue` will be updated in a gas-efficient manner, assuming the input is well- ordered with 0x0 only at the end. This may only be called by governance or management.
-
-
-*This is order sensitive, specify the addresses in the order in which funds should be withdrawn (so `queue`[0] is the first Strategy withdrawn from, `queue`[1] is the second, etc.) This means that the least impactful Strategy (the Strategy that will have its core positions impacted the least by having funds removed) should be at `queue`[0], then the next least impactful at `queue`[1], and so on.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * queue * | * * | * The array of addresses to use as the new withdrawal queue. This is order sensitive. * |
-
-
-
-
-
-
-
-### transfer
-```solidity
-function transfer(address,uint256)
-```
-
-
-Transfers shares from the caller's address to `receiver`. This function will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### transferFrom
-```solidity
-function transferFrom(address,address,uint256)
-```
-
-
-Transfers `amount` shares from `sender` to `receiver`. This operation will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0. Unless the caller has given this contract unlimited approval, transfering shares will decrement the caller's `allowance` by `amount`.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * sender * | * * | * The address shares are being transferred from. * |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### approve
-```solidity
-function approve(address,uint256)
-```
-
-
-
-*Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-
-
-
-
-
-
-
-### increaseAllowance
-```solidity
-function increaseAllowance(address,uint256)
-```
-
-
-
-*Increase the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to increase the allowance by. * |
-
-
-
-
-
-
-
-### decreaseAllowance
-```solidity
-function decreaseAllowance(address,uint256)
-```
-
-
-
-*Decrease the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to decrease the allowance by. * |
-
-
-
-
-
-
-
-### permit
-```solidity
-function permit(address,address,uint256,uint256,bytes)
-```
-
-
-Approves spender by owner's signature to expend owner's tokens. See https://eips.ethereum.org/EIPS/eip-2612.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * owner * | * * | * The address which is a source of funds and has signed the Permit. * |
-| * spender * | * * | * The address which is allowed to spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-| * expiry * | * * | * The timestamp after which the Permit is no longer valid. * |
-| * signature * | * * | * A valid secp256k1 signature of Permit by owner encoded as r, s, v. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True, if transaction completes successfully * |
-
-
-
-
-
-
-### totalAssets
-```solidity
-function totalAssets()
-```
-
-
-Returns the total quantity of all assets under control of this Vault, whether they're loaned out to a Strategy, or currently held in the Vault.
-
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total assets under control of this Vault. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit()
-```
-
-
-Deposits `_amount` `token`, issuing shares to `recipient`. If the Vault is in Emergency Shutdown, deposits will not be accepted and this call will fail.
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256,address)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### maxAvailableShares
-```solidity
-function maxAvailableShares()
-```
-
-
-Determines the maximum quantity of shares this Vault can facilitate a withdrawal for, factoring in assets currently residing in the Vault, as well as those deployed to strategies on the Vault's balance sheet.
-
-
-*Regarding how shares are calculated, see dev note on `deposit`. If you want to calculated the maximum a user could withdraw up to, you want to use this function. Note that the amount provided by this function is the theoretical maximum possible from withdrawing, the real amount depends on the realized losses incurred during withdrawal.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total quantity of shares this Vault can provide. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw()
-```
-
-
-Withdraws the calling account's tokens from this Vault, redeeming amount `_shares` for an appropriate amount of tokens. See note on `setWithdrawalQueue` for further details of withdrawal ordering and behavior.
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address,uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.)*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### pricePerShare
-```solidity
-function pricePerShare()
-```
-
-
-Gives the price for a single Vault share.
-
-
-*See dev note on `withdraw`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The value of a single share. * |
-
-
-
-
-
-
-### addStrategy
-```solidity
-function addStrategy(address,uint256,uint256,uint256,uint256)
-```
-
-
-Add a Strategy to the Vault. This may only be called by governance.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The address of the Strategy to add. * |
-| * debtRatio * | * * | * The share of the total assets in the `vault that the `strategy` has access to. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-| * performanceFee * | * * | * The fee the strategist will receive based on this Vault's performance. * |
-
-
-
-
-
-
-
-### updateStrategyDebtRatio
-```solidity
-function updateStrategyDebtRatio(address,uint256)
-```
-
-
-Change the quantity of assets `strategy` may manage. This may be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * debtRatio * | * * | * The quantity of assets `strategy` may now manage. * |
-
-
-
-
-
-
-
-### updateStrategyMinDebtPerHarvest
-```solidity
-function updateStrategyMinDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyMaxDebtPerHarvest
-```solidity
-function updateStrategyMaxDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyPerformanceFee
-```solidity
-function updateStrategyPerformanceFee(address,uint256)
-```
-
-
-Change the fee the strategist will receive based on this Vault's performance. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * performanceFee * | * * | * The new fee the strategist will receive. * |
-
-
-
-
-
-
-
-### migrateStrategy
-```solidity
-function migrateStrategy(address,address)
-```
-
-
-Migrates a Strategy, including all assets from `oldVersion` to `newVersion`. This may only be called by governance.
-
-
-*Strategy must successfully migrate all capital and positions to new Strategy, or else this will upset the balance of the Vault. The new Strategy should be "empty" e.g. have no prior commitments to this Vault, otherwise it could have issues.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * oldVersion * | * * | * The existing Strategy to migrate from. * |
-| * newVersion * | * * | * The new Strategy to migrate to. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy()
-```
-
-
-Revoke a Strategy, setting its debt limit to 0 and preventing any future deposits. This function should only be used in the scenario where the Strategy is being retired but no migration of the positions are possible, or in the extreme scenario that the Strategy needs to be put into "Emergency Exit" mode in order for it to exit as quickly as possible. The latter scenario could be for any reason that is considered "critical" that the Strategy exits its position as fast as possible, such as a sudden change in market conditions leading to losses, or an imminent failure in an external dependency. This may only be called by governance, the guardian, or the Strategy itself. Note that a Strategy will only revoke itself during emergency shutdown.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### addStrategyToQueue
-```solidity
-function addStrategyToQueue(address)
-```
-
-
-Adds `strategy` to `withdrawalQueue`. This may only be called by governance or management.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to add. * |
-
-
-
-
-
-
-
-### removeStrategyFromQueue
-```solidity
-function removeStrategyFromQueue(address)
-```
-
-
-Remove `strategy` from `withdrawalQueue`. This may only be called by governance or management.
-
-
-*We don't do this with revokeStrategy because it should still be possible to withdraw from the Strategy if it's unwinding.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to remove. * |
-
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding()
-```
-
-
-Determines if `strategy` is past its debt limit and if any tokens should be withdrawn to the Vault.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable()
-```
-
-
-Amount of tokens in Vault a Strategy has access to as a credit line. This will check the Strategy's debt limit, as well as the tokens available in the Vault, and determine the maximum amount of tokens (if any) the Strategy may draw on. In the rare case the Vault is in emergency shutdown this will return 0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn()
-```
-
-
-Provide an accurate expected value for the return this `strategy` would provide to the Vault the next time `report()` is called (since the last time it was called).
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### report
-```solidity
-function report(uint256,uint256,uint256)
-```
-
-
-Reports the amount of assets the calling Strategy has free (usually in terms of ROI). The performance fee is determined here, off of the strategy's profits (if any), and sent to governance. The strategist's fee is also determined here (off of profits), to be handled according to the strategist on the next harvest. This may only be called by a Strategy managed by this Vault.
-
-
-*For approved strategies, this is the most efficient behavior. The Strategy reports back what it has free, then Vault "decides" whether to take some back or give it more. Note that the most it can take is `gain + _debtPayment`, and the most it can give is all of the remaining reserves. Anything outside of those bounds is abnormal behavior. All approved strategies must have increased diligence around calling this function, as abnormal behavior could become catastrophic.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * gain * | * * | * Amount Strategy has realized as a gain on its investment since its last report, and is free to be given back to Vault as earnings * |
-| * loss * | * * | * Amount Strategy has realized as a loss on its investment since its last report, and should be accounted for on the Vault's balance sheet * |
-| * _debtPayment * | * * | * Amount Strategy has made available to cover outstanding debt * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * Amount of debt outstanding (if totalDebt > debtLimit or emergency shutdown). * |
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address)
-```
-
-
-Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault. Tokens will be sent to `governance`. This will fail if an attempt is made to sweep the tokens that this Vault manages. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address,uint256)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**Transfer**
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**Approval**
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**StrategyAdded**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyReported**
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `debtPaid` : uint256, *notIndexed*
-* `totalGain` : uint256, *notIndexed*
-* `totalLoss` : uint256, *notIndexed*
-* `totalDebt` : uint256, *notIndexed*
-* `debtAdded` : uint256, *notIndexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**UpdateGovernance**
-
-* `governance` : address, *notIndexed*
-
-**UpdateManagement**
-
-* `management` : address, *notIndexed*
-
-**UpdateGuestList**
-
-* `guestList` : address, *notIndexed*
-
-**UpdateRewards**
-
-* `rewards` : address, *notIndexed*
-
-**UpdateDepositLimit**
-
-* `depositLimit` : uint256, *notIndexed*
-
-**UpdatePerformanceFee**
-
-* `performanceFee` : uint256, *notIndexed*
-
-**UpdateManagementFee**
-
-* `managementFee` : uint256, *notIndexed*
-
-**UpdateGuardian**
-
-* `guardian` : address, *notIndexed*
-
-**EmergencyShutdown**
-
-* `active` : bool, *notIndexed*
-
-**UpdateWithdrawalQueue**
-
-* `queue` : address[20], *notIndexed*
-
-**StrategyUpdateDebtRatio**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**StrategyUpdateMinDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdateMaxDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdatePerformanceFee**
-
-* `strategy` : address, *indexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyMigrated**
-
-* `oldVersion` : address, *indexed*
-* `newVersion` : address, *indexed*
-
-**StrategyRevoked**
-
-* `strategy` : address, *indexed*
-
-**StrategyRemovedFromQueue**
-
-* `strategy` : address, *indexed*
-
-**StrategyAddedToQueue**
-
-* `strategy` : address, *indexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/yToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/yToken.md
deleted file mode 100644
index ccbc709769..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/yToken.md
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### totalSupply
-```solidity
- function totalSupply(
- ) external returns (uint256 total)
-```
-
-
-
-
-### balanceOf
-```solidity
- function balanceOf(
- ) external returns (uint256 balance)
-```
-
-
-
-
-### _transfer
-```solidity
- function _transfer(
- ) internal
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### _approve
-```solidity
- function _approve(
- ) internal
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
-### increaseAllowance
-```solidity
- function increaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### decreaseAllowance
-```solidity
- function decreaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### _permitAll
-```solidity
- function _permitAll(
- ) internal
-```
-
-
-
-
-### permitAll
-```solidity
- function permitAll(
- ) public
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### revokeAll
-```solidity
- function revokeAll(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/yWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/yWETH.md
deleted file mode 100644
index 459bc7b3f1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.3.5/yWETH.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### depositETH
-```solidity
- function depositETH(
- ) public returns (uint256)
-```
-
-
-
-
-### withdrawETH
-```solidity
- function withdrawETH(
- ) external returns (uint256 withdrawn)
-```
-
-
-
-
-### receive
-```solidity
- function receive(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/getting-started.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/getting-started.md
deleted file mode 100644
index 5242e46f76..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/getting-started.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Getting Started with Vaults
-
-This is a collection of resources that aim to be an introduction to how yVaults V2 work.
-
-## Introduction
-
-The best introduction to V2 is the workshop did by [Storming0x](https://github.com/storming0x/). It's security focused but nevertheless a great introduction to yVaults V2.
-
-- [Video](https://www.youtube.com/watch?v=C0fsYiCI54g)
-- [Slides](https://docs.google.com/presentation/d/1NsePa_hXV1vsbMixTSRsPKYBHYvmVQf7IvpI_8k4p_k/edit#slide=id.p)
-- [Yearn State of the Vaults](https://vaults.yearn.fi/)
-
-## Start coding
-
-When you decide to start, this reading material is going to come handy:
-
-- [Template for Strategies](https://github.com/yearn/brownie-strategy-mix)
-- [Vaults V2 Repository](https://github.com/yearn/yearn-vaults)
-- [How to set up coding environment for Yearn Strategies](https://sambacha.github.io/yearn-vaults/index.html)
-- [Mint your own DAI](https://medium.com/ethereum-grid/forking-ethereum-mainnet-mint-your-own-dai-d8b62a82b3f7)
-
-Once you have the strategy ready. This will guide you further down the road.
-
-- [Vault naming standard](https://github.com/yearn/yearn-assets/blob/master/naming-standard.md)
-- [Release process](https://github.com/yearn/yearn-devdocs/blob/master/docs/developers/v2/OPERATIONS.md)
-- [Security check](https://docs.google.com/document/d/1hBKB73kJPQM71enrG8xoSFj7wxYmczUlgigyq2KkcTE/edit#heading=h.4ieoeyetfrxm)
-
-## Other reading material
-
-This is complement to the others but it's not directly related to creating strategies.
-
-- [The Keep3r Network](https://macarse.medium.com/the-keep3r-network-experiment-bb1c5182bda3)
-- [Andre intro to Yearn Vaults](https://medium.com/iearn/yearn-finance-v2-af2c6a6a3613)
-- [Delegated vaults explanation](https://medium.com/iearn/delegated-vaults-explained-fa81f1c3fce2)
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/deployment.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/deployment.md
deleted file mode 100644
index b7f0405e9f..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/deployment.md
+++ /dev/null
@@ -1,210 +0,0 @@
-# Deploying a Vault and Strategy V2
-
-**Note**: The Chief Multisig Officer repo is encouraged to create multiple scripts for governance and dev multisig execution of complex transactions.
-
-## Requirements
-
-Make sure you have the brownie environment setup before trying to deploy a vault. Check out the [Readme MD](https://github.com/yearn/yearn-vaults/blob/master/README.md) for instructions.
-
-The below instructions show some python commands that assume you are using the brownie console or a brownie script setup is in place.
-
-## Deploying a new Experimental Vault
-
-1. Clone this repo and run `brownie run scripts/deploy.py --network `
-1. Choose the brownie account for deploying your vault. This account needs to have balance to pay for the deploy transaction.
-1. Confirm the script is using the latest version of registry `v2.registry.ychad.eth` against the planned new release vault to be sure its an updated version. (Can validate on Etherscan for latest address)
-1. Select the version of vault to deploy or press enter to use latest release.
-1. Enter `Y` when prompt to deploy Proxy Vault
-1. Enter the checksummed address of the ERC20 token the vault will use.
-1. Enter the vault Parameters (Below are some suggested values):
- - Set your address or an address you control as governance.
- - Set Treasury (`treasury.ychad.eth`) as the rewards address.
- - Set Core Dev multisig (`dev.ychad.eth`) as guardian.
- - Set Strategist multisig (`brain.ychad.eth`) as management.
- - Set description and symbol for vault or use suggested as default (can be changed onchain later)
-1. Confirm the Parameters are set correctly and press `y`and ENTER to deploy vault.
-
-1. Check new vault has ABI setup on Etherscan (Some vault versions from older releases may have verification issues with Vyper and proxy detection on Etherscan, consider using latest releases >0.3.5 to ensure verification works).
-
-1. Set up the vault with correct deposit limit:
-
- ```python
- vault.setDepositLimit(limit)
- ```
-1. Set management fee to 0:
-
- ```python
- vault.setManagementFee(0)
- ```
-
-1. (Optional) Set governance to ychad.eth (`0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52`) if vault is planned to be endorsed soon:
- - Note you can still make changes to the vault after setting governance up until governance is accepted
-
- ```python
- vault.setGovernance(ychad.eth)
- ```
-
-
-## Deploying a new Strategy
-
-1. Discuss your strategy in Discord or Telegram to gain access to the yearn/yearn-strategies repository.
-1. Create a new issue in the strategies' [repo](https://github.com/yearn/yearn-strategies/issues) using the template `Strategy Review`. **Complete all the fields**.
-1. If the strategy is targeting a new protocol/new chain, not currently approved by yearn (used in production), a due diligence and path to production plan documents may also be required for the strategy to be considered for endorsing. [PATH TO PROD](https://hackmd.io/@ucVuhc2gShSGsOJwjaDvqg/HJ1ZplgTO)
-Examples [SNX](https://hackmd.io/0w1RZh7DSc27A9EyzlHbJQ?view), [VESPER](https://hackmd.io/@Ap_76vwNTg-vxJxbiaLMMQ/SkXEzic7O)
-1. Coordinate with Core Dev strategist for getting a review
-1. Complete peer review by at least 2 strategists.
-1. Check if `want` token has a deployed vault already (>=v0.3.0) and coordinate to use that first if possible.
-1. Coordinate with core developer to set proper deposit limit and other settings for new vault. See the table below: [Limits per Stage](#limits-per-stage).
-1. Deploy strategy and upload code to Etherscan for verification.
-
-## Make the Vault and Strategy work together
-
-1. Add strategy to vault (for vault code v0.3.3+):
-
- ```python
- strategy = '' # Your strategy address
- debt_ratio = 9800 # 98%
- minDebtPerHarvest = 0 # Lower limit on debt add
- maxDebtPerHarvest = 2 ** 256 - 1 # Upper limit on debt add
- performance_fee = 1000 # Strategist perf fee: 10%
-
- vault.addStrategy(
- strategy,
- debt_ratio,
- minDebtPerHarvest,
- maxDebtPerHarvest,
- performance_fee
- )
- ```
-
- - `debt_ratio` should be `9800` if first strategy on vault.
- - `rate_limit` is `0` unless there is reason for it to be different.
-
-1. Set keeper:
-
- ```python
- strategy.setKeeper(keep3r_manager)
- ```
-
- - `keep3r_manager` = `0x736D7e3c5a6CB2CE3B764300140ABF476F6CFCCF`
-
-1. Set rewards:
-
- ```python
- strategy.setRewards(address)
- ```
-
- - Read [below](<#sharer-contract>) if you want to use the sharer contract.
-
-1. Run tests against "live" vault and strategy in mainnet-fork:
-
- - Harvest.
- - Profitable harvest.
- - Revoke strategy and check that funds return to the vault.
- - Increase/decrease debt + harvest, and check that the strategy is working well.
- - Migration.
- - Check that tokens in the strategy cannot be sweeped by dust collection.
-
- - **Example**: Hegic strat [repo](https://github.com/Macarse/yhegic/tree/master/tests/development).
-
-## Test harvesting manually
-
-If you need a UI to test, you can coordinate with the strategists.
-
-1. Deposit some `want` tokens into the vault.
-1. Do first `harvest` and make sure it worked correctly.
-
- ```python
- strategy.harvest()
- ```
-
-1. Monitor `harvest` and `tend` triggers for first few days. Call `harvest`/`tend` manually.
-
-## Scaling up / Moving to Endorse
-
-In addition to the 2 strategists, a Core Developer has to review the strategy before going into production.
-
-1. Increase deposit limit according to the table [below](#limits-per-stage)
-1. Set management fee to production level:
-
- ```python
- vault.setManagementFee(200)
- ```
-
-1. Set parameters for vault correctly before endorse:
- - Set Governance to (`ychad.eth`)
- - Set Treasury (`treasury.ychad.eth`) as the rewards address.
- - Set Core Dev multisig (`dev.ychad.eth`) as guardian.
- - Set Strategist multisig (`brain.ychad.eth`) as management.
- - Set description and symbol for vault or use suggested as default (can be changed onchain later)
-
-1. Yearn governance now must accept governance and endorse the vault:
-
-```python
-strategy.acceptGovernance()
-registry.endorseVault(vault)
-```
-
-### Endorsing a vault from a previous release
-
-1. Check for latest release number in the registry contract
-1. Check the apiVersion of the vault you want to endorse to identify target release
-1. Calculate the releaseDelta from your target release. (see registry endorseVault param details)
- E.g: latestRelease = 0.3.3 and numReleases = 5. New vault apiVersion is 0.3.2
- `releaseDelta = numReleases - 1 - releaseTarget`
-1. Confirm using `registry.releases(uint256)` that your `targetRelease` has the same apiVersion as your vault.
-
- ```python
- releaseTarget = 3 # e.g vault api version 0.3.2
- releaseDelta = registry.numReleases() - 1 - releaseTarget # (5-1-3) = 1
- strategy.acceptGovernance() # from ychad.eth
- registry.endorseVault(vault, releaseDelta) # from ychad.eth.
- ```
-
-## Setting up Keep3r
-
-1. Adjust trigger variables until they are correct:
-
- ```python
- strategy.setProfitFactor()
- strategy.setDebtThreshold()
- strategy.setMaxReportDelay()
- ```
-
-1. Set strategy's Keep3r role to v2-keeper-contract
-
- ```python
- strategy.setKeeper(0x736D7e3c5a6CB2CE3B764300140ABF476F6CFCCF)
- ```
-
-1. Create an add-strategy PR in Keep3r [repo](https://github.com/yearn/yearn-keeper) (TBD)
-
-## References
-
-### Limits per Stage
-
-These are the standard deposit limits per stage. They can be adjusted on a case by case basis.
-
-| Stage | Limit |
-| ------------ | ------ |
-| Experimental | $500K |
-| Production | $10M |
-
-### Sharer contract
-
-"Sharer" is a contract for distributing/splitting strategist rewards. For boarding school graduates suggested split is 34% to strategist multisig and 66% to strategist – [Sharer Contract](https://github.com/Grandthrax/Sharer).
-
-- Setup rewards for your strategy by calling `sharer.addContributors`.
-- Include devs if you forked someone else's strategy.
-- Be sure to reward people who helped you.
-- You can find the sharer here: [0x2c641e14afecb16b4aa6601a40ee60c3cc792f7d](https://etherscan.io/address/0x2c641e14afecb16b4aa6601a40ee60c3cc792f7d)
-
-### Addresses
-
-| Identity | ENS | Address |
-| ---------------------- | --------------------- |------------------------------------------- |
-| V2 Registry | v2.registry.ychad.eth | 0x50c1a2eA0a861A967D9d0FFE2AE4012c2E053804 |
-| Yearn multisig (daddy) | ychad.eth | 0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52 |
-| Strategist multisig | brain.ychad.eth | 0x16388463d60FFE0661Cf7F1f31a7D658aC790ff7 |
-| Core Dev multisig | dev.ychad.eth | 0x846e211e8ba920B353FB717631C015cf04061Cc9 |
-| Treasury | treasury.ychad.eth | 0xfeb4acf3df3cdea7399794d0869ef76a6efaff52 |
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/emergency.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/emergency.md
deleted file mode 100644
index ed967b35b4..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/emergency.md
+++ /dev/null
@@ -1,205 +0,0 @@
-# Emergency Procedures for Yearn Finance
-
-TL;DR: [Emergency Checklist](#emergency-checklist)
-
-## Introduction
-
-This document details the procedures and guidelines that should take place in the event of an emergency situation. Its purpose is to minimize the risk for loss of funds for Yearn's users, Treasury, and Smart Contracts.
-
-## Definitions and Examples of Emergencies
-
-For the purposes of this document, an emergency situation is defined to be:
-
-**_Any situation that may lead to a considerable amount of loss of funds for Yearn users, Yearn's Treasury, or Smart Contracts deployed by Yearn._**
-
-This is a non exhaustive list of possible emergency scenarios:
-
-1. Bug/Exploit in Vault/Strategy code that can cause a loss of funds for users
-2. Bug/Exploit in an underlying protocol that a Yearn Strategy is utilizing that may lead to loss of funds
-3. Loss of private keys for a key role, such as a Strategist
-4. Potential exploit discovered by team or bounty program researcher
-5. Active exploit / hack in progress discovered by unknown party
-
-## Roles
-
-In the event of an emergency situation, the following roles should be assigned to Yearn contributors working to resolve the situation:
-
-- Facilitator
-- Multi-sig Herder
-- Strategist Lead
-- Core Dev Lead (Guardian)
-- Web Lead
-- Ops
-
-A contributor may be assigned up to two of these roles concurrently.
-
-### Facilitator
-
-Facilitates the emergency handling and ensures the process described in this document is followed, engaging with the correct stakeholders and teams in order for the necessary decisions to be made quickly. A suitable Facilitator is any person familiar with the process and is confident that they can drive the team to follow through. It's expected that the person assigned to this role has relevant experience either from having worked real scenarios or through drill training.
-
-### Multi-sig Herder
-
-Responsible for ensuring that different Yearn teams' Multi-sig wallets (i.e. dev.ychad.eth, brain.ychad.eth, ychad.eth) are able to execute transactions in a timely manner during the emergency.
-
-Main responsibilities:
-
-- Help clear the queue of any pending operations once the War Room starts
-- Coordinate required signers so they can respond quickly to queued transactions
-- Prepare or help with transactions in different multi-sigs
- Reference:
- - [emergency-toolbox](https://github.com/yearn/emergency-toolbox)
- - [CMO](https://github.com/yearn/chief-multisig-officer) - private
- - [strategists-ms](https://github.com/yearn/strategist-ms) - private
-
-### Strategist Lead
-
-In charge of coordinating quick changes to management and strategist roles during the emergency, including but not limited to:
-
-- Prepare and Execute Strategist Multi-sig transactions and operations
-- Set strategy in emergency exit mode
-- Update debt ratios
-- Remove Strategies from Queue
-- Coordinate Harvests
-
-### Core Dev Lead (Guardian)
-
-Coordinates quick changes to Governance and Guardian roles during the emergency, including but not limited to:
-
-- Prepare and Execute Core Dev Multi-sig transactions and operations
-- Revoke a Strategy
-- Set vault in emergency shutdown mode
-
-### Web Lead
-
-Coordinates quick changes to UI and Websites as required, including but not limited to:
-
-- Disable deposits/withdrawals through the UI
-- Display alerts and banners
-- Other UI related work
-
-### Ops
-
-In charge of coordinating comms and operations assistance as required:
-
-- Clear with War Room what information and communication can be published during and after the incident
-- Coordinate Communications
-- Take note of timelines and events for disclosure
-
-## Emergency Steps
-
-_Also see [Check list](#emergency-checklist) and [Tools](#tools)._
-
-This acts as a guideline to follow when an incident is reported requiring immediate attention.
-
-The primary objective is minimized the loss of funds, in particular for Yearn's users. All decisions made should be driven by this goal.
-
-1. Open a private chat room (War Room) with a voice channel and invite only the team members that are online that can cover the [roles described above](#roles). The War Room is limited to members that act in the capacities of the designated roles, as well as additional persons that can provide critical insight into the circumstances of the issue and how it can best be resolved.
-2. All the information that is gathered during the War Room should be considered private to the chat and not to be shared with third parties. Relevant data should be pinned and updated by the Facilitator for the team to have handy.
-3. The team's first milestone is to assess the situation as quickly as possible: Confirming the reported information and determine how critical the incident is. A few questions to guide this process:
- - Is there confirmation from several team members/sources that the issue is valid? Are there example transactions that show the incident occurring? (Pin these in the War Room)
- - Is the Strategist that knows the most about the code in the War Room? Can the Strategist in question be reached? If not, can we reach the backup Strategist?
- - Are funds presently at risk? Is immediate action required?
- - Is the issue isolated or does it affect several vaults/strategies? Can the affected contracts be identified? (Pin these in the War Room)
- - Which Multi-sig will require signing to address the issue? The Multi-sig Herder should begin to notify signers and clear the queue in preparation for emergency transactions.
- - If there is no immediate risk for loss of funds, does the team still need to take preventive action or some other mitigation?
- - Is there agreement in the team that the situation is under control and that the War Room can be closed?
-4. Once the issue has been confirmed as valid, the next stop is to take immediate corrective action to prevent further loss of funds. If root cause requires further research, the team must err on the side of caution and take emergency preventive actions while the situation continues to be assessed. A few questions to guide the decisions of the team:
- - Disable deposits to the affected Vaults? Should migrations and deposits be removed from the UI?
- - Activate Emergency Exit on the affected Strategies?
- - Remove one or more strategies from the withdrawal queue from the affected vaults?
- - Activate Emergency Shutdown in the Vault?
- - Revoke 1 or more Strategies?
- - Are multiple Team members able to confirm the corrective actions will stop the immediate risk through local Ganache fork testing? Strategist and Core Dev main roles in particular to confirm this step.
-5. The immediate corrective actions should be scripted or taken from the repository [emergency-toolbox](https://github.com/yearn/emergency-toolbox) and executed ASAP. Multi-sig Herder and Strategist Lead should coordinate this execution within the corresponding roles. **NOTE: This step is meant to give the War Room time to assess and research a more long term solution**.
-6. Once corrective measures are in place and there is confirmation by multiple sources that funds are no longer at risk, the next objective is to identify the root cause. A few questions/actions during this step that can help the team make decisions:
- - What communications should be made public at this point in time?
- - Can research among members of the War Room be divided? This step can be open for team members to do live debug sessions sharing screens to help identify the problem using the sample transactions.
-7. Once the cause is identified, the team can brainstorm to come up with the most suitable remediation plan and its code implementation (if required). A few questions that can help during this time:
- - In case there are many possible solutions can the team prioritize by weighing each option by time to implement and minimization of losses?
- - Can the possible solutions be tested and compared to confirm the end state fixes the issue?
- - Is there agreement in the War Room about the best solution? If not, can the objections be identified and a path for how to reach consensus on the approach be worked out, prioritizing the minimization of losses?
- - If a solution will take longer than a few hours, are there any further communications and preventive actions needed while the fix is developed?
- - Does the solution require a longer term plan? Is there identified owners for the tasks/steps for the plan's execution?
-8. Once a solution has been implemented, the team will confirm the solution resolves the issue and minimizes the loss of funds. Possible actions needed during this step:
- - Run in ganache fork simulations of end state to confirm the proposed solution(s)
- - Coordinate signatures from multi-sig signers and execution
- - Enable UI changes to normalize operations as needed
-9. Assign a lead to prepare a [disclosure](https://github.com/yearn/yearn-security) (should it be required), preparing a timeline of the events that took place.
-10. The team agrees when the War Room can be dismantled. The Facilitator breaks down the War Room and sets reminders if it takes longer than a few hours for members to reconvene.
-
-### Emergency Checklist
-
-This checklist should be complemented with the [steps](#emergency-steps)
-
-- [ ] Create War room with audio
-- [ ] Assign Key Roles to War Room members
-- [ ] Add Strategist or other Expert (or their backup) to the War Room
-- [ ] Clear related Multi-sig queues
-- [ ] Disable deposits and/or withdrawals as needed in the web UI
-- [ ] If share price has been artificially lowered, then call `vault.setDepositLimit(0)` from governance
-- [ ] Confirm and identify Issue
-- [ ] Take immediate corrective/preventive actions in order to prevent (further) loss of funds
-- [ ] Communicate the current situation internally and externally (as appropriate)
-- [ ] Determine the root cause
-- [ ] Propose workable solutions
-- [ ] Implement and validate solutions
-- [ ] Prioritize solutions
-- [ ] Reach agreement in Team on best solution
-- [ ] Execute solution
-- [ ] Confirm incident has been resolved
-- [ ] Assign ownership of security disclosure report
-- [ ] Disband War Room
-- [ ] Conduct immediate debrief
-- [ ] Schedule a Post Mortem
-
-### Tools
-
-List of tools and alternatives in case primary tools are not available during an incident.
-
-| Description | Primary | Secondary |
-| ------------------- | ---------------------------------------------- | :--------------------------------------------------------------------: |
-| Code Sharing | GitHub | [HackMd](https://hackmd.io/), [CodeShare](https://codeshare.io/5Og7mj) |
-| Communications\* | Telegram | Discord |
-| Transaction Details | [Etherscan](https://etherscan.io/) | [Tenderly](https://tenderly.co/) |
-| Debugging | Brownie | [Tenderly](https://tenderly.co/) |
-| Transaction Builder | [ape-safe](https://github.com/banteg/ape-safe) | _Backup if gnosis safe Api is not working?_ |
-| Screen Sharing\* | [jitsi](https://jitsi.org/) | Google Hangouts |
-
-**Facilitator is responsible to ensure no unauthorized persons enter the War Room or join these tools via invite links that leak.**
-
-## Incident Post Mortem
-
-A Post Mortem should be conducted after an incident to gather data and feedback from War Room participants in order to produce actionable improvements for Yearn processes such as this one.
-
-Following the dissolution of a War Room, the Facilitator should ideally conduct an immediate informal debrief to gather initial notes before they are forgotten by participants.
-
-This can then be complemented by a more extensive Post Mortem as outlined below.
-
-The Post Mortem should be conducted at the most a week following the incident to ensure a fresh recollection by the participants.
-
-It is key that most of the participants of the War Room are involved during this session in order for an accurate assessment of the events that took place. Discussion is encouraged. The objective is to collect constructive feedback for how the process can be improved, **and not** to assign blame on any War Room participants.
-
-Participants are encouraged to provide inputs on each of the steps. If a participant is not giving inputs, the Facilitator is expected to try to obtain more feedback by asking questions.
-
-### Post Mortem Outputs
-
-- List of what went well
-- List of what be improved
-- List of questions that came up in the Post Mortem
-- List of insights from the process
-- Root Cause Analysis along with concrete measures required to prevent the incident from ever happening again.
-- List of action items assigned to owners with estimates for completion.
-
-### Post Mortem Steps
-
-1. Facilitator runs the session in a voice channel and shares a screen for participants to follow notes.
-2. Facilitator runs through an agenda to obtain the necessary [outputs](#post-mortem-outputs).
-3. For the Root Cause Analysis part, the Facilitator conducts an exercise to write the problem statement first and then confirm with the participants that the statement is correct and understood.
-4. Root Cause Analysis can be identified with following tools:
- - [Brainstorming](https://en.wikipedia.org/wiki/Brainstorming) session with participants
- - [5 Whys Technique](https://en.wikipedia.org/wiki/Five_whys)
-5. Once Root Causes have been identified, action items can be written and assigned to willing participants that can own the tasks. It is recommended that an estimated time for completion is given. A later process can track completion of given assignments. **Note: The action items need to be clear, actionable and measurable for completion**
-6. The Facilitator tracks completion of action items. The end result of the process should be an actionable improvement in the process. Some possible improvements:
- - Changes in the process and documentation
- - Changes in code and tests to validate
- - Changes in tools implemented and incorporated into the process
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/naming-convention.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/naming-convention.md
deleted file mode 100644
index 0847b9b5c3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/naming-convention.md
+++ /dev/null
@@ -1,131 +0,0 @@
-# Naming Conventions
-
-
-
-## yVaults
-
-### Dev Cheat Sheet (Examples)
-
-- **Vanilla ERC20 tokens**
- - Name: `${token.symbol()} or override yVault`
- - Symbol: `yv${token.symbol()} or override`
- - **Examples:** `USDC yVault`, `yvUSDC`, `aLINK yVault`, `yvaLINK`
-- **LP positions**
- - **Curve**
- - Name: `Curve + pool + Pool yVault`
- - **Examples:** `Curve sBTC Pool yVault`, `Curve 3pool yVault`, `Curve Y Pool yVault`
- - Symbol: `yvCurve-pool`
- - **Examples:** `yvCurve-sBTC`, `yvCurve-3pool`, `yvCurve-Y`. We make an exception for the last one and call it `yUSD`.
- - **Uniswap**
- - Name: `Uniswap + v${self.version()} + TOKEN-TOKEN + LP yVault`
- - **Examples:** `Uniswap v2 USDT-WETH LP yVault`, `Uniswap v2 WBTC-WETH LP yVault`
- - Symbol: `yvUni-TOKEN-TOKEN`
- - **Examples:** `yvUni-USDT-WETH`, `yvUni-WBTC-WETH`
- - Note: Version was included for Uniswap LP tokens to help limit confusion between UNI-v2 LP tokens and upcoming UNI-v3 LP tokens.
- - **Balancer**
- - Name: `Balancer + TOKEN-TOKEN + Pool yVault`
- - **Examples:** `Balancer USDT-WETH Pool yVault`, `Balancer WBTC-WETH Pool yVault`
- - Symbol: `yvBal-TOKEN-TOKEN`
- - **Examples:** `yvBal-USDT-WETH`, `yvBal-WBTC-WETH`
- - **SushiSwap**
- - Name: `SushiSwap + TOKEN-TOKEN + LP yVault`
- - **Examples:** `SushiSwap USDT-WETH LP yVault`, `Uniswap v2 WBTC-WETH LP yVault`
- - Symbol: `yvSushi-TOKEN-TOKEN`
- - **Examples:** `yvSushi-USDT-WETH`, `yvSushi-WBTC-WETH`
-- **Experimental**
- - No hard rules for `name` or `symbol`, just be sure to end `name` with "yVault".
- - **Examples:** `yveCRV-DAO yVault`, `yveCRV-DAO`, `St. Banteg of Yearn Patron of Plebs Lido St. Ether yVault`, `sboypoplyvstETH`
-
-### Overview and Explanation
-
-- Acceptable alternative names include Yearn Vaults, or informally referring to the product as vaults.
-- When referring to a specific yVault, the preferred name is generally `TOKEN + yVault`; this matches the `name` field on the yVault contract. However, it is also acceptable to use `yvTOKEN + Vault`, `Yearn + TOKEN + Vault` or `yvTOKEN`; the latter matches `symbol` in the contract.
- - **Examples:** `DAI yVault`, `yvDAI Vault`, `Yearn DAI Vault`, or simply `yvDAI`
-- For each yVault, name and symbol conventions are as follows:
- - Name: `${token.symbol()} or override yVault`
- - Symbol: `yv${token.symbol()} or override`
-- A `version` field is included in the token contract to correspond to the major yVault release version.
- - Additionally, developers may find it useful to denote `version` within the `name` field itself to help clarify the token to be deposited. Useful examples include Uniswap LPs (below), and also v1 vs v2 Aave aTokens.
-- The predominant use case for name and symbol override is for LP tokens. The use of the term `Pool` or `LP` is interchangeable, and will be selected based on colloquial use for each protocol.
- - For instance, Curve and Balancer LP positions are typically referred to as pools since they can contain more than two tokens, while Uniswap and SushiSwap positions are typically referred to as LPs.
- - **Curve**
- - Name: `Curve + pool + Pool yVault`
- - **Examples:** `Curve sBTC Pool yVault`, `Curve 3pool yVault`, `Curve Y Pool yVault`
- - In this case, `pool` is taken directly from curve.finance's UI, and we can adjust for capitalization as needed. In the case of the `3pool`, the redundant "Pool" is removed.
- - Symbol: `yvCurve-pool`
- - **Examples:** `yvCurve-sBTC`, `yvCurve-3pool`, `yvCurve-Y`
- - Note: In this methodology, `yvCurve-Y` refers to the vault previously known as `yUSD`. Please see below for a more detailed discussion on proper use of `yUSD`.
- - **Uniswap**
- - Name: `Uniswap + v${self.version()} + TOKEN-TOKEN + LP yVault`
- - **Examples:** `Uniswap v2 USDT-WETH LP yVault`, `Uniswap v2 WBTC-WETH LP yVault`
- - Symbol: `yvUni-TOKEN-TOKEN`
- - **Examples:** `yvUni-USDT-WETH`, `yvUni-WBTC-WETH`
- - Note: Version was included for Uniswap LP tokens to help limit confusion between UNI-v2 LP tokens and upcoming UNI-v3 LP tokens.
- - **Balancer**
- - Name: `Balancer + TOKEN-TOKEN + Pool yVault`
- - **Examples:** `Balancer USDT-WETH Pool yVault`, `Balancer WBTC-WETH Pool yVault`
- - Symbol: `yvBal-TOKEN-TOKEN`
- - **Examples:** `yvBal-USDT-WETH`, `yvBal-WBTC-WETH`
- - Note: Since Balancer allows more than two tokens per pool, append as many `TOKEN` as needed for the pool in question.
- - **SushiSwap**
- - Name: `SushiSwap + TOKEN-TOKEN + LP yVault`
- - **Examples:** `SushiSwap USDT-WETH LP yVault`, `Uniswap v2 WBTC-WETH LP yVault`
- - Symbol: `yvSushi-TOKEN-TOKEN`
- - **Examples:** `yvSushi-USDT-WETH`, `yvSushi-WBTC-WETH`
-
-## yVault Want Token
-
-- In Yearn's UI, it may be useful to denote the desired token to deposit into a specific yVault. For basic ERC20 `want` tokens, `name` and `symbol` can be pulled directly from the token contract and utilized as-is.
- - **Examples:** `USD Coin`, `USDC`, `ChainLink Token`, `LINK`
-- However, for LP positions, naming needs to be standardized.
- - Curve
- - Name: `Curve + pool + Pool`
- - **Examples:** `Curve sBTC Pool`, `Curve 3pool`, `Curve Y Pool`, `Curve Compound Pool`
- - In this case, `pool` is taken directly from curve.finance's UI, and we can adjust for capitalization as needed. In the case of the `3pool`, the redundant "Pool" is removed.
- - Symbol: `crvPOOL or override`
- - **Examples:** `crvBUSD`, `crvCOMP`, `crvGUSD`, `crvMUSD`, `crvTBTC`, `crvSBTC`, `yCRV`, `3Crv`
- - These names were chosen as `crvBUSD` and `crvSBTC` are already fairly widely used, and applying this formula works well for other pools. `yCRV` and `3Crv` are the allowed exceptions, as `yCRV` is the most widely used name for that pool, and `3Crv` usage is now fairly common with the recent admin fee distribution.
- - Uniswap
- - Name: `Uniswap + v${self.version()} + TOKEN-TOKEN + LP`
- - **Examples:** `Uniswap v2 USDT-WETH LP`, `Uniswap v2 WBTC-WETH LP`
- - Symbol: `TOKEN-TOKEN UNI`
- - **Examples:** `USDT-WETH UNI`, `WBTC-WETH UNI`
- - Balancer
- - Name: `Balancer + TOKEN-TOKEN + Pool`
- - **Examples:** `Balancer USDT-WETH Pool`, `Balancer WBTC-WETH Pool`
- - Symbol: `TOKEN-TOKEN BPT`
- - **Examples:** `USDT-WETH BPT`, `WBTC-WETH BPT`
- - Note: Since Balancer allows more than two tokens per pool, append as many `TOKEN` as needed for the pool in question.
- - SushiSwap
- - Name: `SushiSwap + TOKEN-TOKEN + LP`
- - **Examples:** `SushiSwap USDT-WETH LP`, `Uniswap v2 WBTC-WETH LP`
- - Symbol: `TOKEN-TOKEN SLP`
- - **Examples:** `USDT-WETH SLP`, `WBTC-WETH SLP`
-
-## yUSD
-
-- While the term `yUSD` was used to refer to the Curve Y Pool yVault in the past, under our updated naming convention this vault token is now `yvCurve-Y`. However, usage of `yUSD` is still permissable when referring to the asset itself.
- - **Example:** Yearn pays monthly grants in `yUSD`.
-- In the future, if Yearn creates a new `yUSD` that is a collection of several yVault tokens (as has been previously discussed), then the current `yUSD` will simply be referred to as `yvCurve-Y` and only the new token will be `yUSD`.
-
-## yEarn
-
-- These are Yearn's original yield-aware tokens, whose v1 and v2 contracts can be found [here](/getting-started/products/yvaults/vault-tokens#v2-yvault-tokens) or by clicking on the etherscan icon when viewing the vault:
-
- 
-
-- These products should be referred to as yEarn Tokens, `underlying token name + Earn`, or `y{token.symbol()}v${self.version()}`
- - **Examples:** `yDAIv2`, `yDAI Earn`, `yBUSDv3`, `yBUSD Earn`
-
-## Test Products
-
-- For deployed contracts that have not reached their final production version, a simple modification is included to designate these on the contract level as being test products.
- - Name: `${token.symbol()} or override + Test + Product`
- - Symbol: `yt${token.symbol()} or override`
- - **Examples:** `DAI Test yVault`, `ytDAI`
-- Additionally, the v2 yVault contracts have upgradeable `name` and `symbol` fields. This means that should a test contract perform well, these fields can be updated to reflect that it is no longer a test contract, removing the need to deploy new contracts.
-
-## Future Products
-
-- Future products can follow a simple naming convention: `y + product`, where the product and any potential token names follow similar guidelines as above with yVaults. These can then be further modified as needed based on the product\(s\).
- - **Examples:** `ySwap`, `yBorrow`, `yTrade`
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/operations.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/operations.md
deleted file mode 100644
index db4aabcaf2..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/process-and-procedures/operations.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Operations procedures
-
-These operations might be needed at any point in time.
-
-## Revoking a strategy with normal migration
-
-Let's say we found a problem in one of the strategies and we want to return all funds. There are two ways of doing it.
-
-The scripts below use the HEGIC vault as an example.
-
-### From the vault
-
-```python
-# Grab the gov account
-gov = accounts.at(vault.governance(), force=True)
-
-# The cream strategy is the first in the withdrawal queue
-s1 = Contract(vault.withdrawalQueue(0))
-
-# Revoke msg should be sent from gov or guardian
-vault.revokeStrategy(s1, {"from": gov})
-```
-
-After running the command you will notice:
-
-```python
-vault.strategies(s1).dict()['debtRatio'] == 0
-```
-
-Last step is running a `harvest` to return funds to vault:
-
-```python
-s1.harvest({"from": gov})
->>> hegic.balanceOf(s1)
-0
->>> hegic.balanceOf(vault)/1e18
-291731.2666932462
-```
-
-### From the strategy
-
-From the strategy itself we can turn on emergency mode.
-To do it we need to run:
-
-```python
-# Grab the strategist account
-strategist = accounts.at(s1.strategist(), force=True)
-
-# Turn on the emergency exit
-s1.setEmergencyExit({'from': strategist})
-
-# Harvest to move funds to the vault
-s1.harvest({'from': strategist})
-```
-
-We should also see the strategy's `debtRatio` going to `0` and funds returning to the vault.
-
-## Emergency Procedures
-
-We can also shutdown the vault to return assets as soon as possible. To do that we will need a guardian or governance account:
-
-```python
-# Sound the alarm
-vault.setEmergencyShutdown(true, {'from': gov})
-
-# Harvest all strategies
-s1.harvest({'from': gov})
-s2.harvest({'from': gov})
-s3.harvest({'from': gov})
-
-# Check all the tokens are back in the vault
->>> hegic.balanceOf(vault) == vault.totalAssets()
-True
-```
-
-You will notice that this procedure doesn't change the debt ratio:
-
-```python
->>> vault.strategies(s1).dict()['debtRatio']
-1600
-```
-
-It drops the credit to `0`:
-
-```python
->>> vault.creditAvailable(s1)
-0
-```
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseStrategy.md
deleted file mode 100644
index c196dafc57..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseStrategy.md
+++ /dev/null
@@ -1,722 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) public returns (string)
-```
-
- Used to track which version of `StrategyAPI` this Strategy
- implements.
-
-The Strategy's version must match the Vault's `API_VERSION`.
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`A`| | string which holds the current API version of this contract.
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-This Strategy's name.
-@dev
- You can use this field to manage the "version" of this Strategy, e.g.
- `StrategySomethingOrOtherV1`. However, "API Version" is managed by
- `apiVersion()` function above.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`This`| | Strategy's name.
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
- The amount (priced in want) of the total assets managed by this strategy should not count
- towards Yearn's TVL calculations.
-@dev
- You can override this field to set it to a non-zero value if some of the assets of this
- Strategy is somehow delegated inside another part of Yearn's ecosystem e.g. another Vault.
- Note that this value must be strictly less than or equal to the amount provided by
- `estimatedTotalAssets()` below, as the TVL calc will be total assets minus delegated assets.
- Also note that this value is used to determine the total assets under management by this
- strategy, for the purposes of computing the management fee in `Vault`
-@return
- The amount of assets this strategy manages that should not be included in Yearn's Total Value
- Locked (TVL) calculation across its ecosystem.
-
-
-
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _initialize
-```solidity
- function _initialize(
- address _vault,
- address _strategist,
- address _rewards,
- address _keeper
- ) internal
-```
-
- Initializes the Strategy, this is called only once, when the
- contract is deployed.
-
-`_vault` should implement `VaultAPI`.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_vault` | address | The address of the Vault responsible for this Strategy.
-|`_strategist` | address | The address to assign as `strategist`.
-The strategist is able to change the reward address
-|`_rewards` | address | The address to use for pulling rewards.
-|`_keeper` | address | The address of the _keeper. _keeper
-can harvest and tend a strategy.
-
-### setStrategist
-```solidity
- function setStrategist(
- address _strategist
- ) external
-```
-
- Used to change `strategist`.
-
- This may only be called by governance or the existing strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_strategist` | address | The new address to assign as `strategist`.
-
-### setKeeper
-```solidity
- function setKeeper(
- address _keeper
- ) external
-```
-
- Used to change `keeper`.
-
- `keeper` is the only address that may call `tend()` or `harvest()`,
- other than `governance()` or `strategist`. However, unlike
- `governance()` or `strategist`, `keeper` may *only* call `tend()`
- and `harvest()`, and no other authorized functions, following the
- principle of least privilege.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_keeper` | address | The new address to assign as `keeper`.
-
-### setRewards
-```solidity
- function setRewards(
- address _rewards
- ) external
-```
-
- Used to change `rewards`. EOA or smart contract which has the permission
- to pull rewards from the vault.
-
- This may only be called by the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_rewards` | address | The address to use for pulling rewards.
-
-### setMinReportDelay
-```solidity
- function setMinReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `minReportDelay`. `minReportDelay` is the minimum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the minimum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The minimum number of seconds to wait between harvests.
-
-### setMaxReportDelay
-```solidity
- function setMaxReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `maxReportDelay`. `maxReportDelay` is the maximum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the maximum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The maximum number of seconds to wait between harvests.
-
-### setProfitFactor
-```solidity
- function setProfitFactor(
- uint256 _profitFactor
- ) external
-```
-
- Used to change `profitFactor`. `profitFactor` is used to determine
- if it's worthwhile to harvest, given gas costs. (See `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_profitFactor` | uint256 | A ratio to multiply anticipated
-`harvest()` gas cost against.
-
-### setDebtThreshold
-```solidity
- function setDebtThreshold(
- uint256 _debtThreshold
- ) external
-```
-
- Sets how far the Strategy can go into loss without a harvest and report
- being required.
-
- By default this is 0, meaning any losses would cause a harvest which
- will subsequently report the loss to the Vault for tracking. (See
- `harvestTrigger()` for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_debtThreshold` | uint256 | How big of a loss this Strategy may carry without
-being required to report to the Vault.
-
-### setMetadataURI
-```solidity
- function setMetadataURI(
- string _metadataURI
- ) external
-```
-
- Used to change `metadataURI`. `metadataURI` is used to store the URI
-of the file describing the strategy.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_metadataURI` | string | The URI that describe the strategy.
-
-### governance
-```solidity
- function governance(
- ) internal returns (address)
-```
-Resolve governance address from Vault contract, used to make assertions
-on protected functions in the Strategy.
-
-
-
-### ethToWant
-```solidity
- function ethToWant(
- uint256 _amtInWei
- ) public returns (uint256)
-```
-
- Provide an accurate conversion from `_amtInWei` (denominated in wei)
- to `want` (using the native decimal characteristics of `want`).
-@dev
- Care must be taken when working with decimals to assure that the conversion
- is compatible. As an example:
-
- given 1e17 wei (0.1 ETH) as input, and want is USDC (6 decimals),
- with USDC/ETH = 1800, this should give back 1800000000 (180 USDC)
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amtInWei` | uint256 | The amount (in wei/1e-18 ETH) to convert to `want`
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| uint256 | amount in `want` of `_amtInEth` converted to `want`
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
- Provide an accurate estimate for the total amount of assets
- (principle + return) that this Strategy is currently managing,
- denominated in terms of `want` tokens.
-
- This total should be "realizable" e.g. the total value that could
- *actually* be obtained from this Strategy if it were to divest its
- entire position based on current onchain conditions.
-@dev
- Care must be taken in using this function, since it relies on external
- systems, which could be manipulated by the attacker to give an inflated
- (or reduced) value produced by this function, based on current onchain
- conditions (e.g. this function is possible to influence through
- flashloan attacks, oracle manipulations, or other DeFi attack
- mechanisms).
-
- It is up to governance to use this function to correctly order this
- Strategy relative to its peers in the withdrawal queue to minimize
- losses for the Vault based on sudden withdrawals. This value should be
- higher than the total debt of the Strategy and higher than its expected
- value to be "safe".
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| | estimated total assets in this Strategy.
-### isActive
-```solidity
- function isActive(
- ) public returns (bool)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-Perform any Strategy unwinding or other calls necessary to capture the
-"free return" this Strategy has generated since the last time its core
-position(s) were adjusted. Examples include unwrapping extra rewards.
-This call is only used during "normal operation" of a Strategy, and
-should be optimized to minimize losses as much as possible.
-
-This method returns any realized profits and/or realized losses
-incurred, and should return the total amounts of profits/losses/debt
-payments (in `want` tokens) for the Vault's accounting (e.g.
-`want.balanceOf(this) >= _debtPayment + _profit`).
-
-`_debtOutstanding` will be 0 if the Strategy is not past the configured
-debt limit, otherwise its value will be how far past the debt limit
-the Strategy is. The Strategy's debt limit is configured in the Vault.
-
-NOTE: `_debtPayment` should be less than or equal to `_debtOutstanding`.
- It is okay for it to be less than `_debtOutstanding`, as that
- should only used as a guide for how much is left to pay back.
- Payments should be made to minimize loss from slippage, debt,
- withdrawal fees, etc.
-
-See `vault.debtOutstanding()`.
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-Perform any adjustments to the core position(s) of this Strategy given
-what change the Vault made in the "investable capital" available to the
-Strategy. Note that all "free capital" in the Strategy after the report
-was made is available for reinvestment. Also note that this number
-could be 0, and you should handle that scenario accordingly.
-
-See comments regarding `_debtOutstanding` on `prepareReturn()`.
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-Liquidate up to `_amountNeeded` of `want` of this strategy's positions,
-irregardless of slippage. Any excess will be re-invested with `adjustPosition()`.
-This function should return the amount of `want` tokens made available by the
-liquidation. If there is a difference between them, `_loss` indicates whether the
-difference is due to a realized loss, or if there is some other sitution at play
-(e.g. locked funds) where the amount made available is less than what is needed.
-
-NOTE: The invariant `_liquidatedAmount + _loss <= _amountNeeded` should always be maintained
-
-
-
-### liquidateAllPositions
-```solidity
- function liquidateAllPositions(
- ) internal returns (uint256 _amountFreed)
-```
-Liquidate everything and returns the amount that got freed.
-This function is used during emergency exit instead of `prepareReturn()` to
-liquidate all of the Strategy's positions back to the Vault.
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- uint256 callCostInWei
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `tend()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `tend()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `tend()` is not called
- shortly, then this can return `true` even if the keeper might be
- "at a loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCostInWei` must be priced in terms of `wei` (1e-18 ETH).
-
- This call and `harvestTrigger()` should never return `true` at the same
- time.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCostInWei` | uint256 | The keeper's estimated gas cost to call `tend()` (in wei).
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `tend()` should be called, `false` otherwise.
-### tend
-```solidity
- function tend(
- ) external
-```
-
- Adjust the Strategy's position. The purpose of tending isn't to
- realize gains, but to maximize yield by reinvesting any returns.
-
- See comments on `adjustPosition()`.
-
- This may only be called by governance, the strategist, or the keeper.
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- uint256 callCostInWei
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `harvest()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `harvest()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `harvest()` is not called
- shortly, then this can return `true` even if the keeper might be "at a
- loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCostInWei` must be priced in terms of `wei` (1e-18 ETH).
-
- This call and `tendTrigger` should never return `true` at the
- same time.
-
- See `min/maxReportDelay`, `profitFactor`, `debtThreshold` to adjust the
- strategist-controlled parameters that will influence whether this call
- returns `true` or not. These parameters will be used in conjunction
- with the parameters reported to the Vault (see `params`) to determine
- if calling `harvest()` is merited.
-
- It is expected that an external system will check `harvestTrigger()`.
- This could be a script run off a desktop or cloud bot (e.g.
- https://github.com/iearn-finance/yearn-vaults/blob/master/scripts/keep.py),
- or via an integration with the Keep3r network (e.g.
- https://github.com/Macarse/GenericKeep3rV2/blob/master/contracts/keep3r/GenericKeep3rV2.sol).
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCostInWei` | uint256 | The keeper's estimated gas cost to call `harvest()` (in wei).
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `harvest()` should be called, `false` otherwise.
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
- Harvests the Strategy, recognizing any profits or losses and adjusting
- the Strategy's position.
-
- In the rare case the Strategy is in emergency shutdown, this will exit
- the Strategy's position.
-
- This may only be called by governance, the strategist, or the keeper.
-@dev
- When `harvest()` is called, the Strategy reports to the Vault (via
- `vault.report()`), so in some cases `harvest()` must be called in order
- to take in profits, to borrow newly available funds from the Vault, or
- otherwise adjust its position. In other cases `harvest()` must be
- called to report to the Vault on the Strategy's position, especially if
- any losses have occurred.
-
-
-
-### withdraw
-```solidity
- function withdraw(
- uint256 _amountNeeded
- ) external returns (uint256 _loss)
-```
-
- Withdraws `_amountNeeded` to `vault`.
-
- This may only be called by the Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amountNeeded` | uint256 | How much `want` to withdraw.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`_loss`| uint256 | Any realized losses
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-Do anything necessary to prepare this Strategy for migration, such as
-transferring any reserve or LP tokens, CDPs, or other tokens or stores of
-value.
-
-
-
-### migrate
-```solidity
- function migrate(
- address _newStrategy
- ) external
-```
-
- Transfers all `want` from this Strategy to `_newStrategy`.
-
- This may only be called by the Vault.
-@dev
-The new Strategy's Vault must be the same as this Strategy's Vault.
- The migration process should be carefully performed to make sure all
-the assets are migrated to the new address, which should have never
-interacted with the vault before.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_newStrategy` | address | The Strategy to migrate to.
-
-### setEmergencyExit
-```solidity
- function setEmergencyExit(
- ) external
-```
-
- Activates emergency exit. Once activated, the Strategy will exit its
- position upon the next harvest, depositing all funds into the Vault as
- quickly as is reasonable given onchain conditions.
-
- This may only be called by governance or the strategist.
-@dev
- See `vault.setEmergencyShutdown()` and `harvest()` for further details.
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-Override this to add all tokens/tokenized positions this contract
-manages on a *persistent* basis (e.g. not just for swapping back to
-want ephemerally).
-
-NOTE: Do *not* include `want`, already included in `sweep` below.
-
-Example:
-```
- function protectedTokens() internal override view returns (address[] memory) {
- address[] memory protected = new address[](3);
- protected[0] = tokenA;
- protected[1] = tokenB;
- protected[2] = tokenC;
- return protected;
- }
-```
-
-
-
-### sweep
-```solidity
- function sweep(
- address _token
- ) external
-```
-
- Removes tokens from this Strategy that are not the type of tokens
- managed by this Strategy. This may be used in case of accidentally
- sending the wrong kind of token to this Strategy.
-
- Tokens will be sent to `governance()`.
-
- This will fail if an attempt is made to sweep `want`, or any tokens
- that are protected by this Strategy.
-
- This may only be called by governance.
-@dev
- Implement `protectedTokens()` to specify any additional tokens that
- should be protected from sweeping in addition to `want`.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_token` | address | The token to transfer out of this vault.
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
-### UpdatedStrategist
-```solidity
- event UpdatedStrategist(
- )
-```
-
-
-
-### UpdatedKeeper
-```solidity
- event UpdatedKeeper(
- )
-```
-
-
-
-### UpdatedRewards
-```solidity
- event UpdatedRewards(
- )
-```
-
-
-
-### UpdatedMinReportDelay
-```solidity
- event UpdatedMinReportDelay(
- )
-```
-
-
-
-### UpdatedMaxReportDelay
-```solidity
- event UpdatedMaxReportDelay(
- )
-```
-
-
-
-### UpdatedProfitFactor
-```solidity
- event UpdatedProfitFactor(
- )
-```
-
-
-
-### UpdatedDebtThreshold
-```solidity
- event UpdatedDebtThreshold(
- )
-```
-
-
-
-### EmergencyExitEnabled
-```solidity
- event EmergencyExitEnabled(
- )
-```
-
-
-
-### UpdatedMetadataURI
-```solidity
- event UpdatedMetadataURI(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseStrategyInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseStrategyInitializable.md
deleted file mode 100644
index 90b02232d3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseStrategyInitializable.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### initialize
-```solidity
- function initialize(
- ) external
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address)
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address newStrategy)
-```
-
-
-
-
-## Events
-### Cloned
-```solidity
- event Cloned(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseWrapper.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseWrapper.md
deleted file mode 100644
index 4444480a8c..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/BaseWrapper.md
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### setRegistry
-```solidity
- function setRegistry(
- address _registry
- ) external
-```
-
- Used to update the yearn registry.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_registry` | address | The new _registry address.
-
-### bestVault
-```solidity
- function bestVault(
- ) public returns (contract VaultAPI)
-```
-
- Used to get the most revent vault for the token using the registry.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`An`| | instance of a VaultAPI
-### allVaults
-```solidity
- function allVaults(
- ) public returns (contract VaultAPI[])
-```
-
- Used to get all vaults from the registery for the token
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`An`| | array containing instances of VaultAPI
-### _updateVaultCache
-```solidity
- function _updateVaultCache(
- ) internal
-```
-
-
-
-
-### totalVaultBalance
-```solidity
- function totalVaultBalance(
- ) public returns (uint256 balance)
-```
-
- Used to get the balance of an account accross all the vaults for a token.
- @dev will be used to get the wrapper balance using totalVaultBalance(address(this)).
- @param account The address of the account.
- @return balance of token for the account accross all the vaults.
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) public returns (uint256 assets)
-```
-
- Used to get the TVL on the underlying vaults.
- @return assets the sum of all the assets managed by the underlying vaults.
-
-
-
-### _deposit
-```solidity
- function _deposit(
- ) internal returns (uint256 deposited)
-```
-
-
-
-
-### _withdraw
-```solidity
- function _withdraw(
- ) internal returns (uint256 withdrawn)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256 migrated)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/IERC20Metadata.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/IERC20Metadata.md
deleted file mode 100644
index 8e3ce73feb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/IERC20Metadata.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-Returns the name of the token.
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-Returns the symbol of the token.
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint8)
-```
-
-Returns the decimals places of the token.
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/IWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/IWETH.md
deleted file mode 100644
index 383b7b45bb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/IWETH.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-## Functions
-### deposit
-```solidity
- function deposit(
- ) external
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/RegistryAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/RegistryAPI.md
deleted file mode 100644
index 1d3ea44db3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/RegistryAPI.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-
-
-
-
-### latestVault
-```solidity
- function latestVault(
- ) external returns (address)
-```
-
-
-
-
-### numVaults
-```solidity
- function numVaults(
- ) external returns (uint256)
-```
-
-
-
-
-### vaults
-```solidity
- function vaults(
- ) external returns (address)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/StrategyAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/StrategyAPI.md
deleted file mode 100644
index 3ac6fbf6eb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/StrategyAPI.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-This interface is here for the keeper bot to use.
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### vault
-```solidity
- function vault(
- ) external returns (address)
-```
-
-
-
-
-### want
-```solidity
- function want(
- ) external returns (address)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### keeper
-```solidity
- function keeper(
- ) external returns (address)
-```
-
-
-
-
-### isActive
-```solidity
- function isActive(
- ) external returns (bool)
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### tend
-```solidity
- function tend(
- ) external
-```
-
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
-
-
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/VaultAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/VaultAPI.md
deleted file mode 100644
index 4c99deda19..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/VaultAPI.md
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- ) external returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### token
-```solidity
- function token(
- ) external returns (address)
-```
-
-
-
-
-### strategies
-```solidity
- function strategies(
- ) external returns (struct StrategyParams)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### depositLimit
-```solidity
- function depositLimit(
- ) external returns (uint256)
-```
-
-
-
-
-### maxAvailableShares
-```solidity
- function maxAvailableShares(
- ) external returns (uint256)
-```
-
-
-
-
-### creditAvailable
-```solidity
- function creditAvailable(
- ) external returns (uint256)
-```
-View how much the Vault would increase this Strategy's borrow limit,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### debtOutstanding
-```solidity
- function debtOutstanding(
- ) external returns (uint256)
-```
-View how much the Vault would like to pull back from the Strategy,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### expectedReturn
-```solidity
- function expectedReturn(
- ) external returns (uint256)
-```
-View how much the Vault expect this Strategy to return at the current
-block, based on its present performance (since its last report). Can be
-used to determine expectedReturn in your Strategy.
-
-
-
-### report
-```solidity
- function report(
- ) external returns (uint256)
-```
-This is the main contact point where the Strategy interacts with the
-Vault. It is critical that this call is handled as intended by the
-Strategy. Therefore, this function will be called by BaseStrategy to
-make sure the integration is correct.
-
-
-
-### revokeStrategy
-```solidity
- function revokeStrategy(
- ) external
-```
-This function should only be used in the scenario where the Strategy is
-being retired but no migration of the positions are possible, or in the
-extreme scenario that the Strategy needs to be put into "Emergency Exit"
-mode in order for it to exit as quickly as possible. The latter scenario
-could be for any reason that is considered "critical" that the Strategy
-exits its position as fast as possible, such as a sudden change in
-market conditions leading to losses, or an imminent failure in an
-external dependency.
-
-
-
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-View the governance address of the Vault to assert privileged functions
-can only be called by governance. The Strategy serves the Vault, so it
-is subject to governance defined by the Vault.
-
-
-
-### management
-```solidity
- function management(
- ) external returns (address)
-```
-View the management address of the Vault to assert privileged functions
-can only be called by management. The Strategy serves the Vault, so it
-is subject to management defined by the Vault.
-
-
-
-### guardian
-```solidity
- function guardian(
- ) external returns (address)
-```
-View the guardian address of the Vault to assert privileged functions
-can only be called by guardian. The Strategy serves the Vault, so it
-is subject to guardian defined by the Vault.
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/registry.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/registry.md
deleted file mode 100644
index 4cf44c7835..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/registry.md
+++ /dev/null
@@ -1,411 +0,0 @@
-# Registry.vy
-
-
-
-
-
-
-
-## Functions
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Starts the 1st phase of the governance transfer.
-
-
-*Throws if the caller is not current governance.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The next governance address * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Completes the 2nd phase of the governance transfer.
-
-
-*Throws if the caller is not the pending caller. Emits a `NewGovernance` event.*
-
-
-
-
-
-
-
-### latestRelease
-```solidity
-function latestRelease()
-```
-
-
-Returns the api version of the latest release.
-
-
-*Throws if no releases are registered yet.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The api version of the latest release. * |
-
-
-
-
-
-
-### latestVault
-```solidity
-function latestVault(address)
-```
-
-
-Returns the latest deployed vault for the given token.
-
-
-*Throws if no vaults are endorsed yet for the given token.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token address to find the latest vault for. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the latest vault for the given token. * |
-
-
-
-
-
-
-### newRelease
-```solidity
-function newRelease(address)
-```
-
-
-Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
-
-
-*Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be used as the template contract for the next release. * |
-
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string,uint256)
-```
-
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address)
-```
-
-
-Adds an existing vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address)
-```
-
-
-Set the ability of a particular tagger to tag current vaults.
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address,bool)
-```
-
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### tagVault
-```solidity
-function tagVault(address,string)
-```
-
-
-Tag a Vault with a message.
-
-
-*Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The address to tag with the given `tag` message. * |
-| * tag * | * * | * The message to tag `vault` with. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**NewRelease**
-
-* `release_id` : uint256, *indexed*
-* `template` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewVault**
-
-* `token` : address, *indexed*
-* `vault_id` : uint256, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewExperimentalVault**
-
-* `token` : address, *indexed*
-* `deployer` : address, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewGovernance**
-
-* `governance` : address, *notIndexed*
-
-**VaultTagged**
-
-* `vault` : address, *notIndexed*
-* `tag` : string, *notIndexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/AffiliateToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/AffiliateToken.md
deleted file mode 100644
index 32acd0b430..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/AffiliateToken.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _getChainId
-```solidity
- function _getChainId(
- ) internal returns (uint256)
-```
-
-
-
-
-### setAffiliate
-```solidity
- function setAffiliate(
- ) external
-```
-
-
-
-
-### acceptAffiliate
-```solidity
- function acceptAffiliate(
- ) external
-```
-
-
-
-
-### _shareValue
-```solidity
- function _shareValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### _sharesForValue
-```solidity
- function _sharesForValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) public returns (uint256 deposited)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) public returns (uint256 withdrawn)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- address owner,
- address spender,
- uint256 amount,
- uint256 deadline,
- uint8 v,
- bytes32 r,
- bytes32 s
- ) external
-```
-Triggers an approval from owner to spends
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`owner` | address | The address to approve from
-|`spender` | address | The address to be approved
-|`amount` | uint256 | The number of tokens that are approved (2^256-1 means infinite)
-|`deadline` | uint256 | The time at which to expire the signature
-|`v` | uint8 | The recovery byte of the signature
-|`r` | bytes32 | Half of the ECDSA signature pair
-|`s` | bytes32 | Half of the ECDSA signature pair
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TestGuestList.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TestGuestList.md
deleted file mode 100644
index ba34279f4b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TestGuestList.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-A basic guest list contract for testing.
-
-For a Vyper implementation of this contract containing additional
-functionality, see https://github.com/banteg/guest-list/blob/master/contracts/GuestList.vy
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-Create the test guest list, setting the message sender as
-`bouncer`.
-
-Note that since this is just for testing, you're unable to change
-`bouncer`.
-
-
-### setGuests
-```solidity
- function setGuests(
- address[] _guests,
- bool[] _invited
- ) external
-```
-Invite guests or kick them from the party.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guests` | address[] | The guests to add or update.
-|`_invited` | bool[] | A flag for each guest at the matching index, inviting or
-uninviting the guest.
-
-### authorized
-```solidity
- function authorized(
- address _guest,
- uint256 _amount
- ) external returns (bool)
-```
-Check if a guest with a bag of a certain size is allowed into
-the party.
-
-Note that `_amount` isn't checked to keep test setup simple, since
-from the vault tests' perspective this is a pass/fail call anyway.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guest` | address | The guest's address to check.
-|`_amount` | uint256 | Not used. The amount of tokens the guest is bringing.
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TestStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TestStrategy.md
deleted file mode 100644
index 09032c36f1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TestStrategy.md
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### _toggleDelegation
-```solidity
- function _toggleDelegation(
- ) public
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### _takeFunds
-```solidity
- function _takeFunds(
- ) public
-```
-
-
-
-
-### _toggleReentrancyExploit
-```solidity
- function _toggleReentrancyExploit(
- ) public
-```
-
-
-
-
-### _setWant
-```solidity
- function _setWant(
- ) public
-```
-
-
-
-
-### ethToWant
-```solidity
- function ethToWant(
- ) public returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-
-
-
-
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-
-
-
-
-### liquidateAllPositions
-```solidity
- function liquidateAllPositions(
- ) internal returns (uint256 amountFreed)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/Token.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/Token.md
deleted file mode 100644
index 6bc7e4f416..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/Token.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### _beforeTokenTransfer
-```solidity
- function _beforeTokenTransfer(
- ) internal
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TokenFalseReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TokenFalseReturn.md
deleted file mode 100644
index 82c282f5fa..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TokenFalseReturn.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TokenNoReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TokenNoReturn.md
deleted file mode 100644
index 311566ddb6..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/test/TokenNoReturn.md
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) external
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) external
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) external
-```
-
-
-
-
-## Events
-### Transfer
-```solidity
- event Transfer(
- )
-```
-
-
-
-### Approval
-```solidity
- event Approval(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/utils/ProxyFactoryInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/utils/ProxyFactoryInitializable.md
deleted file mode 100644
index 7d1fd7ea2a..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/utils/ProxyFactoryInitializable.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-## Functions
-### deployMinimal
-```solidity
- function deployMinimal(
- ) external returns (address proxy, bytes returnData)
-```
-
-
-
-
-### _getRevertMsg
-```solidity
- function _getRevertMsg(
- bytes _res
- ) internal returns (string)
-```
-This is needed in order to get the human-readable revert message from a call
-
-Get the revert message from a call
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_res` | bytes | Response of the call
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`Revert`| bytes | message string
-### slice
-```solidity
- function slice(
- ) internal returns (bytes)
-```
-
-
-
-
-## Events
-### ProxyCreated
-```solidity
- event ProxyCreated(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/vault.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/vault.md
deleted file mode 100644
index 834653728b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/vault.md
+++ /dev/null
@@ -1,1382 +0,0 @@
-# Vault.vy
-
-
-**Yearn Token Vault**
-
-
-
-
-
-*Yearn Token Vault. Holds an underlying token, and allows users to interact with the Yearn ecosystem through Strategies connected to the Vault. Vaults are not limited to a single Strategy, they can have as many Strategies as can be designed (however the withdrawal queue is capped at 20.) Deposited funds are moved into the most impactful strategy that has not already reached its limit for assets under management, regardless of which Strategy a user's funds end up in, they receive their portion of yields generated across all Strategies. When a user withdraws, if there are no funds sitting undeployed in the Vault, the Vault withdraws funds from Strategies in the order of least impact. (Funds are taken from the Strategy that will disturb everyone's gains the least, then the next least, etc.) In order to achieve this, the withdrawal queue's order must be properly set and managed by the community (through governance). Vault Strategies are parameterized to pursue the highest risk-adjusted yield. There is an "Emergency Shutdown" mode. When the Vault is put into emergency shutdown, assets will be recalled from the Strategies as quickly as is practical (given onchain conditions), minimizing loss. Deposits are halted, new Strategies may not be added, and each Strategy exits with the minimum possible damage to position, while opening up deposits to be withdrawn by users. There are no restrictions on withdrawals above what is expected under Normal Operation. For further details, please refer to the specification: https://github.com/iearn-finance/yearn-vaults/blob/master/SPECIFICATION.md*
-
-
-## Functions
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string)
-```
-
-
-Initializes the Vault, this is called only once, when the contract is deployed. The performance fee is set to 10% of yield, per Strategy. The management fee is set to 2%, per year. The initial deposit limit is set to 0 (deposits disabled); it must be updated after initialization.
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'yv' combined with the symbol of `token`. The token used by the vault should not change balances outside transfers and it must transfer the exact amount requested. Fee on transfer and rebasing are not supported.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * management * | * * | * The address of the vault manager. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'yv' combined with the symbol of `token`. The token used by the vault should not change balances outside transfers and it must transfer the exact amount requested. Fee on transfer and rebasing are not supported.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * management * | * * | * The address of the vault manager. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'yv' combined with the symbol of `token`. The token used by the vault should not change balances outside transfers and it must transfer the exact amount requested. Fee on transfer and rebasing are not supported.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * management * | * * | * The address of the vault manager. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### apiVersion
-```solidity
-function apiVersion()
-```
-
-
-Used to track the deployed version of this contract. In practice you can use this version number to compare with Yearn's GitHub and determine which version of the source matches this deployed contract.
-
-
-*All strategies must have an `apiVersion()` that matches the Vault's `API_VERSION`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * API_VERSION which holds the current version of this contract. * |
-
-
-
-
-
-
-### setName
-```solidity
-function setName(string)
-```
-
-
-Used to change the value of `name`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * name * | * * | * The new name to use. * |
-
-
-
-
-
-
-
-### setSymbol
-```solidity
-function setSymbol(string)
-```
-
-
-Used to change the value of `symbol`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * symbol * | * * | * The new symbol to use. * |
-
-
-
-
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Nominate a new address to use as governance. The change does not go into effect immediately. This function sets a pending change, and the governance address is not updated until the proposed governance address has accepted the responsibility. This may only be called by the current governance address.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The address requested to take over Vault governance. * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Once a new governance address has been proposed using setGovernance(), this function may be called by the proposed address to accept the responsibility of taking over governance for this contract. This may only be called by the proposed governance address.
-
-
-*setGovernance() should be called by the existing governance address, prior to calling this function.*
-
-
-
-
-
-
-
-### setManagement
-```solidity
-function setManagement(address)
-```
-
-
-Changes the management address. Management is able to make some investment decisions adjusting parameters. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * management * | * * | * The address to use for managing. * |
-
-
-
-
-
-
-
-### setRewards
-```solidity
-function setRewards(address)
-```
-
-
-Changes the rewards address. Any distributed rewards will cease flowing to the old address and begin flowing to this address once the change is in effect. This will not change any Strategy reports in progress, only new reports made after this change goes into effect. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * rewards * | * * | * The address to use for collecting rewards. * |
-
-
-
-
-
-
-
-### setLockedProfitDegradation
-```solidity
-function setLockedProfitDegradation(uint256)
-```
-
-
-Changes the locked profit degradation.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * degradation * | * * | * The rate of degradation in percent per second scaled to 1e18. * |
-
-
-
-
-
-
-
-### setDepositLimit
-```solidity
-function setDepositLimit(uint256)
-```
-
-
-Changes the maximum amount of tokens that can be deposited in this Vault. Note, this is not how much may be deposited by a single depositor, but the maximum amount that may be deposited across all depositors. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * limit * | * * | * The new deposit limit to use. * |
-
-
-
-
-
-
-
-### setPerformanceFee
-```solidity
-function setPerformanceFee(uint256)
-```
-
-
-Used to change the value of `performanceFee`. Should set this value below the maximum strategist performance fee. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new performance fee to use. * |
-
-
-
-
-
-
-
-### setManagementFee
-```solidity
-function setManagementFee(uint256)
-```
-
-
-Used to change the value of `managementFee`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new management fee to use. * |
-
-
-
-
-
-
-
-### setGuardian
-```solidity
-function setGuardian(address)
-```
-
-
-Used to change the address of `guardian`. This may only be called by governance or the existing guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guardian * | * * | * The new guardian address to use. * |
-
-
-
-
-
-
-
-### setEmergencyShutdown
-```solidity
-function setEmergencyShutdown(bool)
-```
-
-
-Activates or deactivates Vault mode where all Strategies go into full withdrawal. During Emergency Shutdown: 1. No Users may deposit into the Vault (but may withdraw as usual.) 2. Governance may not add new Strategies. 3. Each Strategy must pay back their debt as quickly as reasonable to minimally affect their position. 4. Only Governance may undo Emergency Shutdown. See contract level note for further details. This may only be called by governance or the guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * active * | * * | * If true, the Vault goes into Emergency Shutdown. If false, the Vault goes back into Normal Operation. * |
-
-
-
-
-
-
-
-### setWithdrawalQueue
-```solidity
-function setWithdrawalQueue(address[20])
-```
-
-
-Updates the withdrawalQueue to match the addresses and order specified by `queue`. There can be fewer strategies than the maximum, as well as fewer than the total number of strategies active in the vault. `withdrawalQueue` will be updated in a gas-efficient manner, assuming the input is well- ordered with 0x0 only at the end. This may only be called by governance or management.
-
-
-*This is order sensitive, specify the addresses in the order in which funds should be withdrawn (so `queue`[0] is the first Strategy withdrawn from, `queue`[1] is the second, etc.) This means that the least impactful Strategy (the Strategy that will have its core positions impacted the least by having funds removed) should be at `queue`[0], then the next least impactful at `queue`[1], and so on.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * queue * | * * | * The array of addresses to use as the new withdrawal queue. This is order sensitive. * |
-
-
-
-
-
-
-
-### transfer
-```solidity
-function transfer(address,uint256)
-```
-
-
-Transfers shares from the caller's address to `receiver`. This function will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### transferFrom
-```solidity
-function transferFrom(address,address,uint256)
-```
-
-
-Transfers `amount` shares from `sender` to `receiver`. This operation will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0. Unless the caller has given this contract unlimited approval, transfering shares will decrement the caller's `allowance` by `amount`.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * sender * | * * | * The address shares are being transferred from. * |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### approve
-```solidity
-function approve(address,uint256)
-```
-
-
-
-*Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-
-
-
-
-
-
-
-### increaseAllowance
-```solidity
-function increaseAllowance(address,uint256)
-```
-
-
-
-*Increase the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to increase the allowance by. * |
-
-
-
-
-
-
-
-### decreaseAllowance
-```solidity
-function decreaseAllowance(address,uint256)
-```
-
-
-
-*Decrease the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to decrease the allowance by. * |
-
-
-
-
-
-
-
-### permit
-```solidity
-function permit(address,address,uint256,uint256,bytes)
-```
-
-
-Approves spender by owner's signature to expend owner's tokens. See https://eips.ethereum.org/EIPS/eip-2612.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * owner * | * * | * The address which is a source of funds and has signed the Permit. * |
-| * spender * | * * | * The address which is allowed to spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-| * expiry * | * * | * The timestamp after which the Permit is no longer valid. * |
-| * signature * | * * | * A valid secp256k1 signature of Permit by owner encoded as r, s, v. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True, if transaction completes successfully * |
-
-
-
-
-
-
-### totalAssets
-```solidity
-function totalAssets()
-```
-
-
-Returns the total quantity of all assets under control of this Vault, whether they're loaned out to a Strategy, or currently held in the Vault.
-
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total assets under control of this Vault. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit()
-```
-
-
-Deposits `_amount` `token`, issuing shares to `recipient`. If the Vault is in Emergency Shutdown, deposits will not be accepted and this call will fail.
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256,address)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### maxAvailableShares
-```solidity
-function maxAvailableShares()
-```
-
-
-Determines the maximum quantity of shares this Vault can facilitate a withdrawal for, factoring in assets currently residing in the Vault, as well as those deployed to strategies on the Vault's balance sheet.
-
-
-*Regarding how shares are calculated, see dev note on `deposit`. If you want to calculated the maximum a user could withdraw up to, you want to use this function. Note that the amount provided by this function is the theoretical maximum possible from withdrawing, the real amount depends on the realized losses incurred during withdrawal.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total quantity of shares this Vault can provide. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw()
-```
-
-
-Withdraws the calling account's tokens from this Vault, redeeming amount `_shares` for an appropriate amount of tokens. See note on `setWithdrawalQueue` for further details of withdrawal ordering and behavior.
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address,uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### pricePerShare
-```solidity
-function pricePerShare()
-```
-
-
-Gives the price for a single Vault share.
-
-
-*See dev note on `withdraw`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The value of a single share. * |
-
-
-
-
-
-
-### addStrategy
-```solidity
-function addStrategy(address,uint256,uint256,uint256,uint256)
-```
-
-
-Add a Strategy to the Vault. This may only be called by governance.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The address of the Strategy to add. * |
-| * debtRatio * | * * | * The share of the total assets in the `vault that the `strategy` has access to. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-| * performanceFee * | * * | * The fee the strategist will receive based on this Vault's performance. * |
-
-
-
-
-
-
-
-### updateStrategyDebtRatio
-```solidity
-function updateStrategyDebtRatio(address,uint256)
-```
-
-
-Change the quantity of assets `strategy` may manage. This may be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * debtRatio * | * * | * The quantity of assets `strategy` may now manage. * |
-
-
-
-
-
-
-
-### updateStrategyMinDebtPerHarvest
-```solidity
-function updateStrategyMinDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyMaxDebtPerHarvest
-```solidity
-function updateStrategyMaxDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyPerformanceFee
-```solidity
-function updateStrategyPerformanceFee(address,uint256)
-```
-
-
-Change the fee the strategist will receive based on this Vault's performance. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * performanceFee * | * * | * The new fee the strategist will receive. * |
-
-
-
-
-
-
-
-### migrateStrategy
-```solidity
-function migrateStrategy(address,address)
-```
-
-
-Migrates a Strategy, including all assets from `oldVersion` to `newVersion`. This may only be called by governance.
-
-
-*Strategy must successfully migrate all capital and positions to new Strategy, or else this will upset the balance of the Vault. The new Strategy should be "empty" e.g. have no prior commitments to this Vault, otherwise it could have issues.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * oldVersion * | * * | * The existing Strategy to migrate from. * |
-| * newVersion * | * * | * The new Strategy to migrate to. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy()
-```
-
-
-Revoke a Strategy, setting its debt limit to 0 and preventing any future deposits. This function should only be used in the scenario where the Strategy is being retired but no migration of the positions are possible, or in the extreme scenario that the Strategy needs to be put into "Emergency Exit" mode in order for it to exit as quickly as possible. The latter scenario could be for any reason that is considered "critical" that the Strategy exits its position as fast as possible, such as a sudden change in market conditions leading to losses, or an imminent failure in an external dependency. This may only be called by governance, the guardian, or the Strategy itself. Note that a Strategy will only revoke itself during emergency shutdown.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### addStrategyToQueue
-```solidity
-function addStrategyToQueue(address)
-```
-
-
-Adds `strategy` to `withdrawalQueue`. This may only be called by governance or management.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to add. * |
-
-
-
-
-
-
-
-### removeStrategyFromQueue
-```solidity
-function removeStrategyFromQueue(address)
-```
-
-
-Remove `strategy` from `withdrawalQueue`. This may only be called by governance or management.
-
-
-*We don't do this with revokeStrategy because it should still be possible to withdraw from the Strategy if it's unwinding.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to remove. * |
-
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding()
-```
-
-
-Determines if `strategy` is past its debt limit and if any tokens should be withdrawn to the Vault.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable()
-```
-
-
-Amount of tokens in Vault a Strategy has access to as a credit line. This will check the Strategy's debt limit, as well as the tokens available in the Vault, and determine the maximum amount of tokens (if any) the Strategy may draw on. In the rare case the Vault is in emergency shutdown this will return 0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn()
-```
-
-
-Provide an accurate expected value for the return this `strategy` would provide to the Vault the next time `report()` is called (since the last time it was called).
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### report
-```solidity
-function report(uint256,uint256,uint256)
-```
-
-
-Reports the amount of assets the calling Strategy has free (usually in terms of ROI). The performance fee is determined here, off of the strategy's profits (if any), and sent to governance. The strategist's fee is also determined here (off of profits), to be handled according to the strategist on the next harvest. This may only be called by a Strategy managed by this Vault.
-
-
-*For approved strategies, this is the most efficient behavior. The Strategy reports back what it has free, then Vault "decides" whether to take some back or give it more. Note that the most it can take is `gain + _debtPayment`, and the most it can give is all of the remaining reserves. Anything outside of those bounds is abnormal behavior. All approved strategies must have increased diligence around calling this function, as abnormal behavior could become catastrophic.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * gain * | * * | * Amount Strategy has realized as a gain on its investment since its last report, and is free to be given back to Vault as earnings * |
-| * loss * | * * | * Amount Strategy has realized as a loss on its investment since its last report, and should be accounted for on the Vault's balance sheet. The loss will reduce the debtRatio. The next time the strategy will harvest, it will pay back the debt in an attempt to adjust to the new debt limit. * |
-| * _debtPayment * | * * | * Amount Strategy has made available to cover outstanding debt * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * Amount of debt outstanding (if totalDebt > debtLimit or emergency shutdown). * |
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address)
-```
-
-
-Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault. Tokens will be sent to `governance`. This will fail if an attempt is made to sweep the tokens that this Vault manages. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address,uint256)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**Transfer**
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**Approval**
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**StrategyAdded**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyReported**
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `debtPaid` : uint256, *notIndexed*
-* `totalGain` : uint256, *notIndexed*
-* `totalLoss` : uint256, *notIndexed*
-* `totalDebt` : uint256, *notIndexed*
-* `debtAdded` : uint256, *notIndexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**UpdateGovernance**
-
-* `governance` : address, *notIndexed*
-
-**UpdateManagement**
-
-* `management` : address, *notIndexed*
-
-**UpdateRewards**
-
-* `rewards` : address, *notIndexed*
-
-**UpdateDepositLimit**
-
-* `depositLimit` : uint256, *notIndexed*
-
-**UpdatePerformanceFee**
-
-* `performanceFee` : uint256, *notIndexed*
-
-**UpdateManagementFee**
-
-* `managementFee` : uint256, *notIndexed*
-
-**UpdateGuardian**
-
-* `guardian` : address, *notIndexed*
-
-**EmergencyShutdown**
-
-* `active` : bool, *notIndexed*
-
-**UpdateWithdrawalQueue**
-
-* `queue` : address[20], *notIndexed*
-
-**StrategyUpdateDebtRatio**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**StrategyUpdateMinDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdateMaxDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdatePerformanceFee**
-
-* `strategy` : address, *indexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyMigrated**
-
-* `oldVersion` : address, *indexed*
-* `newVersion` : address, *indexed*
-
-**StrategyRevoked**
-
-* `strategy` : address, *indexed*
-
-**StrategyRemovedFromQueue**
-
-* `strategy` : address, *indexed*
-
-**StrategyAddedToQueue**
-
-* `strategy` : address, *indexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/yToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/yToken.md
deleted file mode 100644
index ccbc709769..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/yToken.md
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### totalSupply
-```solidity
- function totalSupply(
- ) external returns (uint256 total)
-```
-
-
-
-
-### balanceOf
-```solidity
- function balanceOf(
- ) external returns (uint256 balance)
-```
-
-
-
-
-### _transfer
-```solidity
- function _transfer(
- ) internal
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### _approve
-```solidity
- function _approve(
- ) internal
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
-### increaseAllowance
-```solidity
- function increaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### decreaseAllowance
-```solidity
- function decreaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### _permitAll
-```solidity
- function _permitAll(
- ) internal
-```
-
-
-
-
-### permitAll
-```solidity
- function permitAll(
- ) public
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### revokeAll
-```solidity
- function revokeAll(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/yWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/yWETH.md
deleted file mode 100644
index 459bc7b3f1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/smart-contracts/yWETH.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### depositETH
-```solidity
- function depositETH(
- ) public returns (uint256)
-```
-
-
-
-
-### withdrawETH
-```solidity
- function withdrawETH(
- ) external returns (uint256 withdrawn)
-```
-
-
-
-
-### receive
-```solidity
- function receive(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-api.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-api.md
deleted file mode 100644
index 71e8217fc1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-api.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Yearn API
-
-### Production Endpoint
-
-https://ydaemon.yearn.fi/1/vaults/all
-
-### API Schema
-
-| Field | Description |
-|-|-|
-| `address` | Checksummed address of the vault |
-| `inception` | The block number a vault was created at |
-| `symbol` | Vault token symbol (used primarily in metamask) |
-| `name` | Vault token name |
-| `display_name` | Vault name as displayed in UI (usually based on underlying symbol) |
-| `icon` | Vault token icon url |
-| `token` | Underlying vault token metadata |
-| `token.name` | Underlying token name |
-| `token.symbol` | Underlying token symbol |
-| `token.address` | Underlying token address |
-| `token.decimals` | Underlying token decimal amount |
-| `token.display_name` | Underlying token display name |
-| `token.icon` | Underlying token icon (usually used as vault dispaly icon) |
-| `tvl` | TVL information about a vault |
-| `tvl.total_assets` | TVL in underlying token denomination |
-| `tvl.price` | Token price in USD |
-| `tvl.tvl` | TVL in USD |
-| `apy` | Vault APY metadata |
-| `apy.type` | APY type. Options are `v2:simple`, `v2:averaged`, `v1:simple`, `crv` |
-| `apy.gross_apr` | Uncompounded gross APR before fees |
-| `apy.net_apy` | Net APY (compounded) after fees. This is what the UI shows
-| `apy.fees` | Fee structure breakdown for a vault |
-| `apy.fees.performance` | Performance fee in bips |
-| `apy.fees.withdrawal` | Withdrawal fee in bips |
-| `apy.fees.management` | Management fee in bips |
-| `apy.fees.keep_crv` | Amount of CRV to keep upon harvest for curve vaults in bips |
-| `apy.fees.cvx_keep_crv` | Amount of CRV to keep upon harvest for curve convex vaults in bips |
-| `apy.points` | APY samples for various timeframes |
-| `apy.points.week_ago` | APY calculated from one week sample of pricePerShare |
-| `apy.points.month_ago` | APY calculated from one month sample of pricePerShare |
-| `apy.points.month_ago` | APY calculated from inception block sample of pricePerShare |
-| `apy.composite` | Complex APY breakdown (for curve vaults) |
-| `apy.composite.boost` | Current boost of the strategies |
-| `apy.composite.pool_apy` | APY of the Curve LP position |
-| `apy.composite.base_apr` | Base APR of Curve emissions |
-| `apy.composite.boosted_apr` | Boosted APR of Curve emissions |
-| `apy.composite.cvx_apr` | APR of Convex rewards |
-| `apy.composite.rewards_apr` | APR of additional pool rewards |
-| `strategies` | A list of active vault strategies |
-| `strategies[idx].address` | Address of an active strategy |
-| `strategies[idx].name` | Name of an active strategy |
-| `endorsed` | True if the vault is an endorsed production vault. Do not show the vault if it's not endorsed |
-| `version` | API version of the vault |
-| `decimals` | Number of decimals for the vault token |
-| `type` | High level vault classification. Valid options are v1 and v2 |
-| `emergency_shutdown` | If true the vault is in shut down mode and no new deposits should be accepted |
-| `updated` | Unix timestamp of the last vault update |
-```
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-lens/contracts.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-lens/contracts.md
deleted file mode 100644
index 34e8038cc5..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-lens/contracts.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# Deployed Lens Contracts
-
-
-
-## Mainnet
-
-### Oracle
-
-0x83d95e0D5f402511dB06817Aff3f9eA88224B030 - Oracle
-
-### Management List
-
-0xf64e58Ee8C7BadC741A7ea98FB65488084385674 - ManagementList
-
-### Registry Adapters
-
-0x240315db938d44bb124ae619f5Fd0269A02d1271 - V2
-0xFF0bd2d0C7E9424ccB149ED3757155eEf41a793D - Iron Bank
-
-### TVL Adapters
-
-0x14d6E0908baE40A2487352B2a9Cb1A6232DA8785 - V2
-0xF4fB8903A41fC78686b26DE55502cdE42a4c6c78 - V1
-0xec7Ac8AC897f5082B2c3d4e8D2173F992A097F24 - Iron Bank
-0x1007eD6fdFAC72bbea9c719cf1Fa9C355D248691 - Earn
-0x560144C25E53149aC410E5D33BDB131e49A850e5 - veCRV
-
-#### Helpers
-
-0x5AACD0D03096039aC4381CD814637e9FB7C34a6f - Helper
-0xC3A0bEF4A47bA579Cbba510aE2c59d9b9bf9467C - UniqueAddressesHelper
-0xae813841436fe29b95a14ac701afb1502c4cb789 - Strategies helper
-0x4218E20DB87023049Fc582Aaa4bD47a3611A20Ab - AllowancesHelper
-0x957e3ae7983155a9f9e08da555b8084448be26e4 - AddressMergeHelper
-0x5d63a8584d91ebc5033d022afd6c5a7c7fddc99b - PricesHelper
-0x855ffe28019106d089bC018Df18838f8d241c402 - BalancesHelper
-
-#### Generators
-
-0xce29d34C8e88A2E1eDde10AD4eEE4f3e379fc041 - AddressesGeneratorV1Vaults
-0x437758D475F70249e03EDa6bE23684aD1FC375F0 - AddressesGeneratorV2Vaults
-0xF536399c04683D7ab0BCb1308C245b4bbb539344 - AddressesGeneratorEarn
-0xa0B57619A980DFEfD50f24F310EE1b55A40A9D46 - AddressesGeneratorIronBank
-
-#### Delegation mapping
-
-0xC01a529c01f9399c928a4aFc50E25f12D1e5b142 - DelegatedBalanceMapping
-
-#### Calculations
-
-0xE9cfF16bdac9729F18CBAC451EcCA6c50b372207 - CalculationsCurve
-0x55e9B18fefFF7E00548d54480373Fc8843De8eA4 - CalculationsIronBank
-0x88dE7d7F7b9597C86b8cD195374FbF602934F334 - CalculationsSushiswap
-0x38477F2159638956d33E18951d98238a53b9aa3C - CalculationsYearnVaults
-
-#### Registries
-
-0x62a4e0E7574E5407656A65CC8DbDf70f3C6EB04B - Earn (new)
-0x50c1a2eA0a861A967D9d0FFE2AE4012c2E053804 - V2 (existing)
-0x3eE41C098f9666ed2eA246f4D2558010e59d63A0 - V1 (existing)
-0xAB1c342C7bf5Ec5F02ADEA1c2270670bCa144CbB - IB (existing)
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-lens/yearn-lens.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-lens/yearn-lens.md
deleted file mode 100644
index 82292045b9..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-lens/yearn-lens.md
+++ /dev/null
@@ -1,945 +0,0 @@
-# Yearn Lens
-
-Yearn Lens is a series of smart contracts that aggregate and format Yearn family protocol data into standardized interfaces.
-
-## Architecture
-
-### Block Diagram
-
-
-
-### Key Concepts
-
-- Lens
- - The lens contract acts as the primary data aggregator
- - Registry adapters can be added or removed from the lens contract
- - The lens contract supports many of the same methods as the registry adapters, but returns aggregated views across asset types
-- Registry Adapters
- - The purpose of registry adapters is to read data from various registries and return data in a standardized format
- - Currently registry adapters exist for:
- - v1 Vaults
- - v2 Vaults
- - Earn
- - Iron Bank
- - veCrv
- - All registry adapters must implement a standardized set of methods (details below)
- - Registry adapters have the ability to return metadata specific to an asset type (for example for vaults: `pricePerShare`, `controller`, etc.)
-- Oracle
- - The oracle contract is responsible for fetching price information from various sources
- - The oracle is intended for non-critical offchain calculations
- - TVL calculations
- - Token and asset balance normalizations
- - Not intended to be used with strategies or other contracts
- - Prices are returned in USDC
- - Supports adding, removing and upgrading price calculations
- - Currently supported calculations:
- - Sushiswap market price (based on `getAmountsOut`)
- - Uniswap market price (based on `getAmountsOut`)
- - Sushiswap/Uniswap LP token prices (based on `getReserves`)
- - Iron Bank market price (based on `exchangeRateStored`)
- - Curve LP token price (based on `virtualPrice` and base underlying token price)
- - The oracle contract itself is very lightweight
- - A cascading fallback mechanism is utilized to fetch the most appropriate price for a given asset
- - This means the majority of logic lives on calculation contracts
- - This also means the oracle contract gets direct access to all underlying calculation contract helper methods
-
-### Key Features
-
-- Obtain all Yearn family asset data in a standardized interface
-- Obtain all user asset and token balances/allowances
- - Ability to return USDC normalized balances as well as base asset balances
-- Obtain various TVL calculations for Yearn
- - Total TVL
- - TVL per asset type
- - TVL per asset
-- Integration with all Yearn family protocols
- - v1/v2 vaults
- - Iron Bank
- - Earn
- - VeCrv (base contract and pJar)
-
-## Contracts
-
-### Registry Adapters
-
-#### Schema
-
-##### Standardized Interfaces
-
-All registry adapters are required to implement the following interfaces.
-
-###### AdapterMetadata
-
-```solidity
-struct AdapterMetadata {
- string typeId;
- string categoryId;
- string subcategoryId;
-}
-```
-
-###### Asset
-
-```solidity
-struct Asset {
- address id;
- string typeId;
- string name;
- string version;
- uint256 balance;
- uint256 balanceUsdc; // Asset TVL == balance * token.priceUsdc
- Token token;
- AssetMetadata metadata;
-}
-```
-
-###### AssetStatic (static) (not connected)
-
-```solidity
-struct AssetStatic {
- address id;
- string typeId;
- string name;
- string version;
- Token token;
-}
-```
-
-###### Token (static) (not connected)
-
-```solidity
-struct Token {
- address id;
- string name;
- string symbol;
- uint8 decimals;
-}
-```
-
-```json
-assetsStatic():
-[{
- id: "0x123...",
- typeId: "v2Vault",
- name: "YFI Vault",
- version: "0.3.2",
- tokenId: "0x234..."
- token: {
- id: "0x234...",
- name: "yearn.fi",
- symbol: "YFI",
- decimals: 18
- }
-}]
-
-```
-
-###### AssetDynamic (dynamic) (not connected)
-
-```solidity
-struct AssetDynamic {
- address assetId;
- address tokenId;
- AssetMetadata metadata;
- TokenAmount underlyingTokenBalance; // Amount of underlying token in the asset
-}
-```
-
-###### TokenAmount (dynamic)
-
-```solidity
-struct TokenAmount {
- uint256 amount;
- uint256 amountUsdc;
-}
-```
-
-```json
-assetsDynamic():
-[{
- assetId: "0x123",
- tokenId: "0x456",
- metadata: {
- pricePerShare: "101000022394340034000"
- },
- underlyingTokenBalance: {
- amount: "53233222334444334444", // vault.totalAssets()
- amountUsdc: "3422233333445"
- }
-}]
-
-```
-
-###### Position (dynamic) (connected)
-
-```solidity
-struct Position {
- address assetId;
- string typeId;
- address tokenId;
- uint256 balance; // asset.balanceOf(account) - shares owned by user
- TokenPostion underlyingTokenBalance; // Amount of underlying token in the asset that a user owns
- TokenPosition accountTokenBalance; // Amount of underlying token a user owns
- Allowance[] tokenAllowances;
- Allowance[] assetAllowances;
-}
-```
-
-```json
-positionsOf(account):
-[{
- assetId: "0x123",
- typeId: "deposit",
- tokenId: "0x545",
- balance: "105344343435553", // vault.balanceOf(account)
- underlyingTokenBalance: {
- amount: "53233222334444334444", // vault.balanceOf(account) * pricePerShare
- amountUsdc: "3422233333445"
- },
- accountTokenBalance: {
- amount: "4424424000238", // token.balanceOf(account)
- amountUsdc: "23323"
- },
- tokenAllowances: [{
- owner: "0x4800", // Account
- spender: "0x123", // Asset address
- amount: "115335543535353535235325325325235235325235425235"
- }],
- assetAllowances: [{
- owner: "0x123", // Asset address
- spender: "0x456", // Trusted migrator
- amount: "115335543535353535235325325325235235325235425235"
- }]
-}]
-```
-
-###### Position
-
-```solidity
-struct Position {
- address assetId;
- uint256 balance;
- uint256 balanceUsdc;
- TokenPosition tokenPosition;
- Allowance[] allowances;
-}
-```
-
-###### Token
-
-```solidity
-struct Token {
- address id;
- string name;
- string symbol;
- uint8 decimals;
- uint256 priceUsdc;
-}
-```
-
-###### TokenPosition
-
-```solidity
-struct TokenPosition {
- address tokenId;
- uint256 balance;
- uint256 balanceUsdc;
- Allowance[] allowances;
-}
-```
-
-```solidity
-struct Allowance {
- address owner;
- address spender;
- uint256 allowance;
-}
-```
-
-##### Adapter-specific Interfaces
-
-Each registry adapter can export asset metadata that is specific to the asset type.
-
-###### Vault
-
-```solidity
-struct AssetMetadata {
- string symbol;
- uint256 pricePerShare;
- bool migrationAvailable;
- address latestVaultAddress;
- uint256 depositLimit;
- bool emergencyShutdown;
-}
-```
-
-###### Earn
-
-`TBD`
-
-###### Iron Bank
-
-`TBD`
-
-###### veCrv
-
-`TBD`
-
-#### Methods
-
-All registry adapters are required to implement the following methods.
-
-##### registryAddress
-
-Get the registry address associated with the adapter. The adapter pulls most information from the registry. `registryAddress` is defined in the adapter consturctor.
-
-```solidity
-address public registryAddress;
-```
-
-##### assetsLength
-
-Get the number of assets the registry adapter is capable of returning.
-
-```javascript
-function assetsLength() public view returns (uint256);
-```
-
-`RETURN` Number of registry adapter assets
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-uint256 assetsLength = registryAdapter.assetsLength();
-```
-
-###### Example Response
-
-```solidity
-32
-```
-
-##### positionSpenderAddresses
-
-```solidity
-address[] public positionSpenderAddresses;
-```
-
-##### setPositionSpenderAddresses
-
-```solidity
-function setPositionSpenderAddresses(address addresses)
-```
-
-##### assetsAddresses
-
-Get a list of asset addresses from the asset adapter's associated registry.
-
-```javascript
-function assetsAddresses() public view returns (address[] memory);
-```
-
-`RETURN` Array of asset addresses
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address[] assetAddresses = registryAdapter.assetsAddresses();
-```
-
-###### Example Response
-
-```solidity
-['0xE14d13d8B3b85aF791b2AADD661cDBd5E6097Db1',
- '0xdCD90C7f6324cfa40d7169ef80b12031770B4325',
- '0x986b4AFF588a109c09B50A03f42E4110E29D353F',
- '0xcB550A6D4C8e3517A939BC79d0c7093eb7cF56B5']
-```
-
-##### assetTvl
-
-Get TVL for a specific asset (in USDC).
-
-```javascript
-function assetTvl(address assetAddress) public view returns (uint256);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address assetAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
-uint256 assetTvl = registryAdapter.assetTvl(assetAddress);
-```
-
-###### Example Response
-
-`1637032292`
-
-##### assetsTvl
-
-Get aggregated TVL for all assets in the adapter's registry.
-
-```javascript
-function assetsTvl() external view returns (uint256);
-```
-
-`RETURN` Aggregated TVL scoped to the adapter's assets in USDC
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-uint256 assetTvl = registryAdapter.assetsTvl();
-```
-
-###### Example Response
-
-`443923433354832`
-
-##### asset
-
-Get a specific asset including metadata specific to the asset type. The response extends the standardized `Asset` interface.
-
-```javascript
-function asset(address assetAddress) public view returns (Asset memory);
-```
-
-`assetAddress` The address of the asset to fetch
-`RETURN` An asset struct containing information about the asset
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address assetAddress = 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b;
-registryAdapter.asset(assetAddress);
-```
-
-###### Example Response
-
-```json
-{
- name: 'WTFTM Vault',
- id: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b,
- version: '0.3.2',
- totalAssets: 129999966466476313000000,
- totalAssetsUsdc: 14355444934422, // TVL
- metadata: {
- controller: 0x19D3364A399d251E894aC732651be8B0E4e85001,
- pricePerShare: 142004300000000000
- ...
- }
-}
-```
-
-##### assets
-
-Get all assets for a registry adapter
-
-```javascript
-function assets() external view returns (Asset[] memory);
-```
-
-`RETURN` An array of asset structs containing information about the assets
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-registryAdapter.assets();
-```
-
-###### Example Response
-
-```json
-[
- {
- name: 'WFTM Vault',
- id: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b, // vault address
- version: '0.3.2',
- totalAssets: 129999966466476313000000,
- totalAssetsUsdc: 14355444934422, // TVL
- metadata: {
- controller: 0x19D3364A399d251E894aC732651be8B0E4e85001,
- pricePerShare: 142004300000000000
- ...
- }
- },
- {
- name: 'fUSD Vault',
- id: 0x5f18C75AbDAe578b483E5F43f12a39cF75b973a9,
- version: '0.3.2',
- totalAssets: 4593326846642963130309078,
- totalAssetsUsdc: 45444930943854422, // TVL
- metadata: {
- controller: 0x19D3364A399d251E894aC732651be8B0E4e85001,
- pricePerShare: 101003300000000000
- ...
- }
- }
-]
-```
-
-##### positionOf
-
-Get the position of an account for a specific asset address.
-
-```javascript
-function positionOf(address accountAddress, address assetAddress)
- public
- view
- returns (Position memory);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address accountAddress = 0x481140F916a4e64559694DB4d56D692CadC0326c;
-address assetAddress = 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b;
-registryAdapter.positionForAsset(accountAddress, assetAddress);
-```
-
-###### Example Response
-
-```json
-{
- assetId: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b, // vault address
- depositedBalance: 10422000000000000000,
- depositedBalanceUsdc: 10422000,
- tokenBalance: 2110000000000000000,
- tokenBalanceUsdc: 2110000,
- tokenAllowance, 1157343987545498574545495749587452... // max uint256
-}
-```
-
-##### positionsOf
-
-Get all positions for an account for every adapter asset.
-
-```javascript
-function positionsOf(address accountAddress)
- external
- view
- returns (Position[] memory);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address accountAddress = 0x481140F916a4e64559694DB4d56D692CadC0326c;
-registryAdapter.positionsOf(accountAddress);
-```
-
-###### Example Response
-
-```json
-[
- {
- assetId: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b, // vault address
- depositedBalance: 10422000000000000000,
- depositedBalanceUsdc: 10422000,
- tokenBalance: 2110000000000000000,
- tokenBalanceUsdc: 2110000,
- tokenAllowance, 1157343987545498574545495749587452... // max uint256
- },
- {
- assetId: 0x19D3364A399d251E894aC732651be8B0E4e85001, // vault address
- depositedBalance: 10422000000000000000,
- depositedBalanceUsdc: 10422000,
- tokenBalance: 0,
- tokenBalanceUsdc: 0,
- tokenAllowance, 0
- }
-]
-```
-
-##### tokens
-
-Get unique tokens for the adapter.
-
-```javascript
-function tokens()
- external
- view
- returns (Token[] memory);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-registryAdapter.tokens();
-```
-
-###### Example Response
-
-```json
-[
- {
- id: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, // token address
- name: 'USD Coin',
- symbol: 'USDC',
- decimals: 18,
- priceUsdc: 100000
- },
- ...
-]
-```
-
-### Oracle
-
-#### Methods
-
-##### setCalculations
-
-Set oracle calculation contract addresses. Each calculation contract must implement getPriceUsdc(). The order of calculation contracts matters as it determines the order preference in the cascading fallback mechanism.
-
-```javascript
-function setCalculations(address[] memory calculationAddresses)
- public
- onlyManagers;
-```
-
-`calculationAddresses` An array of addresses for underlying calculation contracts
-
-##### calculations
-
-View the calculation contract addresses currently associated with the oracle.
-
-```javascript
-function calculations() external view returns (address[] memory);
-```
-
-`RETURN` An array of calculation contract addresses associated with the oracle
-
-###### Example Response
-
-```json
-[
- "0xfC714174E5c8bd056a45a5337E7b402CC4af7BF3",
- "0x55e9B18fefFF7E00548d54480373Fc8843De8eA4",
- "0x88dE7d7F7b9597C86b8cD195374FbF602934F334"
-]
-```
-
-##### getPriceUsdcRecommended
-
-Get the currently recommended price given a token address.
-
-```javascript
-function getPriceUsdcRecommended(address tokenAddress)
- public
- view
- returns (uint256);
-```
-
-`tokenAddress` The token address for which to obtain a price recommendation
-`RETURN` Recommended price in USDC (6 decimals)
-
-###### Example Response
-
-`103000`
-
-##### getNormalizedValueUsdc
-
-Calculate normalized USDC value given a token address and an amount.
-
-```javascript
-function getNormalizedValueUsdc(address tokenAddress, uint256 amount)
- external
- view
- returns (uint256);
-```
-
-`tokenAddress` The token address
-`amount` The amount of value to convert (in token decimals)
-`RETURN` Recommended price in USDC (6 decimals)
-
-###### Example Response
-
-`3442238822`
-
-##### tokenAliases
-
-Given a token address fetch a token alias address. This is necessary for certain wrapped or special case tokens that do not have a token price available in the oracle.
-
-```solidity
-mapping(address => address) public tokenAliases;
-```
-
-##### addTokenAlias
-
-Add a new token alias mapping.
-
-```solidity
-function addTokenAlias(address tokenAddress, address tokenAliasAddress)
- public
- onlyManagers;
-```
-
-`tokenAddress` The token address that will receive an alias
-`tokenAliasAddress` The new token alias address
-
-##### addTokenAliases
-
-Batch add new token alias mappingings.
-
-```solidity
- function addTokenAliases(TokenAlias[] memory tokenAliases)
- public
- onlyManagers
-```
-
-`tokenAliases` An array of `TokenAlias` structs (`[[tokenAddress, tokenAliasAddress]]`)
-
-##### removeTokenAlias
-
-Remove a token alias mapping.
-
-```solidity
-function addTokenAlias(address tokenAddress, address tokenAliasAddress)
- public
- onlyManagers;
-```
-
-`tokenAddress` The token address whose alias will be removed
-
-### Calculation
-
-#### Standardized methods
-
-All calculation contracts must implement the following methods.
-
-##### getPriceUsdc
-
-Fetch the recommended price given a token address. Reverts if no relevant price is found.
-
-```javascript
-function getPriceUsdc(address tokenAddress) public view returns (uint256)
-```
-
-###### Example Response
-
-`103000`
-
-#### Calculation specific methods
-
-Helper utilities for various calculations. These methods are indirectly exposed to the oracle via the oracle's cascading fallback mechanism. All of these methods can be called via the oracle contract by generating a custom ABI with the desired methods. Since these helper methods do not represent the primary use case of the oracle contract (the primary use case is fetching price) determining the details of each method implementation is left to the user.
-
-##### Sushiswap
-
-```javascript
-function getPriceFromRouter(address token0Address, address token1Address)
- public
- view
- returns (uint256);
-
-function getPriceFromRouterUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-
-function isLpToken(address tokenAddress) public view returns (bool);
-
-function getRouterForLpToken(address tokenAddress)
- public
- view
- returns (PriceRouter);
-
-function getLpTokenTotalLiquidityUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-
-function getLpTokenPriceUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-```
-
-##### Curve
-
-```javascript
-function getBasePrice(address curveLpTokenAddress)
- public
- view
- returns (uint256);
-
-function getVirtualPrice(address curveLpTokenAddress)
- public
- view
- returns (uint256);
-
-function isCurveLpToken(address tokenAddress) public view returns (bool);
-
-function getFirstUnderlyingCoinFromPool(address poolAddress)
- public
- view
- returns (address);
-function getCurvePriceUsdc(address curveLpTokenAddress)
- public
- view
- returns (uint256);
-```
-
-##### IronBank
-
-```javascript
-function isIronBankMarket(address tokenAddress) public view returns (bool);
-
-function getIronBankMarkets() public view returns (address[] memory);
-
-function getIronBankMarketPriceUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-```
-
-### Lens
-
-#### Methods
-
-##### addAdapter
-
-Add a registry adapter. The registry adapter must conform to the standardized registry adapter interface.
-
-```javascript
-function addAdapter(address adapterAddress) public onlyManager;
-```
-
-`adapterAddress` Address of the adapter to add
-
-###### Solidity
-
-```solidity
-Lens lens = Lens(0x9b8b9F6146B29CC32208f42b995E70F0Eb2807F3);
-address adapterAddress = 0xe11ba472F74869176652C35D30dB89854b5ae84D;
-lens.addAdapter(adapterAddress);
-```
-
-##### removeAdapter
-
-Remove a registry adapter.
-
-```javascript
-function removeAdapter(address adapterAddress) public onlyManager;
-```
-
-`adapterAddress` Address of the adapter to remove
-
-###### Solidity
-
-```solidity
-Lens lens = Lens(0x9b8b9F6146B29CC32208f42b995E70F0Eb2807F3);
-address adapterAddress = 0xe11ba472F74869176652C35D30dB89854b5ae84D;
-lens.removeAdapter(adapterAddress);
-```
-
-##### adapters
-
-Fetch a list of registry adapter addresses.
-
-```javascript
-function adapters() external view returns (address[] memory);
-```
-
-###### Solidity
-
-```javascript
-Lens lens = Lens(0x9b8b9F6146B29CC32208f42b995E70F0Eb2807F3);
-address[] memory = lens.adapters();
-```
-
-###### Example Response
-
-```solidity
-['0xE14d13d8B3b85aF791b2AADD661cDBd5E6097Db1',
- '0xdCD90C7f6324cfa40d7169ef80b12031770B4325',
- '0x986b4AFF588a109c09B50A03f42E4110E29D353F',
- '0xcB550A6D4C8e3517A939BC79d0c7093eb7cF56B5']
-```
-
-##### assetsFromAdapter
-
-```javascript
-function assetsFromAdapter(RegistryAdapter registryAdapterAddress)
- external
- view
- returns (RegistryAdapter.Asset[] memory)
-```
-
-See: [registryAdapter.assets](#assets)
-
-##### assets
-
-Fetch all assets for all supported protocols.
-
-```javascript
-function assets()
- external
- view
- returns (RegistryAdapter.Asset[] memory)
-```
-
-See: [registryAdapter.assets](#assets)
-
-##### positionsFromAdapter
-
-Fetch positions for an account for a specific adapter.
-
-```javascript
-function positionsFromAdapter(
- address account,
- RegistryAdapter registryAdapterAddress
- ) external view returns (RegistryAdapter.Position[] memory)
-```
-
-See: [registryAdapter.positionsOf](#positionsof)
-
-##### positionsOf
-
-Fetch all positions for an account within the ecosystem.
-
-```javascript
-function positionsOf(address account)
- external
- view
- returns (RegistryAdapter.Position[] memory)
-```
-
-See: [registryAdapter.positionsOf](#positionsof)
-
-##### assetsLength
-
-```javascript
-function assetsLength() public view returns (uint256);
-```
-
-Get the total number of assets for all Yearn family protocols
-See: [registryAdapter.assetsLength](#assetslength)
-
-##### assetsAddresses
-
-```javascript
-function assetsAddresses() public view returns (address[] memory);
-```
-
-Get all addresses for all Yearn family assets
-See: [registryAdapter.assetsAddresses](#assetsaddresses)
-
-##### allowances
-
-Batch fetch allowances given an owner, tokens and spender. This is a helper utility for fetching large amounts of token allowances for a specific set of contracts
-
-```solidity
- function allowances(
- address owner,
- address[] memory tokens,
- address[] memory spenders
- ) external view returns (uint256[] memory)
-```
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-sdk/yearn-stack.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-sdk/yearn-stack.md
deleted file mode 100644
index 63cbc0b1be..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.2/yearn-sdk/yearn-stack.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# Yearn Stack + FE Features
-
-Yearn SDK integrates several components, both onchain and offchain.
-
-## Backend stack
-
-
-
-### Onchain
-
-- 🔍 Yearn Lens
- - Oracle
- - Helpers
- - Adapters
- - Vaults V1
- - Vaults V2
- - Iron Bank
-
-### On IPFS
-
-- Yearn Metadata is a lightweight storage for all the stuff that would have been hardcoded in v2 frontend, including but not limited to:
- - custom messages for deposits / withdrawals
- - custom copywriting for special assets
- - strategy descriptions / diagrams
- - disabling asset interactions
-- Yearn Frontend
-
-### Offchain
-
-- Yearn Exporter: stores (and displays) stats about yearn assets, exposing:
- - historical TVL
- - historical APY
-- Yearn Subgraph: stores all historical data for users
-- Zapper Integration
-
-## Backend features
-
-### Resilience powered by onchain data and IPFS storage
-
-- Critical data (assets, positions, vault deprecations) will be fetched exclusively from the chain / IPFS
- - maximizing uptime
- - reducing reliance on other services
-- Historical TVL, historical APY and other non critical data will be stored offchain and fetched dinamically.
-
-#### Onchain assets and positions
-
-- Lens does what the old offchain API does, but directly onchain. This will speed up the fetching time and greatly reduce our reliance on scheduled jobs in servers.
-
-#### IPFS CI/CD for frontend and metadata
-
-- Frontend and hardcoded values will be stored in IPFS utilizing a similar system to the one [introduced](https://uniswap.org/blog/ipfs-uniswap-interface/) by Uniswap.
-
-### Historical APY and TVL
-
-- Yearn Exporter provides a simple backend solution for storing real-time stats from yearn products.
-- Metrics are stored in a timeseries database and will be exposed by an api, accessible by SDK and third-party.
-
-### SDK, aggregator of many datasources
-
-- SDK will provide a simple interface for all integrators, including ourselves.
-- Read methods will seamlessly integrate with all datasources, while keeping coherent datastructures.
-- Write methods talk directly to assets onchain. Execution of write transactions will trigger refresh events so data freshness of frontend (or other integration platforms) will still be preserved.
-
-### Historical User Earnings
-
-- Yearn Subgraph leverages thegraph to store historical user data that can be aggregated to display historical earnings.
-
-### Metadata
-
-- New way to store all the information that would generally be hard coded directly in the frontend.
-- Data is now encoded in predefined schemas that are checked at every change.
-
-#### Strategy descriptions
-
-We can store Strategy information directly on IPFS so they can be then be queried and rendered the frontend.
-
-Example: [Idle Finance Reinvest](https://meta.yearn.network/strategies/1/0x01b54c320d6B3057377cbc71d953d1BBa84df44e)
-
-```json
-{
- "$schema":"strategy",
- "name":"Idle Finance Reinvest",
- "description":"Supplies {{token}} to [Idle Finance](https://idle.finance) to earn IDLE and COMP. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.",
- "protocols":["IdleFinance"]
-}
-```
-
-#### Assets management
-
-We can store Asset informations so in critical situations we can toggle interactions and add custom messages.
-
-Example: [Curve EURS](https://meta.yearn.network/vaults/1/0x25212Df29073FfFA7A67399AcEfC2dd75a831A1A)
-
-```json
-{
- "$schema": "vault",
- "comment": "Curve EURS",
- "hideAlways": false,
- "depositsDisabled": false,
- "withdrawalsDisabled": false,
- "order": 18,
- "migrationAvailable": false,
- "allowZapIn": true,
- "allowZapOut": true,
- "retired": false,
- "displayName": "Curve EURS"
-}
-```
\ No newline at end of file
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseStrategy.md
deleted file mode 100644
index b7d8e2a7fa..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseStrategy.md
+++ /dev/null
@@ -1,722 +0,0 @@
-
-
-
-
-## Functions
-### apiVersion
-```solidity
- function apiVersion(
- ) public returns (string)
-```
-
- Used to track which version of `StrategyAPI` this Strategy
- implements.
-
-The Strategy's version must match the Vault's `API_VERSION`.
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`A`| | string which holds the current API version of this contract.
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-This Strategy's name.
-@dev
- You can use this field to manage the "version" of this Strategy, e.g.
- `StrategySomethingOrOtherV1`. However, "API Version" is managed by
- `apiVersion()` function above.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`This`| | Strategy's name.
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
- The amount (priced in want) of the total assets managed by this strategy should not count
- towards Yearn's TVL calculations.
-@dev
- You can override this field to set it to a non-zero value if some of the assets of this
- Strategy is somehow delegated inside another part of Yearn's ecosystem e.g. another Vault.
- Note that this value must be strictly less than or equal to the amount provided by
- `estimatedTotalAssets()` below, as the TVL calc will be total assets minus delegated assets.
- Also note that this value is used to determine the total assets under management by this
- strategy, for the purposes of computing the management fee in `Vault`
-@return
- The amount of assets this strategy manages that should not be included in Yearn's Total Value
- Locked (TVL) calculation across it's ecosystem.
-
-
-
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _initialize
-```solidity
- function _initialize(
- address _vault,
- address _strategist,
- address _rewards,
- address _keeper
- ) internal
-```
-
- Initializes the Strategy, this is called only once, when the
- contract is deployed.
-
-`_vault` should implement `VaultAPI`.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_vault` | address | The address of the Vault responsible for this Strategy.
-|`_strategist` | address | The address to assign as `strategist`.
-The strategist is able to change the reward address
-|`_rewards` | address | The address to use for pulling rewards.
-|`_keeper` | address | The address of the _keeper. _keeper
-can harvest and tend a strategy.
-
-### setStrategist
-```solidity
- function setStrategist(
- address _strategist
- ) external
-```
-
- Used to change `strategist`.
-
- This may only be called by governance or the existing strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_strategist` | address | The new address to assign as `strategist`.
-
-### setKeeper
-```solidity
- function setKeeper(
- address _keeper
- ) external
-```
-
- Used to change `keeper`.
-
- `keeper` is the only address that may call `tend()` or `harvest()`,
- other than `governance()` or `strategist`. However, unlike
- `governance()` or `strategist`, `keeper` may *only* call `tend()`
- and `harvest()`, and no other authorized functions, following the
- principle of least privilege.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_keeper` | address | The new address to assign as `keeper`.
-
-### setRewards
-```solidity
- function setRewards(
- address _rewards
- ) external
-```
-
- Used to change `rewards`. EOA or smart contract which has the permission
- to pull rewards from the vault.
-
- This may only be called by the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_rewards` | address | The address to use for pulling rewards.
-
-### setMinReportDelay
-```solidity
- function setMinReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `minReportDelay`. `minReportDelay` is the minimum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the minimum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The minimum number of seconds to wait between harvests.
-
-### setMaxReportDelay
-```solidity
- function setMaxReportDelay(
- uint256 _delay
- ) external
-```
-
- Used to change `maxReportDelay`. `maxReportDelay` is the maximum number
- of blocks that should pass for `harvest()` to be called.
-
- For external keepers (such as the Keep3r network), this is the maximum
- time between jobs to wait. (see `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_delay` | uint256 | The maximum number of seconds to wait between harvests.
-
-### setProfitFactor
-```solidity
- function setProfitFactor(
- uint256 _profitFactor
- ) external
-```
-
- Used to change `profitFactor`. `profitFactor` is used to determine
- if it's worthwhile to harvest, given gas costs. (See `harvestTrigger()`
- for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_profitFactor` | uint256 | A ratio to multiply anticipated
-`harvest()` gas cost against.
-
-### setDebtThreshold
-```solidity
- function setDebtThreshold(
- uint256 _debtThreshold
- ) external
-```
-
- Sets how far the Strategy can go into loss without a harvest and report
- being required.
-
- By default this is 0, meaning any losses would cause a harvest which
- will subsequently report the loss to the Vault for tracking. (See
- `harvestTrigger()` for more details.)
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_debtThreshold` | uint256 | How big of a loss this Strategy may carry without
-being required to report to the Vault.
-
-### setMetadataURI
-```solidity
- function setMetadataURI(
- string _metadataURI
- ) external
-```
-
- Used to change `metadataURI`. `metadataURI` is used to store the URI
-of the file describing the strategy.
-
- This may only be called by governance or the strategist.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_metadataURI` | string | The URI that describe the strategy.
-
-### governance
-```solidity
- function governance(
- ) internal returns (address)
-```
-Resolve governance address from Vault contract, used to make assertions
-on protected functions in the Strategy.
-
-
-
-### ethToWant
-```solidity
- function ethToWant(
- uint256 _amtInWei
- ) public returns (uint256)
-```
-
- Provide an accurate conversion from `_amtInWei` (denominated in wei)
- to `want` (using the native decimal characteristics of `want`).
-@dev
- Care must be taken when working with decimals to assure that the conversion
- is compatible. As an example:
-
- given 1e17 wei (0.1 ETH) as input, and want is USDC (6 decimals),
- with USDC/ETH = 1800, this should give back 1800000000 (180 USDC)
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amtInWei` | uint256 | The amount (in wei/1e-18 ETH) to convert to `want`
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| uint256 | amount in `want` of `_amtInEth` converted to `want`
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
- Provide an accurate estimate for the total amount of assets
- (principle + return) that this Strategy is currently managing,
- denominated in terms of `want` tokens.
-
- This total should be "realizable" e.g. the total value that could
- *actually* be obtained from this Strategy if it were to divest its
- entire position based on current onchain conditions.
-@dev
- Care must be taken in using this function, since it relies on external
- systems, which could be manipulated by the attacker to give an inflated
- (or reduced) value produced by this function, based on current onchain
- conditions (e.g. this function is possible to influence through
- flashloan attacks, oracle manipulations, or other DeFi attack
- mechanisms).
-
- It is up to governance to use this function to correctly order this
- Strategy relative to its peers in the withdrawal queue to minimize
- losses for the Vault based on sudden withdrawals. This value should be
- higher than the total debt of the Strategy and higher than its expected
- value to be "safe".
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`The`| | estimated total assets in this Strategy.
-### isActive
-```solidity
- function isActive(
- ) public returns (bool)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-Perform any Strategy unwinding or other calls necessary to capture the
-"free return" this Strategy has generated since the last time its core
-position(s) were adjusted. Examples include unwrapping extra rewards.
-This call is only used during "normal operation" of a Strategy, and
-should be optimized to minimize losses as much as possible.
-
-This method returns any realized profits and/or realized losses
-incurred, and should return the total amounts of profits/losses/debt
-payments (in `want` tokens) for the Vault's accounting (e.g.
-`want.balanceOf(this) >= _debtPayment + _profit`).
-
-`_debtOutstanding` will be 0 if the Strategy is not past the configured
-debt limit, otherwise its value will be how far past the debt limit
-the Strategy is. The Strategy's debt limit is configured in the Vault.
-
-NOTE: `_debtPayment` should be less than or equal to `_debtOutstanding`.
- It is okay for it to be less than `_debtOutstanding`, as that
- should only used as a guide for how much is left to pay back.
- Payments should be made to minimize loss from slippage, debt,
- withdrawal fees, etc.
-
-See `vault.debtOutstanding()`.
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-Perform any adjustments to the core position(s) of this Strategy given
-what change the Vault made in the "investable capital" available to the
-Strategy. Note that all "free capital" in the Strategy after the report
-was made is available for reinvestment. Also note that this number
-could be 0, and you should handle that scenario accordingly.
-
-See comments regarding `_debtOutstanding` on `prepareReturn()`.
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-Liquidate up to `_amountNeeded` of `want` of this strategy's positions,
-irregardless of slippage. Any excess will be re-invested with `adjustPosition()`.
-This function should return the amount of `want` tokens made available by the
-liquidation. If there is a difference between them, `_loss` indicates whether the
-difference is due to a realized loss, or if there is some other sitution at play
-(e.g. locked funds) where the amount made available is less than what is needed.
-
-NOTE: The invariant `_liquidatedAmount + _loss <= _amountNeeded` should always be maintained
-
-
-
-### liquidateAllPositions
-```solidity
- function liquidateAllPositions(
- ) internal returns (uint256 _amountFreed)
-```
-Liquidate everything and returns the amount that got freed.
-This function is used during emergency exit instead of `prepareReturn()` to
-liquidate all of the Strategy's positions back to the Vault.
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- uint256 callCostInWei
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `tend()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `tend()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `tend()` is not called
- shortly, then this can return `true` even if the keeper might be
- "at a loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCostInWei` must be priced in terms of `wei` (1e-18 ETH).
-
- This call and `harvestTrigger()` should never return `true` at the same
- time.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCostInWei` | uint256 | The keeper's estimated gas cost to call `tend()` (in wei).
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `tend()` should be called, `false` otherwise.
-### tend
-```solidity
- function tend(
- ) external
-```
-
- Adjust the Strategy's position. The purpose of tending isn't to
- realize gains, but to maximize yield by reinvesting any returns.
-
- See comments on `adjustPosition()`.
-
- This may only be called by governance, the strategist, or the keeper.
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- uint256 callCostInWei
- ) public returns (bool)
-```
-
- Provide a signal to the keeper that `harvest()` should be called. The
- keeper will provide the estimated gas cost that they would pay to call
- `harvest()`, and this function should use that estimate to make a
- determination if calling it is "worth it" for the keeper. This is not
- the only consideration into issuing this trigger, for example if the
- position would be negatively affected if `harvest()` is not called
- shortly, then this can return `true` even if the keeper might be "at a
- loss" (keepers are always reimbursed by Yearn).
-@dev
- `callCostInWei` must be priced in terms of `wei` (1e-18 ETH).
-
- This call and `tendTrigger` should never return `true` at the
- same time.
-
- See `min/maxReportDelay`, `profitFactor`, `debtThreshold` to adjust the
- strategist-controlled parameters that will influence whether this call
- returns `true` or not. These parameters will be used in conjunction
- with the parameters reported to the Vault (see `params`) to determine
- if calling `harvest()` is merited.
-
- It is expected that an external system will check `harvestTrigger()`.
- This could be a script run off a desktop or cloud bot (e.g.
- https://github.com/iearn-finance/yearn-vaults/blob/master/scripts/keep.py),
- or via an integration with the Keep3r network (e.g.
- https://github.com/Macarse/GenericKeep3rV2/blob/master/contracts/keep3r/GenericKeep3rV2.sol).
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`callCostInWei` | uint256 | The keeper's estimated gas cost to call `harvest()` (in wei).
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`if`| uint256 | `harvest()` should be called, `false` otherwise.
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
- Harvests the Strategy, recognizing any profits or losses and adjusting
- the Strategy's position.
-
- In the rare case the Strategy is in emergency shutdown, this will exit
- the Strategy's position.
-
- This may only be called by governance, the strategist, or the keeper.
-@dev
- When `harvest()` is called, the Strategy reports to the Vault (via
- `vault.report()`), so in some cases `harvest()` must be called in order
- to take in profits, to borrow newly available funds from the Vault, or
- otherwise adjust its position. In other cases `harvest()` must be
- called to report to the Vault on the Strategy's position, especially if
- any losses have occurred.
-
-
-
-### withdraw
-```solidity
- function withdraw(
- uint256 _amountNeeded
- ) external returns (uint256 _loss)
-```
-
- Withdraws `_amountNeeded` to `vault`.
-
- This may only be called by the Vault.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_amountNeeded` | uint256 | How much `want` to withdraw.
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`_loss`| uint256 | Any realized losses
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-Do anything necessary to prepare this Strategy for migration, such as
-transferring any reserve or LP tokens, CDPs, or other tokens or stores of
-value.
-
-
-
-### migrate
-```solidity
- function migrate(
- address _newStrategy
- ) external
-```
-
- Transfers all `want` from this Strategy to `_newStrategy`.
-
- This may only be called by the Vault.
-@dev
-The new Strategy's Vault must be the same as this Strategy's Vault.
- The migration process should be carefully performed to make sure all
-the assets are migrated to the new address, which should have never
-interacted with the vault before.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_newStrategy` | address | The Strategy to migrate to.
-
-### setEmergencyExit
-```solidity
- function setEmergencyExit(
- ) external
-```
-
- Activates emergency exit. Once activated, the Strategy will exit its
- position upon the next harvest, depositing all funds into the Vault as
- quickly as is reasonable given onchain conditions.
-
- This may only be called by governance or the strategist.
-@dev
- See `vault.setEmergencyShutdown()` and `harvest()` for further details.
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-Override this to add all tokens/tokenized positions this contract
-manages on a *persistent* basis (e.g. not just for swapping back to
-want ephemerally).
-
-NOTE: Do *not* include `want`, already included in `sweep` below.
-
-Example:
-```
- function protectedTokens() internal override view returns (address[] memory) {
- address[] memory protected = new address[](3);
- protected[0] = tokenA;
- protected[1] = tokenB;
- protected[2] = tokenC;
- return protected;
- }
-```
-
-
-
-### sweep
-```solidity
- function sweep(
- address _token
- ) external
-```
-
- Removes tokens from this Strategy that are not the type of tokens
- managed by this Strategy. This may be used in case of accidentally
- sending the wrong kind of token to this Strategy.
-
- Tokens will be sent to `governance()`.
-
- This will fail if an attempt is made to sweep `want`, or any tokens
- that are protected by this Strategy.
-
- This may only be called by governance.
-@dev
- Implement `protectedTokens()` to specify any additional tokens that
- should be protected from sweeping in addition to `want`.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_token` | address | The token to transfer out of this vault.
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
-### UpdatedStrategist
-```solidity
- event UpdatedStrategist(
- )
-```
-
-
-
-### UpdatedKeeper
-```solidity
- event UpdatedKeeper(
- )
-```
-
-
-
-### UpdatedRewards
-```solidity
- event UpdatedRewards(
- )
-```
-
-
-
-### UpdatedMinReportDelay
-```solidity
- event UpdatedMinReportDelay(
- )
-```
-
-
-
-### UpdatedMaxReportDelay
-```solidity
- event UpdatedMaxReportDelay(
- )
-```
-
-
-
-### UpdatedProfitFactor
-```solidity
- event UpdatedProfitFactor(
- )
-```
-
-
-
-### UpdatedDebtThreshold
-```solidity
- event UpdatedDebtThreshold(
- )
-```
-
-
-
-### EmergencyExitEnabled
-```solidity
- event EmergencyExitEnabled(
- )
-```
-
-
-
-### UpdatedMetadataURI
-```solidity
- event UpdatedMetadataURI(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseStrategyInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseStrategyInitializable.md
deleted file mode 100644
index 90b02232d3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseStrategyInitializable.md
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### initialize
-```solidity
- function initialize(
- ) external
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address)
-```
-
-
-
-
-### clone
-```solidity
- function clone(
- ) external returns (address newStrategy)
-```
-
-
-
-
-## Events
-### Cloned
-```solidity
- event Cloned(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseWrapper.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseWrapper.md
deleted file mode 100644
index 4444480a8c..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/BaseWrapper.md
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### setRegistry
-```solidity
- function setRegistry(
- address _registry
- ) external
-```
-
- Used to update the yearn registry.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_registry` | address | The new _registry address.
-
-### bestVault
-```solidity
- function bestVault(
- ) public returns (contract VaultAPI)
-```
-
- Used to get the most revent vault for the token using the registry.
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`An`| | instance of a VaultAPI
-### allVaults
-```solidity
- function allVaults(
- ) public returns (contract VaultAPI[])
-```
-
- Used to get all vaults from the registery for the token
-
-
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`An`| | array containing instances of VaultAPI
-### _updateVaultCache
-```solidity
- function _updateVaultCache(
- ) internal
-```
-
-
-
-
-### totalVaultBalance
-```solidity
- function totalVaultBalance(
- ) public returns (uint256 balance)
-```
-
- Used to get the balance of an account accross all the vaults for a token.
- @dev will be used to get the wrapper balance using totalVaultBalance(address(this)).
- @param account The address of the account.
- @return balance of token for the account accross all the vaults.
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) public returns (uint256 assets)
-```
-
- Used to get the TVL on the underlying vaults.
- @return assets the sum of all the assets managed by the underlying vaults.
-
-
-
-### _deposit
-```solidity
- function _deposit(
- ) internal returns (uint256 deposited)
-```
-
-
-
-
-### _withdraw
-```solidity
- function _withdraw(
- ) internal returns (uint256 withdrawn)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256)
-```
-
-
-
-
-### _migrate
-```solidity
- function _migrate(
- ) internal returns (uint256 migrated)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/IERC20Metadata.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/IERC20Metadata.md
deleted file mode 100644
index 8e3ce73feb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/IERC20Metadata.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-Returns the name of the token.
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-Returns the symbol of the token.
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint8)
-```
-
-Returns the decimals places of the token.
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/IWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/IWETH.md
deleted file mode 100644
index 383b7b45bb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/IWETH.md
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-## Functions
-### deposit
-```solidity
- function deposit(
- ) external
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/RegistryAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/RegistryAPI.md
deleted file mode 100644
index 1d3ea44db3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/RegistryAPI.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-
-
-
-
-### latestVault
-```solidity
- function latestVault(
- ) external returns (address)
-```
-
-
-
-
-### numVaults
-```solidity
- function numVaults(
- ) external returns (uint256)
-```
-
-
-
-
-### vaults
-```solidity
- function vaults(
- ) external returns (address)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/StrategyAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/StrategyAPI.md
deleted file mode 100644
index 3ac6fbf6eb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/StrategyAPI.md
+++ /dev/null
@@ -1,122 +0,0 @@
-
-This interface is here for the keeper bot to use.
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### vault
-```solidity
- function vault(
- ) external returns (address)
-```
-
-
-
-
-### want
-```solidity
- function want(
- ) external returns (address)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### keeper
-```solidity
- function keeper(
- ) external returns (address)
-```
-
-
-
-
-### isActive
-```solidity
- function isActive(
- ) external returns (bool)
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### tendTrigger
-```solidity
- function tendTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### tend
-```solidity
- function tend(
- ) external
-```
-
-
-
-
-### harvestTrigger
-```solidity
- function harvestTrigger(
- ) external returns (bool)
-```
-
-
-
-
-### harvest
-```solidity
- function harvest(
- ) external
-```
-
-
-
-
-## Events
-### Harvested
-```solidity
- event Harvested(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/VaultAPI.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/VaultAPI.md
deleted file mode 100644
index 4c99deda19..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/VaultAPI.md
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-## Functions
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### apiVersion
-```solidity
- function apiVersion(
- ) external returns (string)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- ) external returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### token
-```solidity
- function token(
- ) external returns (address)
-```
-
-
-
-
-### strategies
-```solidity
- function strategies(
- ) external returns (struct StrategyParams)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### totalAssets
-```solidity
- function totalAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### depositLimit
-```solidity
- function depositLimit(
- ) external returns (uint256)
-```
-
-
-
-
-### maxAvailableShares
-```solidity
- function maxAvailableShares(
- ) external returns (uint256)
-```
-
-
-
-
-### creditAvailable
-```solidity
- function creditAvailable(
- ) external returns (uint256)
-```
-View how much the Vault would increase this Strategy's borrow limit,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### debtOutstanding
-```solidity
- function debtOutstanding(
- ) external returns (uint256)
-```
-View how much the Vault would like to pull back from the Strategy,
-based on its present performance (since its last report). Can be used to
-determine expectedReturn in your Strategy.
-
-
-
-### expectedReturn
-```solidity
- function expectedReturn(
- ) external returns (uint256)
-```
-View how much the Vault expect this Strategy to return at the current
-block, based on its present performance (since its last report). Can be
-used to determine expectedReturn in your Strategy.
-
-
-
-### report
-```solidity
- function report(
- ) external returns (uint256)
-```
-This is the main contact point where the Strategy interacts with the
-Vault. It is critical that this call is handled as intended by the
-Strategy. Therefore, this function will be called by BaseStrategy to
-make sure the integration is correct.
-
-
-
-### revokeStrategy
-```solidity
- function revokeStrategy(
- ) external
-```
-This function should only be used in the scenario where the Strategy is
-being retired but no migration of the positions are possible, or in the
-extreme scenario that the Strategy needs to be put into "Emergency Exit"
-mode in order for it to exit as quickly as possible. The latter scenario
-could be for any reason that is considered "critical" that the Strategy
-exits its position as fast as possible, such as a sudden change in
-market conditions leading to losses, or an imminent failure in an
-external dependency.
-
-
-
-### governance
-```solidity
- function governance(
- ) external returns (address)
-```
-View the governance address of the Vault to assert privileged functions
-can only be called by governance. The Strategy serves the Vault, so it
-is subject to governance defined by the Vault.
-
-
-
-### management
-```solidity
- function management(
- ) external returns (address)
-```
-View the management address of the Vault to assert privileged functions
-can only be called by management. The Strategy serves the Vault, so it
-is subject to management defined by the Vault.
-
-
-
-### guardian
-```solidity
- function guardian(
- ) external returns (address)
-```
-View the guardian address of the Vault to assert privileged functions
-can only be called by guardian. The Strategy serves the Vault, so it
-is subject to guardian defined by the Vault.
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/registry.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/registry.md
deleted file mode 100644
index 4cf44c7835..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/registry.md
+++ /dev/null
@@ -1,411 +0,0 @@
-# Registry.vy
-
-
-
-
-
-
-
-## Functions
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Starts the 1st phase of the governance transfer.
-
-
-*Throws if the caller is not current governance.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The next governance address * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Completes the 2nd phase of the governance transfer.
-
-
-*Throws if the caller is not the pending caller. Emits a `NewGovernance` event.*
-
-
-
-
-
-
-
-### latestRelease
-```solidity
-function latestRelease()
-```
-
-
-Returns the api version of the latest release.
-
-
-*Throws if no releases are registered yet.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The api version of the latest release. * |
-
-
-
-
-
-
-### latestVault
-```solidity
-function latestVault(address)
-```
-
-
-Returns the latest deployed vault for the given token.
-
-
-*Throws if no vaults are endorsed yet for the given token.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token address to find the latest vault for. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the latest vault for the given token. * |
-
-
-
-
-
-
-### newRelease
-```solidity
-function newRelease(address)
-```
-
-
-Add a previously deployed Vault as the template contract for the latest release, to be used by further "forwarder-style" delegatecall proxy contracts that can be deployed from the registry throw other methods (to save gas).
-
-
-*Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if the api version is the same as the previous release. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be used as the template contract for the next release. * |
-
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Also adds the new vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newVault
-```solidity
-function newVault(address,address,address,string,string,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if no releases are registered yet. Throws if there already is a registered vault for the given token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string)
-```
-
-
-Create a new vault for the given token using the latest release in the registry, as a simple "forwarder-style" delegatecall proxy to the latest release. Does not add the new vault to the list of "endorsed" vaults for that token.
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### newExperimentalVault
-```solidity
-function newExperimentalVault(address,address,address,address,string,string,uint256)
-```
-
-
-
-*Throws if no releases are registered yet. Emits a `NewExperimentalVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into the new Vault. * |
-| * governance * | * * | * The address authorized for governance interactions in the new Vault. * |
-| * guardian * | * * | * The address authorized for guardian interactions in the new Vault. * |
-| * rewards * | * * | * The address to use for collecting rewards in the new Vault * |
-| * name * | * * | * Specify a custom Vault name. Set to empty string for default choice. * |
-| * symbol * | * * | * Specify a custom Vault symbol name. Set to empty string for default choice. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The address of the newly-deployed vault * |
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address)
-```
-
-
-Adds an existing vault to the list of "endorsed" vaults for that token.
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### endorseVault
-```solidity
-function endorseVault(address,uint256)
-```
-
-
-
-*`governance` is set in the new vault as `self.governance`, with no ability to override. Throws if caller isn't `self.governance`. Throws if `vault`'s governance isn't `self.governance`. Throws if no releases are registered yet. Throws if `vault`'s api version does not match latest release. Throws if there already is a deployment for the vault's token with the latest api version. Emits a `NewVault` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The vault that will be endorsed by the Registry. * |
-| * releaseDelta * | * * | * Specify the number of releases prior to the latest to use as a target. Default is latest. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address)
-```
-
-
-Set the ability of a particular tagger to tag current vaults.
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### setBanksy
-```solidity
-function setBanksy(address,bool)
-```
-
-
-
-*Throws if caller is not `self.governance`.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * tagger * | * * | * The address to approve or deny access to tagging. * |
-| * allowed * | * * | * Whether to approve or deny `tagger`. Defaults to approve. * |
-
-
-
-
-
-
-
-### tagVault
-```solidity
-function tagVault(address,string)
-```
-
-
-Tag a Vault with a message.
-
-
-*Throws if caller is not `self.governance` or an approved tagger. Emits a `VaultTagged` event.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * vault * | * * | * The address to tag with the given `tag` message. * |
-| * tag * | * * | * The message to tag `vault` with. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**NewRelease**
-
-* `release_id` : uint256, *indexed*
-* `template` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewVault**
-
-* `token` : address, *indexed*
-* `vault_id` : uint256, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewExperimentalVault**
-
-* `token` : address, *indexed*
-* `deployer` : address, *indexed*
-* `vault` : address, *notIndexed*
-* `api_version` : string, *notIndexed*
-
-**NewGovernance**
-
-* `governance` : address, *notIndexed*
-
-**VaultTagged**
-
-* `vault` : address, *notIndexed*
-* `tag` : string, *notIndexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/AffiliateToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/AffiliateToken.md
deleted file mode 100644
index 32acd0b430..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/AffiliateToken.md
+++ /dev/null
@@ -1,157 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _getChainId
-```solidity
- function _getChainId(
- ) internal returns (uint256)
-```
-
-
-
-
-### setAffiliate
-```solidity
- function setAffiliate(
- ) external
-```
-
-
-
-
-### acceptAffiliate
-```solidity
- function acceptAffiliate(
- ) external
-```
-
-
-
-
-### _shareValue
-```solidity
- function _shareValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### pricePerShare
-```solidity
- function pricePerShare(
- ) external returns (uint256)
-```
-
-
-
-
-### _sharesForValue
-```solidity
- function _sharesForValue(
- ) internal returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) public returns (uint256 deposited)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) public returns (uint256 withdrawn)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### permit
-```solidity
- function permit(
- address owner,
- address spender,
- uint256 amount,
- uint256 deadline,
- uint8 v,
- bytes32 r,
- bytes32 s
- ) external
-```
-Triggers an approval from owner to spends
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`owner` | address | The address to approve from
-|`spender` | address | The address to be approved
-|`amount` | uint256 | The number of tokens that are approved (2^256-1 means infinite)
-|`deadline` | uint256 | The time at which to expire the signature
-|`v` | uint8 | The recovery byte of the signature
-|`r` | bytes32 | Half of the ECDSA signature pair
-|`s` | bytes32 | Half of the ECDSA signature pair
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TestGuestList.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TestGuestList.md
deleted file mode 100644
index 826856f466..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TestGuestList.md
+++ /dev/null
@@ -1,52 +0,0 @@
-
-A basic guest list contract for testing.
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-Create the test guest list, setting the message sender as
-`bouncer`.
-
-Note that since this is just for testing, you're unable to change
-`bouncer`.
-
-
-### setGuests
-```solidity
- function setGuests(
- address[] _guests,
- bool[] _invited
- ) external
-```
-Invite guests or kick them from the party.
-
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guests` | address[] | The guests to add or update.
-|`_invited` | bool[] | A flag for each guest at the matching index, inviting or
-uninviting the guest.
-
-### authorized
-```solidity
- function authorized(
- address _guest,
- uint256 _amount
- ) external returns (bool)
-```
-Check if a guest with a bag of a certain size is allowed into
-the party.
-
-Note that `_amount` isn't checked to keep test setup simple, since
-from the vault tests' perspective this is a pass/fail call anyway.
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_guest` | address | The guest's address to check.
-|`_amount` | uint256 | Not used. The amount of tokens the guest is bringing.
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TestStrategy.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TestStrategy.md
deleted file mode 100644
index 09032c36f1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TestStrategy.md
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### _toggleDelegation
-```solidity
- function _toggleDelegation(
- ) public
-```
-
-
-
-
-### delegatedAssets
-```solidity
- function delegatedAssets(
- ) external returns (uint256)
-```
-
-
-
-
-### _takeFunds
-```solidity
- function _takeFunds(
- ) public
-```
-
-
-
-
-### _toggleReentrancyExploit
-```solidity
- function _toggleReentrancyExploit(
- ) public
-```
-
-
-
-
-### _setWant
-```solidity
- function _setWant(
- ) public
-```
-
-
-
-
-### ethToWant
-```solidity
- function ethToWant(
- ) public returns (uint256)
-```
-
-
-
-
-### estimatedTotalAssets
-```solidity
- function estimatedTotalAssets(
- ) public returns (uint256)
-```
-
-
-
-
-### prepareReturn
-```solidity
- function prepareReturn(
- ) internal returns (uint256 _profit, uint256 _loss, uint256 _debtPayment)
-```
-
-
-
-
-### adjustPosition
-```solidity
- function adjustPosition(
- ) internal
-```
-
-
-
-
-### liquidatePosition
-```solidity
- function liquidatePosition(
- ) internal returns (uint256 _liquidatedAmount, uint256 _loss)
-```
-
-
-
-
-### prepareMigration
-```solidity
- function prepareMigration(
- ) internal
-```
-
-
-
-
-### protectedTokens
-```solidity
- function protectedTokens(
- ) internal returns (address[])
-```
-
-
-
-
-### liquidateAllPositions
-```solidity
- function liquidateAllPositions(
- ) internal returns (uint256 amountFreed)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/Token.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/Token.md
deleted file mode 100644
index 6bc7e4f416..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/Token.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### _beforeTokenTransfer
-```solidity
- function _beforeTokenTransfer(
- ) internal
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TokenFalseReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TokenFalseReturn.md
deleted file mode 100644
index 82c282f5fa..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TokenFalseReturn.md
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TokenNoReturn.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TokenNoReturn.md
deleted file mode 100644
index 311566ddb6..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/test/TokenNoReturn.md
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### _setBlocked
-```solidity
- function _setBlocked(
- ) public
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) external
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) external
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) external
-```
-
-
-
-
-## Events
-### Transfer
-```solidity
- event Transfer(
- )
-```
-
-
-
-### Approval
-```solidity
- event Approval(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/utils/ProxyFactoryInitializable.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/utils/ProxyFactoryInitializable.md
deleted file mode 100644
index 7d1fd7ea2a..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/utils/ProxyFactoryInitializable.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-## Functions
-### deployMinimal
-```solidity
- function deployMinimal(
- ) external returns (address proxy, bytes returnData)
-```
-
-
-
-
-### _getRevertMsg
-```solidity
- function _getRevertMsg(
- bytes _res
- ) internal returns (string)
-```
-This is needed in order to get the human-readable revert message from a call
-
-Get the revert message from a call
-
-#### Parameters:
-| Name | Type | Description |
-| :--- | :--- | :------------------------------------------------------------------- |
-|`_res` | bytes | Response of the call
-
-#### Return Values:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------------------------------------- |
-|`Revert`| bytes | message string
-### slice
-```solidity
- function slice(
- ) internal returns (bytes)
-```
-
-
-
-
-## Events
-### ProxyCreated
-```solidity
- event ProxyCreated(
- )
-```
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/vault.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/vault.md
deleted file mode 100644
index 834653728b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/vault.md
+++ /dev/null
@@ -1,1382 +0,0 @@
-# Vault.vy
-
-
-**Yearn Token Vault**
-
-
-
-
-
-*Yearn Token Vault. Holds an underlying token, and allows users to interact with the Yearn ecosystem through Strategies connected to the Vault. Vaults are not limited to a single Strategy, they can have as many Strategies as can be designed (however the withdrawal queue is capped at 20.) Deposited funds are moved into the most impactful strategy that has not already reached its limit for assets under management, regardless of which Strategy a user's funds end up in, they receive their portion of yields generated across all Strategies. When a user withdraws, if there are no funds sitting undeployed in the Vault, the Vault withdraws funds from Strategies in the order of least impact. (Funds are taken from the Strategy that will disturb everyone's gains the least, then the next least, etc.) In order to achieve this, the withdrawal queue's order must be properly set and managed by the community (through governance). Vault Strategies are parameterized to pursue the highest risk-adjusted yield. There is an "Emergency Shutdown" mode. When the Vault is put into emergency shutdown, assets will be recalled from the Strategies as quickly as is practical (given onchain conditions), minimizing loss. Deposits are halted, new Strategies may not be added, and each Strategy exits with the minimum possible damage to position, while opening up deposits to be withdrawn by users. There are no restrictions on withdrawals above what is expected under Normal Operation. For further details, please refer to the specification: https://github.com/iearn-finance/yearn-vaults/blob/master/SPECIFICATION.md*
-
-
-## Functions
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string)
-```
-
-
-Initializes the Vault, this is called only once, when the contract is deployed. The performance fee is set to 10% of yield, per Strategy. The management fee is set to 2%, per year. The initial deposit limit is set to 0 (deposits disabled); it must be updated after initialization.
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'yv' combined with the symbol of `token`. The token used by the vault should not change balances outside transfers and it must transfer the exact amount requested. Fee on transfer and rebasing are not supported.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * management * | * * | * The address of the vault manager. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'yv' combined with the symbol of `token`. The token used by the vault should not change balances outside transfers and it must transfer the exact amount requested. Fee on transfer and rebasing are not supported.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * management * | * * | * The address of the vault manager. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### initialize
-```solidity
-function initialize(address,address,address,string,string,address,address)
-```
-
-
-
-*If `nameOverride` is not specified, the name will be 'yearn' combined with the name of `token`. If `symbolOverride` is not specified, the symbol will be 'yv' combined with the symbol of `token`. The token used by the vault should not change balances outside transfers and it must transfer the exact amount requested. Fee on transfer and rebasing are not supported.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token that may be deposited into this Vault. * |
-| * governance * | * * | * The address authorized for governance interactions. * |
-| * rewards * | * * | * The address to distribute rewards to. * |
-| * management * | * * | * The address of the vault manager. * |
-| * nameOverride * | * * | * Specify a custom Vault name. Leave empty for default choice. * |
-| * symbolOverride * | * * | * Specify a custom Vault symbol name. Leave empty for default choice. * |
-| * guardian * | * * | * The address authorized for guardian interactions. Defaults to caller. * |
-
-
-
-
-
-
-
-### apiVersion
-```solidity
-function apiVersion()
-```
-
-
-Used to track the deployed version of this contract. In practice you can use this version number to compare with Yearn's GitHub and determine which version of the source matches this deployed contract.
-
-
-*All strategies must have an `apiVersion()` that matches the Vault's `API_VERSION`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * API_VERSION which holds the current version of this contract. * |
-
-
-
-
-
-
-### setName
-```solidity
-function setName(string)
-```
-
-
-Used to change the value of `name`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * name * | * * | * The new name to use. * |
-
-
-
-
-
-
-
-### setSymbol
-```solidity
-function setSymbol(string)
-```
-
-
-Used to change the value of `symbol`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * symbol * | * * | * The new symbol to use. * |
-
-
-
-
-
-
-
-### setGovernance
-```solidity
-function setGovernance(address)
-```
-
-
-Nominate a new address to use as governance. The change does not go into effect immediately. This function sets a pending change, and the governance address is not updated until the proposed governance address has accepted the responsibility. This may only be called by the current governance address.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * governance * | * * | * The address requested to take over Vault governance. * |
-
-
-
-
-
-
-
-### acceptGovernance
-```solidity
-function acceptGovernance()
-```
-
-
-Once a new governance address has been proposed using setGovernance(), this function may be called by the proposed address to accept the responsibility of taking over governance for this contract. This may only be called by the proposed governance address.
-
-
-*setGovernance() should be called by the existing governance address, prior to calling this function.*
-
-
-
-
-
-
-
-### setManagement
-```solidity
-function setManagement(address)
-```
-
-
-Changes the management address. Management is able to make some investment decisions adjusting parameters. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * management * | * * | * The address to use for managing. * |
-
-
-
-
-
-
-
-### setRewards
-```solidity
-function setRewards(address)
-```
-
-
-Changes the rewards address. Any distributed rewards will cease flowing to the old address and begin flowing to this address once the change is in effect. This will not change any Strategy reports in progress, only new reports made after this change goes into effect. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * rewards * | * * | * The address to use for collecting rewards. * |
-
-
-
-
-
-
-
-### setLockedProfitDegradation
-```solidity
-function setLockedProfitDegradation(uint256)
-```
-
-
-Changes the locked profit degradation.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * degradation * | * * | * The rate of degradation in percent per second scaled to 1e18. * |
-
-
-
-
-
-
-
-### setDepositLimit
-```solidity
-function setDepositLimit(uint256)
-```
-
-
-Changes the maximum amount of tokens that can be deposited in this Vault. Note, this is not how much may be deposited by a single depositor, but the maximum amount that may be deposited across all depositors. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * limit * | * * | * The new deposit limit to use. * |
-
-
-
-
-
-
-
-### setPerformanceFee
-```solidity
-function setPerformanceFee(uint256)
-```
-
-
-Used to change the value of `performanceFee`. Should set this value below the maximum strategist performance fee. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new performance fee to use. * |
-
-
-
-
-
-
-
-### setManagementFee
-```solidity
-function setManagementFee(uint256)
-```
-
-
-Used to change the value of `managementFee`. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * fee * | * * | * The new management fee to use. * |
-
-
-
-
-
-
-
-### setGuardian
-```solidity
-function setGuardian(address)
-```
-
-
-Used to change the address of `guardian`. This may only be called by governance or the existing guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * guardian * | * * | * The new guardian address to use. * |
-
-
-
-
-
-
-
-### setEmergencyShutdown
-```solidity
-function setEmergencyShutdown(bool)
-```
-
-
-Activates or deactivates Vault mode where all Strategies go into full withdrawal. During Emergency Shutdown: 1. No Users may deposit into the Vault (but may withdraw as usual.) 2. Governance may not add new Strategies. 3. Each Strategy must pay back their debt as quickly as reasonable to minimally affect their position. 4. Only Governance may undo Emergency Shutdown. See contract level note for further details. This may only be called by governance or the guardian.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * active * | * * | * If true, the Vault goes into Emergency Shutdown. If false, the Vault goes back into Normal Operation. * |
-
-
-
-
-
-
-
-### setWithdrawalQueue
-```solidity
-function setWithdrawalQueue(address[20])
-```
-
-
-Updates the withdrawalQueue to match the addresses and order specified by `queue`. There can be fewer strategies than the maximum, as well as fewer than the total number of strategies active in the vault. `withdrawalQueue` will be updated in a gas-efficient manner, assuming the input is well- ordered with 0x0 only at the end. This may only be called by governance or management.
-
-
-*This is order sensitive, specify the addresses in the order in which funds should be withdrawn (so `queue`[0] is the first Strategy withdrawn from, `queue`[1] is the second, etc.) This means that the least impactful Strategy (the Strategy that will have its core positions impacted the least by having funds removed) should be at `queue`[0], then the next least impactful at `queue`[1], and so on.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * queue * | * * | * The array of addresses to use as the new withdrawal queue. This is order sensitive. * |
-
-
-
-
-
-
-
-### transfer
-```solidity
-function transfer(address,uint256)
-```
-
-
-Transfers shares from the caller's address to `receiver`. This function will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### transferFrom
-```solidity
-function transferFrom(address,address,uint256)
-```
-
-
-Transfers `amount` shares from `sender` to `receiver`. This operation will always return true, unless the user is attempting to transfer shares to this contract's address, or to 0x0. Unless the caller has given this contract unlimited approval, transfering shares will decrement the caller's `allowance` by `amount`.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * sender * | * * | * The address shares are being transferred from. * |
-| * receiver * | * * | * The address shares are being transferred to. Must not be this contract's address, must not be 0x0. * |
-| * amount * | * * | * The quantity of shares to transfer. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True if transfer is sent to an address other than this contract's or 0x0, otherwise the transaction will fail. * |
-
-
-
-
-
-
-### approve
-```solidity
-function approve(address,uint256)
-```
-
-
-
-*Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-
-
-
-
-
-
-
-### increaseAllowance
-```solidity
-function increaseAllowance(address,uint256)
-```
-
-
-
-*Increase the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to increase the allowance by. * |
-
-
-
-
-
-
-
-### decreaseAllowance
-```solidity
-function decreaseAllowance(address,uint256)
-```
-
-
-
-*Decrease the allowance of the passed address to spend the total amount of tokens on behalf of msg.sender. This method mitigates the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. See https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * spender * | * * | * The address which will spend the funds. * |
-| * amount * | * * | * The amount of tokens to decrease the allowance by. * |
-
-
-
-
-
-
-
-### permit
-```solidity
-function permit(address,address,uint256,uint256,bytes)
-```
-
-
-Approves spender by owner's signature to expend owner's tokens. See https://eips.ethereum.org/EIPS/eip-2612.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * owner * | * * | * The address which is a source of funds and has signed the Permit. * |
-| * spender * | * * | * The address which is allowed to spend the funds. * |
-| * amount * | * * | * The amount of tokens to be spent. * |
-| * expiry * | * * | * The timestamp after which the Permit is no longer valid. * |
-| * signature * | * * | * A valid secp256k1 signature of Permit by owner encoded as r, s, v. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * True, if transaction completes successfully * |
-
-
-
-
-
-
-### totalAssets
-```solidity
-function totalAssets()
-```
-
-
-Returns the total quantity of all assets under control of this Vault, whether they're loaned out to a Strategy, or currently held in the Vault.
-
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total assets under control of this Vault. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit()
-```
-
-
-Deposits `_amount` `token`, issuing shares to `recipient`. If the Vault is in Emergency Shutdown, deposits will not be accepted and this call will fail.
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### deposit
-```solidity
-function deposit(uint256,address)
-```
-
-
-
-*Measuring quantity of shares to issues is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On deposit, this means that shares are issued against the total amount that the deposited capital can be given in service of the debt that Strategies assume. If that number were to be lower than the "expected value" at some future point, depositing shares via this method could entitle the depositor to *less* than the deposited value once the "realized value" is updated from further reports by the Strategies to the Vaults. Care should be taken by integrators to account for this discrepancy, by using the view-only methods of this contract (both offchain and onchain) to determine if depositing into the Vault is a "good idea".*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * _amount * | * * | * The quantity of tokens to deposit, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The issued Vault shares. * |
-
-
-
-
-
-
-### maxAvailableShares
-```solidity
-function maxAvailableShares()
-```
-
-
-Determines the maximum quantity of shares this Vault can facilitate a withdrawal for, factoring in assets currently residing in the Vault, as well as those deployed to strategies on the Vault's balance sheet.
-
-
-*Regarding how shares are calculated, see dev note on `deposit`. If you want to calculated the maximum a user could withdraw up to, you want to use this function. Note that the amount provided by this function is the theoretical maximum possible from withdrawing, the real amount depends on the realized losses incurred during withdrawal.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The total quantity of shares this Vault can provide. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw()
-```
-
-
-Withdraws the calling account's tokens from this Vault, redeeming amount `_shares` for an appropriate amount of tokens. See note on `setWithdrawalQueue` for further details of withdrawal ordering and behavior.
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### withdraw
-```solidity
-function withdraw(uint256,address,uint256)
-```
-
-
-
-*Measuring the value of shares is based on the total outstanding debt that this contract has ("expected value") instead of the total balance sheet it has ("estimated value") has important security considerations, and is done intentionally. If this value were measured against external systems, it could be purposely manipulated by an attacker to withdraw more assets than they otherwise should be able to claim by redeeming their shares. On withdrawal, this means that shares are redeemed against the total amount that the deposited capital had "realized" since the point it was deposited, up until the point it was withdrawn. If that number were to be higher than the "expected value" at some future point, withdrawing shares via this method could entitle the depositor to *more* than the expected value once the "realized value" is updated from further reports by the Strategies to the Vaults. Under exceptional scenarios, this could cause earlier withdrawals to earn "more" of the underlying assets than Users might otherwise be entitled to, if the Vault's estimated value were otherwise measured through external means, accounting for whatever exceptional scenarios exist for the Vault (that aren't covered by the Vault's own design.) In the situation where a large withdrawal happens, it can empty the vault balance and the strategies in the withdrawal queue. Strategies not in the withdrawal queue will have to be harvested to rebalance the funds and make the funds available again to withdraw.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * maxShares * | * * | * How many shares to try and redeem for tokens, defaults to all. * |
-| * recipient * | * * | * The address to issue the shares in this Vault to. Defaults to the caller's address. * |
-| * maxLoss * | * * | * The maximum acceptable loss to sustain on withdrawal. Defaults to 0.01%. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens redeemed for `_shares`. * |
-
-
-
-
-
-
-### pricePerShare
-```solidity
-function pricePerShare()
-```
-
-
-Gives the price for a single Vault share.
-
-
-*See dev note on `withdraw`.*
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The value of a single share. * |
-
-
-
-
-
-
-### addStrategy
-```solidity
-function addStrategy(address,uint256,uint256,uint256,uint256)
-```
-
-
-Add a Strategy to the Vault. This may only be called by governance.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The address of the Strategy to add. * |
-| * debtRatio * | * * | * The share of the total assets in the `vault that the `strategy` has access to. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-| * performanceFee * | * * | * The fee the strategist will receive based on this Vault's performance. * |
-
-
-
-
-
-
-
-### updateStrategyDebtRatio
-```solidity
-function updateStrategyDebtRatio(address,uint256)
-```
-
-
-Change the quantity of assets `strategy` may manage. This may be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * debtRatio * | * * | * The quantity of assets `strategy` may now manage. * |
-
-
-
-
-
-
-
-### updateStrategyMinDebtPerHarvest
-```solidity
-function updateStrategyMinDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * minDebtPerHarvest * | * * | * Lower limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyMaxDebtPerHarvest
-```solidity
-function updateStrategyMaxDebtPerHarvest(address,uint256)
-```
-
-
-Change the quantity assets per block this Vault may deposit to or withdraw from `strategy`. This may only be called by governance or management.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * maxDebtPerHarvest * | * * | * Upper limit on the increase of debt since last harvest * |
-
-
-
-
-
-
-
-### updateStrategyPerformanceFee
-```solidity
-function updateStrategyPerformanceFee(address,uint256)
-```
-
-
-Change the fee the strategist will receive based on this Vault's performance. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to update. * |
-| * performanceFee * | * * | * The new fee the strategist will receive. * |
-
-
-
-
-
-
-
-### migrateStrategy
-```solidity
-function migrateStrategy(address,address)
-```
-
-
-Migrates a Strategy, including all assets from `oldVersion` to `newVersion`. This may only be called by governance.
-
-
-*Strategy must successfully migrate all capital and positions to new Strategy, or else this will upset the balance of the Vault. The new Strategy should be "empty" e.g. have no prior commitments to this Vault, otherwise it could have issues.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * oldVersion * | * * | * The existing Strategy to migrate from. * |
-| * newVersion * | * * | * The new Strategy to migrate to. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy()
-```
-
-
-Revoke a Strategy, setting its debt limit to 0 and preventing any future deposits. This function should only be used in the scenario where the Strategy is being retired but no migration of the positions are possible, or in the extreme scenario that the Strategy needs to be put into "Emergency Exit" mode in order for it to exit as quickly as possible. The latter scenario could be for any reason that is considered "critical" that the Strategy exits its position as fast as possible, such as a sudden change in market conditions leading to losses, or an imminent failure in an external dependency. This may only be called by governance, the guardian, or the Strategy itself. Note that a Strategy will only revoke itself during emergency shutdown.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### revokeStrategy
-```solidity
-function revokeStrategy(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to revoke. * |
-
-
-
-
-
-
-
-### addStrategyToQueue
-```solidity
-function addStrategyToQueue(address)
-```
-
-
-Adds `strategy` to `withdrawalQueue`. This may only be called by governance or management.
-
-
-*The Strategy will be appended to `withdrawalQueue`, call `setWithdrawalQueue` to change the order.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to add. * |
-
-
-
-
-
-
-
-### removeStrategyFromQueue
-```solidity
-function removeStrategyFromQueue(address)
-```
-
-
-Remove `strategy` from `withdrawalQueue`. This may only be called by governance or management.
-
-
-*We don't do this with revokeStrategy because it should still be possible to withdraw from the Strategy if it's unwinding.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to remove. * |
-
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding()
-```
-
-
-Determines if `strategy` is past its debt limit and if any tokens should be withdrawn to the Vault.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### debtOutstanding
-```solidity
-function debtOutstanding(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to the caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens to withdraw. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable()
-```
-
-
-Amount of tokens in Vault a Strategy has access to as a credit line. This will check the Strategy's debt limit, as well as the tokens available in the Vault, and determine the maximum amount of tokens (if any) the Strategy may draw on. In the rare case the Vault is in emergency shutdown this will return 0.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### creditAvailable
-```solidity
-function creditAvailable(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to check. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The quantity of tokens available for the Strategy to draw on. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn()
-```
-
-
-Provide an accurate expected value for the return this `strategy` would provide to the Vault the next time `report()` is called (since the last time it was called).
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### expectedReturn
-```solidity
-function expectedReturn(address)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * strategy * | * * | * The Strategy to determine the expected return for. Defaults to caller. * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * The anticipated amount `strategy` should make on its investment since its last report. * |
-
-
-
-
-
-
-### report
-```solidity
-function report(uint256,uint256,uint256)
-```
-
-
-Reports the amount of assets the calling Strategy has free (usually in terms of ROI). The performance fee is determined here, off of the strategy's profits (if any), and sent to governance. The strategist's fee is also determined here (off of profits), to be handled according to the strategist on the next harvest. This may only be called by a Strategy managed by this Vault.
-
-
-*For approved strategies, this is the most efficient behavior. The Strategy reports back what it has free, then Vault "decides" whether to take some back or give it more. Note that the most it can take is `gain + _debtPayment`, and the most it can give is all of the remaining reserves. Anything outside of those bounds is abnormal behavior. All approved strategies must have increased diligence around calling this function, as abnormal behavior could become catastrophic.*
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * gain * | * * | * Amount Strategy has realized as a gain on its investment since its last report, and is free to be given back to Vault as earnings * |
-| * loss * | * * | * Amount Strategy has realized as a loss on its investment since its last report, and should be accounted for on the Vault's balance sheet. The loss will reduce the debtRatio. The next time the strategy will harvest, it will pay back the debt in an attempt to adjust to the new debt limit. * |
-| * _debtPayment * | * * | * Amount Strategy has made available to cover outstanding debt * |
-
-
-
-#### Return Values:
-| Description |
-| :--------------------------------------------------------------------------- |
-| * Amount of debt outstanding (if totalDebt > debtLimit or emergency shutdown). * |
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address)
-```
-
-
-Removes tokens from this Vault that are not the type of token managed by this Vault. This may be used in case of accidentally sending the wrong kind of token to this Vault. Tokens will be sent to `governance`. This will fail if an attempt is made to sweep the tokens that this Vault manages. This may only be called by governance.
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-### sweep
-```solidity
-function sweep(address,uint256)
-```
-
-
-
-
-#### Parameters:
-| Name | Type | Description |
-| :----------------------------- | :------------ | :--------------------------------------------- |
-| * token * | * * | * The token to transfer out of this vault. * |
-| * amount * | * * | * The quantity or tokenId to transfer out. * |
-
-
-
-
-
-
-
-
-
-## Events
-
-
-**Transfer**
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**Approval**
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-**StrategyAdded**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyReported**
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `debtPaid` : uint256, *notIndexed*
-* `totalGain` : uint256, *notIndexed*
-* `totalLoss` : uint256, *notIndexed*
-* `totalDebt` : uint256, *notIndexed*
-* `debtAdded` : uint256, *notIndexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**UpdateGovernance**
-
-* `governance` : address, *notIndexed*
-
-**UpdateManagement**
-
-* `management` : address, *notIndexed*
-
-**UpdateRewards**
-
-* `rewards` : address, *notIndexed*
-
-**UpdateDepositLimit**
-
-* `depositLimit` : uint256, *notIndexed*
-
-**UpdatePerformanceFee**
-
-* `performanceFee` : uint256, *notIndexed*
-
-**UpdateManagementFee**
-
-* `managementFee` : uint256, *notIndexed*
-
-**UpdateGuardian**
-
-* `guardian` : address, *notIndexed*
-
-**EmergencyShutdown**
-
-* `active` : bool, *notIndexed*
-
-**UpdateWithdrawalQueue**
-
-* `queue` : address[20], *notIndexed*
-
-**StrategyUpdateDebtRatio**
-
-* `strategy` : address, *indexed*
-* `debtRatio` : uint256, *notIndexed*
-
-**StrategyUpdateMinDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `minDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdateMaxDebtPerHarvest**
-
-* `strategy` : address, *indexed*
-* `maxDebtPerHarvest` : uint256, *notIndexed*
-
-**StrategyUpdatePerformanceFee**
-
-* `strategy` : address, *indexed*
-* `performanceFee` : uint256, *notIndexed*
-
-**StrategyMigrated**
-
-* `oldVersion` : address, *indexed*
-* `newVersion` : address, *indexed*
-
-**StrategyRevoked**
-
-* `strategy` : address, *indexed*
-
-**StrategyRemovedFromQueue**
-
-* `strategy` : address, *indexed*
-
-**StrategyAddedToQueue**
-
-* `strategy` : address, *indexed*
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/yToken.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/yToken.md
deleted file mode 100644
index ccbc709769..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/yToken.md
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### name
-```solidity
- function name(
- ) external returns (string)
-```
-
-
-
-
-### symbol
-```solidity
- function symbol(
- ) external returns (string)
-```
-
-
-
-
-### decimals
-```solidity
- function decimals(
- ) external returns (uint256)
-```
-
-
-
-
-### totalSupply
-```solidity
- function totalSupply(
- ) external returns (uint256 total)
-```
-
-
-
-
-### balanceOf
-```solidity
- function balanceOf(
- ) external returns (uint256 balance)
-```
-
-
-
-
-### _transfer
-```solidity
- function _transfer(
- ) internal
-```
-
-
-
-
-### transfer
-```solidity
- function transfer(
- ) public returns (bool)
-```
-
-
-
-
-### _approve
-```solidity
- function _approve(
- ) internal
-```
-
-
-
-
-### approve
-```solidity
- function approve(
- ) public returns (bool)
-```
-
-
-
-
-### transferFrom
-```solidity
- function transferFrom(
- ) public returns (bool)
-```
-
-
-
-
-### increaseAllowance
-```solidity
- function increaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### decreaseAllowance
-```solidity
- function decreaseAllowance(
- ) public returns (bool)
-```
-
-
-
-
-### deposit
-```solidity
- function deposit(
- ) external returns (uint256)
-```
-
-
-
-
-### withdraw
-```solidity
- function withdraw(
- ) external returns (uint256)
-```
-
-
-
-
-### _permitAll
-```solidity
- function _permitAll(
- ) internal
-```
-
-
-
-
-### permitAll
-```solidity
- function permitAll(
- ) public
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### migrate
-```solidity
- function migrate(
- ) external returns (uint256)
-```
-
-
-
-
-### revokeAll
-```solidity
- function revokeAll(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/yWETH.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/yWETH.md
deleted file mode 100644
index 459bc7b3f1..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/smart-contracts/yWETH.md
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-## Functions
-### constructor
-```solidity
- function constructor(
- ) public
-```
-
-
-
-
-### depositETH
-```solidity
- function depositETH(
- ) public returns (uint256)
-```
-
-
-
-
-### withdrawETH
-```solidity
- function withdrawETH(
- ) external returns (uint256 withdrawn)
-```
-
-
-
-
-### receive
-```solidity
- function receive(
- ) external
-```
-
-
-
-
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-api.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-api.md
deleted file mode 100644
index f5abbac196..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-api.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Yearn API
-
-### Production Endpoint
-
-https://ydaemon.yearn.fi/1/vaults/all
-
-### API Schema
-
-| Field | Description |
-| --------------------------- | --------------------------------------------------------------------------------------------- |
-| `address` | Checksummed address of the vault |
-| `inception` | The block number a vault was created at |
-| `symbol` | Vault token symbol (used primarily in metamask) |
-| `name` | Vault token name |
-| `display_name` | Vault name as displayed in UI (usually based on underlying symbol) |
-| `icon` | Vault token icon url |
-| `token` | Underlying vault token metadata |
-| `token.name` | Underlying token name |
-| `token.symbol` | Underlying token symbol |
-| `token.address` | Underlying token address |
-| `token.decimals` | Underlying token decimal amount |
-| `token.display_name` | Underlying token display name |
-| `token.icon` | Underlying token icon (usually used as vault dispaly icon) |
-| `tvl` | TVL information about a vault |
-| `tvl.total_assets` | TVL in underlying token denomination |
-| `tvl.price` | Token price in USD |
-| `tvl.tvl` | TVL in USD |
-| `apy` | Vault APY metadata |
-| `apy.type` | APY type. Options are `v2:simple`, `v2:averaged`, `v1:simple`, `crv` |
-| `apy.gross_apr` | Uncompounded gross APR before fees |
-| `apy.net_apy` | Net APY (compounded) after fees. This is what the UI shows |
-| `apy.fees` | Fee structure breakdown for a vault |
-| `apy.fees.performance` | Performance fee in bips |
-| `apy.fees.withdrawal` | Withdrawal fee in bips |
-| `apy.fees.management` | Management fee in bips |
-| `apy.fees.keep_crv` | Amount of CRV to keep upon harvest for curve vaults in bips |
-| `apy.fees.cvx_keep_crv` | Amount of CRV to keep upon harvest for curve convex vaults in bips |
-| `apy.points` | APY samples for various timeframes |
-| `apy.points.week_ago` | APY calculated from one week sample of pricePerShare |
-| `apy.points.month_ago` | APY calculated from one month sample of pricePerShare |
-| `apy.points.month_ago` | APY calculated from inception block sample of pricePerShare |
-| `apy.composite` | Complex APY breakdown (for curve vaults) |
-| `apy.composite.boost` | Current boost of the strategies |
-| `apy.composite.pool_apy` | APY of the Curve LP position |
-| `apy.composite.base_apr` | Base APR of Curve emissions |
-| `apy.composite.boosted_apr` | Boosted APR of Curve emissions |
-| `apy.composite.cvx_apr` | APR of Convex rewards |
-| `apy.composite.rewards_apr` | APR of additional pool rewards |
-| `strategies` | A list of active vault strategies |
-| `strategies[idx].address` | Address of an active strategy |
-| `strategies[idx].name` | Name of an active strategy |
-| `endorsed` | True if the vault is an endorsed production vault. Do not show the vault if it's not endorsed |
-| `version` | API version of the vault |
-| `decimals` | Number of decimals for the vault token |
-| `type` | High level vault classification. Valid options are v1 and v2 |
-| `emergency_shutdown` | If true the vault is in shut down mode and no new deposits should be accepted |
-| `updated` | Unix timestamp of the last vault update |
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-lens/yearn-lens.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-lens/yearn-lens.md
deleted file mode 100644
index 11ccaae0a3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-lens/yearn-lens.md
+++ /dev/null
@@ -1,945 +0,0 @@
-# Yearn Lens
-
-Yearn Lens is a series of smart contracts that aggregate and format Yearn family protocol data into standardized interfaces.
-
-## Architecture
-
-### Block Diagram
-
-
-
-### Key Concepts
-
-- Lens
- - The lens contract acts as the primary data aggregator
- - Registry adapters can be added or removed from the lens contract
- - The lens contract supports many of the same methods as the registry adapters, but returns aggregated views across asset types
-- Registry Adapters
- - The purpose of registry adapters is to read data from various registries and return data in a standardized format
- - Currently registry adapters exist for:
- - v1 Vaults
- - v2 Vaults
- - Earn
- - Iron Bank
- - veCrv
- - All registry adapters must implement a standardized set of methods (details below)
- - Registry adapters have the ability to return metadata specific to an asset type (for example for vaults: `pricePerShare`, `controller`, etc.)
-- Oracle
- - The oracle contract is responsible for fetching price information from various sources
- - The oracle is intended for non-critical offchain calculations
- - TVL calculations
- - Token and asset balance normalizations
- - Not intended to be used with strategies or other contracts
- - Prices are returned in USDC
- - Supports adding, removing and upgrading price calculations
- - Currently supported calculations:
- - Sushiswap market price (based on `getAmountsOut`)
- - Uniswap market price (based on `getAmountsOut`)
- - Sushiswap/Uniswap LP token prices (based on `getReserves`)
- - Iron Bank market price (based on `exchangeRateStored`)
- - Curve LP token price (based on `virtualPrice` and base underlying token price)
- - The oracle contract itself is very lightweight
- - A cascading fallback mechanism is utilized to fetch the most appropriate price for a given asset
- - This means the majority of logic lives on calculation contracts
- - This also means the oracle contract gets direct access to all underlying calculation contract helper methods
-
-### Key Features
-
-- Obtain all Yearn family asset data in a standardized interface
-- Obtain all user asset and token balances/allowances
- - Ability to return USDC normalized balances as well as base asset balances
-- Obtain various TVL calculations for Yearn
- - Total TVL
- - TVL per asset type
- - TVL per asset
-- Integration with all Yearn family protocols
- - v1/v2 vaults
- - Iron Bank
- - Earn
- - VeCrv (base contract and pJar)
-
-## Contracts
-
-### Registry Adapters
-
-#### Schema
-
-##### Standardized Interfaces
-
-All registry adapters are required to implement the following interfaces.
-
-###### AdapterMetadata
-
-```solidity
-struct AdapterMetadata {
- string typeId;
- string categoryId;
- string subcategoryId;
-}
-```
-
-###### Asset
-
-```solidity
-struct Asset {
- address id;
- string typeId;
- string name;
- string version;
- uint256 balance;
- uint256 balanceUsdc; // Asset TVL == balance * token.priceUsdc
- Token token;
- AssetMetadata metadata;
-}
-```
-
-###### AssetStatic (static) (not connected)
-
-```solidity
-struct AssetStatic {
- address id;
- string typeId;
- string name;
- string version;
- Token token;
-}
-```
-
-###### Token (static) (not connected)
-
-```solidity
-struct Token {
- address id;
- string name;
- string symbol;
- uint8 decimals;
-}
-```
-
-```json
-assetsStatic():
-[{
- id: "0x123...",
- typeId: "v2Vault",
- name: "YFI Vault",
- version: "0.3.2",
- tokenId: "0x234..."
- token: {
- id: "0x234...",
- name: "yearn.fi",
- symbol: "YFI",
- decimals: 18
- }
-}]
-
-```
-
-###### AssetDynamic (dynamic) (not connected)
-
-```solidity
-struct AssetDynamic {
- address assetId;
- address tokenId;
- AssetMetadata metadata;
- TokenAmount underlyingTokenBalance; // Amount of underlying token in the asset
-}
-```
-
-###### TokenAmount (dynamic)
-
-```solidity
-struct TokenAmount {
- uint256 amount;
- uint256 amountUsdc;
-}
-```
-
-```json
-assetsDynamic():
-[{
- assetId: "0x123",
- tokenId: "0x456",
- metadata: {
- pricePerShare: "101000022394340034000"
- },
- underlyingTokenBalance: {
- amount: "53233222334444334444", // vault.totalAssets()
- amountUsdc: "3422233333445"
- }
-}]
-
-```
-
-###### Position (dynamic) (connected)
-
-```solidity
-struct Position {
- address assetId;
- string typeId;
- address tokenId;
- uint256 balance; // asset.balanceOf(account) - shares owned by user
- TokenPostion underlyingTokenBalance; // Amount of underlying token in the asset that a user owns
- TokenPosition accountTokenBalance; // Amount of underlying token a user owns
- Allowance[] tokenAllowances;
- Allowance[] assetAllowances;
-}
-```
-
-```json
-positionsOf(account):
-[{
- assetId: "0x123",
- typeId: "deposit",
- tokenId: "0x545",
- balance: "105344343435553", // vault.balanceOf(account)
- underlyingTokenBalance: {
- amount: "53233222334444334444", // vault.balanceOf(account) * pricePerShare
- amountUsdc: "3422233333445"
- },
- accountTokenBalance: {
- amount: "4424424000238", // token.balanceOf(account)
- amountUsdc: "23323"
- },
- tokenAllowances: [{
- owner: "0x4800", // Account
- spender: "0x123", // Asset address
- amount: "115335543535353535235325325325235235325235425235"
- }],
- assetAllowances: [{
- owner: "0x123", // Asset address
- spender: "0x456", // Trusted migrator
- amount: "115335543535353535235325325325235235325235425235"
- }]
-}]
-```
-
-###### Position
-
-```solidity
-struct Position {
- address assetId;
- uint256 balance;
- uint256 balanceUsdc;
- TokenPosition tokenPosition;
- Allowance[] allowances;
-}
-```
-
-###### Token
-
-```solidity
-struct Token {
- address id;
- string name;
- string symbol;
- uint8 decimals;
- uint256 priceUsdc;
-}
-```
-
-###### TokenPosition
-
-```solidity
-struct TokenPosition {
- address tokenId;
- uint256 balance;
- uint256 balanceUsdc;
- Allowance[] allowances;
-}
-```
-
-```solidity
-struct Allowance {
- address owner;
- address spender;
- uint256 allowance;
-}
-```
-
-##### Adapter-specific Interfaces
-
-Each registry adapter can export asset metadata that is specific to the asset type.
-
-###### Vault
-
-```solidity
-struct AssetMetadata {
- string symbol;
- uint256 pricePerShare;
- bool migrationAvailable;
- address latestVaultAddress;
- uint256 depositLimit;
- bool emergencyShutdown;
-}
-```
-
-###### Earn
-
-`TBD`
-
-###### Iron Bank
-
-`TBD`
-
-###### veCrv
-
-`TBD`
-
-#### Methods
-
-All registry adapters are required to implement the following methods.
-
-##### registryAddress
-
-Get the registry address associated with the adapter. The adapter pulls most information from the registry. `registryAddress` is defined in the adapter consturctor.
-
-```solidity
-address public registryAddress;
-```
-
-##### assetsLength
-
-Get the number of assets the registry adapter is capable of returning.
-
-```javascript
-function assetsLength() public view returns (uint256);
-```
-
-`RETURN` Number of registry adapter assets
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-uint256 assetsLength = registryAdapter.assetsLength();
-```
-
-###### Example Response
-
-```solidity
-32
-```
-
-##### positionSpenderAddresses
-
-```solidity
-address[] public positionSpenderAddresses;
-```
-
-##### setPositionSpenderAddresses
-
-```solidity
-function setPositionSpenderAddresses(address addresses)
-```
-
-##### assetsAddresses
-
-Get a list of asset addresses from the asset adapter's associated registry.
-
-```javascript
-function assetsAddresses() public view returns (address[] memory);
-```
-
-`RETURN` Array of asset addresses
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address[] assetAddresses = registryAdapter.assetsAddresses();
-```
-
-###### Example Response
-
-```solidity
-['0xE14d13d8B3b85aF791b2AADD661cDBd5E6097Db1',
- '0xdCD90C7f6324cfa40d7169ef80b12031770B4325',
- '0x986b4AFF588a109c09B50A03f42E4110E29D353F',
- '0xcB550A6D4C8e3517A939BC79d0c7093eb7cF56B5']
-```
-
-##### assetTvl
-
-Get TVL for a specific asset (in USDC).
-
-```javascript
-function assetTvl(address assetAddress) public view returns (uint256);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address assetAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
-uint256 assetTvl = registryAdapter.assetTvl(assetAddress);
-```
-
-###### Example Response
-
-`1637032292`
-
-##### assetsTvl
-
-Get aggregated TVL for all assets in the adapter's registry.
-
-```javascript
-function assetsTvl() external view returns (uint256);
-```
-
-`RETURN` Aggregated TVL scoped to the adapter's assets in USDC
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-uint256 assetTvl = registryAdapter.assetsTvl();
-```
-
-###### Example Response
-
-`443923433354832`
-
-##### asset
-
-Get a specific asset including metadata specific to the asset type. The response extends the standardized `Asset` interface.
-
-```javascript
-function asset(address assetAddress) public view returns (Asset memory);
-```
-
-`assetAddress` The address of the asset to fetch
-`RETURN` An asset struct containing information about the asset
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address assetAddress = 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b;
-registryAdapter.asset(assetAddress);
-```
-
-###### Example Response
-
-```json
-{
- name: 'WTFTM Vault',
- id: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b,
- version: '0.3.2',
- totalAssets: 129999966466476313000000,
- totalAssetsUsdc: 14355444934422, // TVL
- metadata: {
- controller: 0x19D3364A399d251E894aC732651be8B0E4e85001,
- pricePerShare: 142004300000000000
- ...
- }
-}
-```
-
-##### assets
-
-Get all assets for a registry adapter
-
-```javascript
-function assets() external view returns (Asset[] memory);
-```
-
-`RETURN` An array of asset structs containing information about the assets
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-registryAdapter.assets();
-```
-
-###### Example Response
-
-```json
-[
- {
- name: 'WFTM Vault',
- id: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b, // vault address
- version: '0.3.2',
- totalAssets: 129999966466476313000000,
- totalAssetsUsdc: 14355444934422, // TVL
- metadata: {
- controller: 0x19D3364A399d251E894aC732651be8B0E4e85001,
- pricePerShare: 142004300000000000
- ...
- }
- },
- {
- name: 'fUSD Vault',
- id: 0x5f18C75AbDAe578b483E5F43f12a39cF75b973a9,
- version: '0.3.2',
- totalAssets: 4593326846642963130309078,
- totalAssetsUsdc: 45444930943854422, // TVL
- metadata: {
- controller: 0x19D3364A399d251E894aC732651be8B0E4e85001,
- pricePerShare: 101003300000000000
- ...
- }
- }
-]
-```
-
-##### positionOf
-
-Get the position of an account for a specific asset address.
-
-```javascript
-function positionOf(address accountAddress, address assetAddress)
- public
- view
- returns (Position memory);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address accountAddress = 0x481140F916a4e64559694DB4d56D692CadC0326c;
-address assetAddress = 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b;
-registryAdapter.positionForAsset(accountAddress, assetAddress);
-```
-
-###### Example Response
-
-```json
-{
- assetId: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b, // vault address
- depositedBalance: 10422000000000000000,
- depositedBalanceUsdc: 10422000,
- tokenBalance: 2110000000000000000,
- tokenBalanceUsdc: 2110000,
- tokenAllowance, 1157343987545498574545495749587452... // max uint256
-}
-```
-
-##### positionsOf
-
-Get all positions for an account for every adapter asset.
-
-```javascript
-function positionsOf(address accountAddress)
- external
- view
- returns (Position[] memory);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-address accountAddress = 0x481140F916a4e64559694DB4d56D692CadC0326c;
-registryAdapter.positionsOf(accountAddress);
-```
-
-###### Example Response
-
-```json
-[
- {
- assetId: 0xe2F6b9773BF3A015E2aA70741Bde1498bdB9425b, // vault address
- depositedBalance: 10422000000000000000,
- depositedBalanceUsdc: 10422000,
- tokenBalance: 2110000000000000000,
- tokenBalanceUsdc: 2110000,
- tokenAllowance, 1157343987545498574545495749587452... // max uint256
- },
- {
- assetId: 0x19D3364A399d251E894aC732651be8B0E4e85001, // vault address
- depositedBalance: 10422000000000000000,
- depositedBalanceUsdc: 10422000,
- tokenBalance: 0,
- tokenBalanceUsdc: 0,
- tokenAllowance, 0
- }
-]
-```
-
-##### tokens
-
-Get unique tokens for the adapter.
-
-```javascript
-function tokens()
- external
- view
- returns (Token[] memory);
-```
-
-###### Solidity
-
-```solidity
-RegistryAdapter registryAdapter = RegistryAdapter(0xABCD...);
-registryAdapter.tokens();
-```
-
-###### Example Response
-
-```json
-[
- {
- id: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, // token address
- name: 'USD Coin',
- symbol: 'USDC',
- decimals: 18,
- priceUsdc: 100000
- },
- ...
-]
-```
-
-### Oracle
-
-#### Methods
-
-##### setCalculations
-
-Set oracle calculation contract addresses. Each calculation contract must implement getPriceUsdc(). The order of calculation contracts matters as it determines the order preference in the cascading fallback mechanism.
-
-```javascript
-function setCalculations(address[] memory calculationAddresses)
- public
- onlyManagers;
-```
-
-`calculationAddresses` An array of addresses for underlying calculation contracts
-
-##### calculations
-
-View the calculation contract addresses currently associated with the oracle.
-
-```javascript
-function calculations() external view returns (address[] memory);
-```
-
-`RETURN` An array of calculation contract addresses associated with the oracle
-
-###### Example Response
-
-```json
-[
- "0xfC714174E5c8bd056a45a5337E7b402CC4af7BF3",
- "0x55e9B18fefFF7E00548d54480373Fc8843De8eA4",
- "0x88dE7d7F7b9597C86b8cD195374FbF602934F334"
-]
-```
-
-##### getPriceUsdcRecommended
-
-Get the currently recommended price given a token address.
-
-```javascript
-function getPriceUsdcRecommended(address tokenAddress)
- public
- view
- returns (uint256);
-```
-
-`tokenAddress` The token address for which to obtain a price recommendation
-`RETURN` Recommended price in USDC (6 decimals)
-
-###### Example Response
-
-`103000`
-
-##### getNormalizedValueUsdc
-
-Calculate normalized USDC value given a token address and an amount.
-
-```javascript
-function getNormalizedValueUsdc(address tokenAddress, uint256 amount)
- external
- view
- returns (uint256);
-```
-
-`tokenAddress` The token address
-`amount` The amount of value to convert (in token decimals)
-`RETURN` Recommended price in USDC (6 decimals)
-
-###### Example Response
-
-`3442238822`
-
-##### tokenAliases
-
-Given a token address fetch a token alias address. This is necessary for certain wrapped or special case tokens that do not have a token price available in the oracle.
-
-```solidity
-mapping(address => address) public tokenAliases;
-```
-
-##### addTokenAlias
-
-Add a new token alias mapping.
-
-```solidity
-function addTokenAlias(address tokenAddress, address tokenAliasAddress)
- public
- onlyManagers;
-```
-
-`tokenAddress` The token address that will receive an alias
-`tokenAliasAddress` The new token alias address
-
-##### addTokenAliases
-
-Batch add new token alias mappingings.
-
-```solidity
- function addTokenAliases(TokenAlias[] memory tokenAliases)
- public
- onlyManagers
-```
-
-`tokenAliases` An array of `TokenAlias` structs (`[[tokenAddress, tokenAliasAddress]]`)
-
-##### removeTokenAlias
-
-Remove a token alias mapping.
-
-```solidity
-function addTokenAlias(address tokenAddress, address tokenAliasAddress)
- public
- onlyManagers;
-```
-
-`tokenAddress` The token address whose alias will be removed
-
-### Calculation
-
-#### Standardized methods
-
-All calculation contracts must implement the following methods.
-
-##### getPriceUsdc
-
-Fetch the recommended price given a token address. Reverts if no relevant price is found.
-
-```javascript
-function getPriceUsdc(address tokenAddress) public view returns (uint256)
-```
-
-###### Example Response
-
-`103000`
-
-#### Calculation specific methods
-
-Helper utilities for various calculations. These methods are indirectly exposed to the oracle via the oracle's cascading fallback mechanism. All of these methods can be called via the oracle contract by generating a custom ABI with the desired methods. Since these helper methods do not represent the primary use case of the oracle contract (the primary use case is fetching price) determining the details of each method implementation is left to the user.
-
-##### Sushiswap
-
-```javascript
-function getPriceFromRouter(address token0Address, address token1Address)
- public
- view
- returns (uint256);
-
-function getPriceFromRouterUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-
-function isLpToken(address tokenAddress) public view returns (bool);
-
-function getRouterForLpToken(address tokenAddress)
- public
- view
- returns (PriceRouter);
-
-function getLpTokenTotalLiquidityUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-
-function getLpTokenPriceUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-```
-
-##### Curve
-
-```javascript
-function getBasePrice(address curveLpTokenAddress)
- public
- view
- returns (uint256);
-
-function getVirtualPrice(address curveLpTokenAddress)
- public
- view
- returns (uint256);
-
-function isCurveLpToken(address tokenAddress) public view returns (bool);
-
-function getFirstUnderlyingCoinFromPool(address poolAddress)
- public
- view
- returns (address);
-function getCurvePriceUsdc(address curveLpTokenAddress)
- public
- view
- returns (uint256);
-```
-
-##### IronBank
-
-```javascript
-function isIronBankMarket(address tokenAddress) public view returns (bool);
-
-function getIronBankMarkets() public view returns (address[] memory);
-
-function getIronBankMarketPriceUsdc(address tokenAddress)
- public
- view
- returns (uint256);
-```
-
-### Lens
-
-#### Methods
-
-##### addAdapter
-
-Add a registry adapter. The registry adapter must conform to the standardized registry adapter interface.
-
-```javascript
-function addAdapter(address adapterAddress) public onlyManager;
-```
-
-`adapterAddress` Address of the adapter to add
-
-###### Solidity
-
-```solidity
-Lens lens = Lens(0x9b8b9F6146B29CC32208f42b995E70F0Eb2807F3);
-address adapterAddress = 0xe11ba472F74869176652C35D30dB89854b5ae84D;
-lens.addAdapter(adapterAddress);
-```
-
-##### removeAdapter
-
-Remove a registry adapter.
-
-```javascript
-function removeAdapter(address adapterAddress) public onlyManager;
-```
-
-`adapterAddress` Address of the adapter to remove
-
-###### Solidity
-
-```solidity
-Lens lens = Lens(0x9b8b9F6146B29CC32208f42b995E70F0Eb2807F3);
-address adapterAddress = 0xe11ba472F74869176652C35D30dB89854b5ae84D;
-lens.removeAdapter(adapterAddress);
-```
-
-##### adapters
-
-Fetch a list of registry adapter addresses.
-
-```javascript
-function adapters() external view returns (address[] memory);
-```
-
-###### Solidity
-
-```javascript
-Lens lens = Lens(0x9b8b9F6146B29CC32208f42b995E70F0Eb2807F3);
-address[] memory = lens.adapters();
-```
-
-###### Example Response
-
-```solidity
-['0xE14d13d8B3b85aF791b2AADD661cDBd5E6097Db1',
- '0xdCD90C7f6324cfa40d7169ef80b12031770B4325',
- '0x986b4AFF588a109c09B50A03f42E4110E29D353F',
- '0xcB550A6D4C8e3517A939BC79d0c7093eb7cF56B5']
-```
-
-##### assetsFromAdapter
-
-```javascript
-function assetsFromAdapter(RegistryAdapter registryAdapterAddress)
- external
- view
- returns (RegistryAdapter.Asset[] memory)
-```
-
-See: [registryAdapter.assets](#assets)
-
-##### assets
-
-Fetch all assets for all supported protocols.
-
-```javascript
-function assets()
- external
- view
- returns (RegistryAdapter.Asset[] memory)
-```
-
-See: [registryAdapter.assets](#assets)
-
-##### positionsFromAdapter
-
-Fetch positions for an account for a specific adapter.
-
-```javascript
-function positionsFromAdapter(
- address account,
- RegistryAdapter registryAdapterAddress
- ) external view returns (RegistryAdapter.Position[] memory)
-```
-
-See: [registryAdapter.positionsOf](#positionof)
-
-##### positionsOf
-
-Fetch all positions for an account within the ecosystem.
-
-```javascript
-function positionsOf(address account)
- external
- view
- returns (RegistryAdapter.Position[] memory)
-```
-
-See: [registryAdapter.positionsOf](#positionof)
-
-##### assetsLength
-
-```javascript
-function assetsLength() public view returns (uint256);
-```
-
-Get the total number of assets for all Yearn family protocols
-See: [registryAdapter.assetsLength](#assetslength)
-
-##### assetsAddresses
-
-```javascript
-function assetsAddresses() public view returns (address[] memory);
-```
-
-Get all addresses for all Yearn family assets
-See: [registryAdapter.assetsAddresses](#assetsaddresses)
-
-##### allowances
-
-Batch fetch allowances given an owner, tokens and spender. This is a helper utility for fetching large amounts of token allowances for a specific set of contracts
-
-```solidity
- function allowances(
- address owner,
- address[] memory tokens,
- address[] memory spenders
- ) external view returns (uint256[] memory)
-```
diff --git a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-sdk/yearn-stack.md b/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-sdk/yearn-stack.md
deleted file mode 100644
index 2f3264444f..0000000000
--- a/docs/developers/smart-contracts/deprecated/V2/version-0.4.3/yearn-sdk/yearn-stack.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# Yearn Stack + FE Features
-
-Yearn SDK integrates several components, both onchain and offchain.
-
-## Backend stack
-
-
-
-
-
-### Onchain
-
-- 🔍 Yearn Lens
- - Oracle
- - Helpers
- - Adapters
- - Vaults V1
- - Vaults V2
- - Iron Bank
-
-### On IPFS
-
-
-
-
-
-- Yearn Metadata is a lightweight storage for all the stuff that would have been hardcoded in v2 frontend, including but not limited to:
- - custom messages for deposits / withdrawals
- - custom copywriting for special assets
- - strategy descriptions / diagrams
- - disabling asset interactions
-- Yearn Frontend
-
-### Offchain
-
-- Yearn Exporter: stores (and displays) stats about yearn assets, exposing:
- - historical TVL
- - historical APY
-- Yearn Subgraph: stores all historical data for users
-- Zapper Integration
-
-## Backend features
-
-### Resilience powered by onchain data and IPFS storage
-
-- Critical data (assets, positions, vault deprecations) will be fetched exclusively from the chain / IPFS
- - maximizing uptime
- - reducing reliance on other services
-- Historical TVL, historical APY and other non critical data will be stored offchain and fetched dinamically.
-
-#### Onchain assets and positions
-
-- Lens does what the old offchain API does, but directly onchain. This will speed up the fetching time and greatly reduce our reliance on scheduled jobs in servers.
-
-#### IPFS CI/CD for frontend and metadata
-
-- Frontend and hardcoded values will be stored in IPFS utilizing a similar system to the one [introduced](https://uniswap.org/blog/ipfs-uniswap-interface/) by Uniswap.
-
-### Historical APY and TVL
-
-- Yearn Exporter provides a simple backend solution for storing real-time stats from yearn products.
-- Metrics are stored in a timeseries database and will be exposed by an api, accessible by SDK and third-party.
-
-### SDK, aggregator of many datasources
-
-- SDK will provide a simple interface for all integrators, including ourselves.
-- Read methods will seamlessly integrate with all datasources, while keeping coherent datastructures.
-- Write methods talk directly to assets onchain. Execution of write transactions will trigger refresh events so data freshness of frontend (or other integration platforms) will still be preserved.
-
-### Historical User Earnings
-
-- Yearn Subgraph leverages thegraph to store historical user data that can be aggregated to display historical earnings.
-
-### Metadata
-
-- New way to store all the information that would generally be hard coded directly in the frontend.
-- Data is now encoded in predefined schemas that are checked at every change.
-
-#### Strategy descriptions
-
-We can store Strategy information directly on IPFS so they can be then be queried and rendered the frontend.
-
-Example: [Idle Finance Reinvest](https://meta.yearn.network/strategies/1/0x01b54c320d6B3057377cbc71d953d1BBa84df44e)
-
-```json
-{
- "$schema":"strategy",
- "name":"Idle Finance Reinvest",
- "description":"Supplies {{token}} to [Idle Finance](https://idle.finance) to earn IDLE and COMP. Earned tokens are harvested, sold for more {{token}} which is deposited back into the strategy.",
- "protocols":["IdleFinance"]
-}
-```
-
-#### Assets management
-
-We can store Asset informations so in critical situations we can toggle interactions and add custom messages.
-
-Example: [Curve EURS](https://meta.yearn.network/vaults/1/0x25212Df29073FfFA7A67399AcEfC2dd75a831A1A)
-
-```json
-{
- "$schema": "vault",
- "comment": "Curve EURS",
- "hideAlways": false,
- "depositsDisabled": false,
- "withdrawalsDisabled": false,
- "order": 18,
- "migrationAvailable": false,
- "allowZapIn": true,
- "allowZapOut": true,
- "retired": false,
- "displayName": "Curve EURS"
-}
-```
-
-
-### Frontend stack
-
-
-
-
-
-
-### Frontend Features
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/BaseStrategy.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/BaseStrategy.md
deleted file mode 100644
index 040ebedbf2..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/BaseStrategy.md
+++ /dev/null
@@ -1,488 +0,0 @@
-# BaseStrategy.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy/blob/v3.0.2-1/src/BaseStrategy.sol)
-
-**Author:**
-yearn.finance
-
-BaseStrategy implements all of the required functionality to
-seamlessly integrate with the `TokenizedStrategy` implementation contract
-allowing anyone to easily build a fully permissionless ERC-4626 compliant
-Vault by inheriting this contract and overriding three simple functions.
-It utilizes an immutable proxy pattern that allows the BaseStrategy
-to remain simple and small. All standard logic is held within the
-`TokenizedStrategy` and is reused over any n strategies all using the
-`fallback` function to delegatecall the implementation so that strategists
-can only be concerned with writing their strategy specific code.
-This contract should be inherited and the three main abstract methods
-`_deployFunds`, `_freeFunds` and `_harvestAndReport` implemented to adapt
-the Strategy to the particular needs it has to generate yield. There are
-other optional methods that can be implemented to further customize
-the strategy if desired.
-All default storage for the strategy is controlled and updated by the
-`TokenizedStrategy`. The implementation holds a storage struct that
-contains all needed global variables in a manual storage slot. This
-means strategists can feel free to implement their own custom storage
-variables as they need with no concern of collisions. All global variables
-can be viewed within the Strategy by a simple call using the
-`TokenizedStrategy` variable. IE: TokenizedStrategy.globalVariable();.
-
-## State Variables
-
-### tokenizedStrategyAddress
-
-*This is the address of the TokenizedStrategy implementation
-contract that will be used by all strategies to handle the
-accounting, logic, storage etc.
-Any external calls to the that don't hit one of the functions
-defined in this base or the strategy will end up being forwarded
-through the fallback function, which will delegateCall this address.
-This address should be the same for every strategy, never be adjusted
-and always be checked before any integration with the Strategy.*
-
-```solidity
-address public constant tokenizedStrategyAddress = 0x2e234DAe75C793f67A35089C9d99245E1C58470b;
-```
-
-### asset
-
-*Underlying asset the Strategy is earning yield on.
-Stored here for cheap retrievals within the strategy.*
-
-```solidity
-ERC20 internal immutable asset;
-```
-
-### TokenizedStrategy
-
-*This variable is set to address(this) during initialization of each strategy.
-This can be used to retrieve storage data within the strategy
-contract as if it were a linked library.
-i.e. uint256 totalAssets = TokenizedStrategy.totalAssets()
-Using address(this) will mean any calls using this variable will lead
-to a call to itself. Which will hit the fallback function and
-delegateCall that to the actual TokenizedStrategy.*
-
-```solidity
-ITokenizedStrategy internal immutable TokenizedStrategy;
-```
-
-## Functions
-
-### onlySelf
-
-*Used on TokenizedStrategy callback functions to make sure it is post
-a delegateCall from this address to the TokenizedStrategy.*
-
-```solidity
-modifier onlySelf();
-```
-
-### onlyManagement
-
-*Use to assure that the call is coming from the strategies management.*
-
-```solidity
-modifier onlyManagement();
-```
-
-### onlyKeepers
-
-*Use to assure that the call is coming from either the strategies
-management or the keeper.*
-
-```solidity
-modifier onlyKeepers();
-```
-
-### onlyEmergencyAuthorized
-
-*Use to assure that the call is coming from either the strategies
-management or the emergency admin.*
-
-```solidity
-modifier onlyEmergencyAuthorized();
-```
-
-### _onlySelf
-
-*Require that the msg.sender is this address.*
-
-```solidity
-function _onlySelf() internal view;
-```
-
-### constructor
-
-Used to initialize the strategy on deployment.
-This will set the `TokenizedStrategy` variable for easy
-internal view calls to the implementation. As well as
-initializing the default storage variables based on the
-parameters and using the deployer for the permissioned roles.
-
-```solidity
-constructor(address _asset, string memory _name);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|Address of the underlying asset.|
-|`_name`|`string`|Name the strategy will use.|
-
-### _deployFunds
-
-*Can deploy up to '_amount' of 'asset' in the yield source.
-This function is called at the end of a `deposit` or `mint`
-call. Meaning that unless a whitelist is implemented it will
-be entirely permissionless and thus can be sandwiched or otherwise
-manipulated.*
-
-```solidity
-function _deployFunds(uint256 _amount) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_amount`|`uint256`|The amount of 'asset' that the strategy can attempt to deposit in the yield source.|
-
-### _freeFunds
-
-*Should attempt to free the '_amount' of 'asset'.
-NOTE: The amount of 'asset' that is already loose has already
-been accounted for.
-This function is called during `withdraw` and `redeem` calls.
-Meaning that unless a whitelist is implemented it will be
-entirely permissionless and thus can be sandwiched or otherwise
-manipulated.
-Should not rely on asset.balanceOf(address(this)) calls other than
-for diff accounting purposes.
-Any difference between `_amount` and what is actually freed will be
-counted as a loss and passed on to the withdrawer. This means
-care should be taken in times of illiquidity. It may be better to revert
-if withdraws are simply illiquid so not to realize incorrect losses.*
-
-```solidity
-function _freeFunds(uint256 _amount) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_amount`|`uint256`||
-
-### _harvestAndReport
-
-*Internal function to harvest all rewards, redeploy any idle
-funds and return an accurate accounting of all funds currently
-held by the Strategy.
-This should do any needed harvesting, rewards selling, accrual,
-redepositing etc. to get the most accurate view of current assets.
-NOTE: All applicable assets including loose assets should be
-accounted for in this function.
-Care should be taken when relying on oracles or swap values rather
-than actual amounts as all Strategy profit/loss accounting will
-be done based on this returned value.
-This can still be called post a shutdown, a strategist can check
-`TokenizedStrategy.isShutdown()` to decide if funds should be
-redeployed or simply realize any profits/losses.*
-
-```solidity
-function _harvestAndReport() internal virtual returns (uint256 _totalAssets);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_totalAssets`|`uint256`|A trusted and accurate account for the total amount of 'asset' the strategy currently holds including idle funds.|
-
-### _tend
-
-*Optional function for strategist to override that can
-be called in between reports.
-If '_tend' is used tendTrigger() will also need to be overridden.
-This call can only be called by a permissioned role so may be
-through protected relays.
-This can be used to harvest and compound rewards, deposit idle funds,
-perform needed position maintenance or anything else that doesn't need
-a full report for.
-EX: A strategy that can not deposit funds without getting
-sandwiched can use the tend when a certain threshold
-of idle to totalAssets has been reached.
-This will have no effect on PPS of the strategy till report() is called.*
-
-```solidity
-function _tend(uint256 _totalIdle) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_totalIdle`|`uint256`|The current amount of idle funds that are available to deploy.|
-
-### _tendTrigger
-
-*Optional trigger to override if tend() will be used by the strategy.
-This must be implemented if the strategy hopes to invoke _tend().*
-
-```solidity
-function _tendTrigger() internal view virtual returns (bool);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Should return true if tend() should be called by keeper or false if not.|
-
-### tendTrigger
-
-Returns if tend() should be called by a keeper.
-
-```solidity
-function tendTrigger() external view virtual returns (bool, bytes memory);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Should return true if tend() should be called by keeper or false if not.|
-|``|`bytes`|. Calldata for the tend call.|
-
-### availableDepositLimit
-
-Gets the max amount of `asset` that an address can deposit.
-
-*Defaults to an unlimited amount for any address. But can
-be overridden by strategists.
-This function will be called before any deposit or mints to enforce
-any limits desired by the strategist. This can be used for either a
-traditional deposit limit or for implementing a whitelist etc.
-EX:
-if(isAllowed[_owner]) return super.availableDepositLimit(_owner);
-This does not need to take into account any conversion rates
-from shares to assets. But should know that any non max uint256
-amounts may be converted to shares. So it is recommended to keep
-custom amounts low enough as not to cause overflow when multiplied
-by `totalSupply`.*
-
-```solidity
-function availableDepositLimit(address) public view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`||
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The available amount the `_owner` can deposit in terms of `asset`|
-
-### availableWithdrawLimit
-
-Gets the max amount of `asset` that can be withdrawn.
-
-*Defaults to an unlimited amount for any address. But can
-be overridden by strategists.
-This function will be called before any withdraw or redeem to enforce
-any limits desired by the strategist. This can be used for illiquid
-or sandwichable strategies. It should never be lower than `totalIdle`.
-EX:
-return TokenIzedStrategy.totalIdle();
-This does not need to take into account the `_owner`'s share balance
-or conversion rates from shares to assets.*
-
-```solidity
-function availableWithdrawLimit(address) public view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`||
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The available amount that can be withdrawn in terms of `asset`|
-
-### _emergencyWithdraw
-
-*Optional function for a strategist to override that will
-allow management to manually withdraw deployed funds from the
-yield source if a strategy is shutdown.
-This should attempt to free `_amount`, noting that `_amount` may
-be more than is currently deployed.
-NOTE: This will not realize any profits or losses. A separate
-`report` will be needed in order to record any profit/loss. If
-a report may need to be called after a shutdown it is important
-to check if the strategy is shutdown during [_harvestAndReport](#_harvestandreport)
-so that it does not simply re-deploy all funds that had been freed.
-
-```markdown title="Example"
-if(freeAsset > 0 && !TokenizedStrategy.isShutdown()) {
-depositFunds...
-}
-```
-
-*
-
-```solidity
-function _emergencyWithdraw(uint256 _amount) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_amount`|`uint256`|The amount of asset to attempt to free.|
-
-### deployFunds
-
-Can deploy up to '_amount' of 'asset' in yield source.
-
-*Callback for the TokenizedStrategy to call during a `deposit`
-or `mint` to tell the strategy it can deploy funds.
-Since this can only be called after a `deposit` or `mint`
-delegateCall to the TokenizedStrategy msg.sender == address(this).
-Unless a whitelist is implemented this will be entirely permissionless
-and thus can be sandwiched or otherwise manipulated.*
-
-```solidity
-function deployFunds(uint256 _amount) external virtual onlySelf;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_amount`|`uint256`|The amount of 'asset' that the strategy can attempt to deposit in the yield source.|
-
-### freeFunds
-
-Should attempt to free the '_amount' of 'asset'.
-
-*Callback for the TokenizedStrategy to call during a withdraw
-or redeem to free the needed funds to service the withdraw.
-This can only be called after a 'withdraw' or 'redeem' delegateCall
-to the TokenizedStrategy so msg.sender == address(this).*
-
-```solidity
-function freeFunds(uint256 _amount) external virtual onlySelf;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_amount`|`uint256`|The amount of 'asset' that the strategy should attempt to free up.|
-
-### harvestAndReport
-
-Returns the accurate amount of all funds currently
-held by the Strategy.
-
-*Callback for the TokenizedStrategy to call during a report to
-get an accurate accounting of assets the strategy controls.
-This can only be called after a report() delegateCall to the
-TokenizedStrategy so msg.sender == address(this).*
-
-```solidity
-function harvestAndReport() external virtual onlySelf returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. A trusted and accurate account for the total amount of 'asset' the strategy currently holds including idle funds.|
-
-### tendThis
-
-Will call the internal '_tend' when a keeper tends the strategy.
-
-*Callback for the TokenizedStrategy to initiate a _tend call in the strategy.
-This can only be called after a tend() delegateCall to the TokenizedStrategy
-so msg.sender == address(this).
-We name the function `tendThis` so that `tend` calls are forwarded to
-the TokenizedStrategy.*
-
-```solidity
-function tendThis(uint256 _totalIdle) external virtual onlySelf;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_totalIdle`|`uint256`|The amount of current idle funds that can be deployed during the tend|
-
-### shutdownWithdraw
-
-Will call the internal '_emergencyWithdraw' function.
-
-*Callback for the TokenizedStrategy during an emergency withdraw.
-This can only be called after a emergencyWithdraw() delegateCall to
-the TokenizedStrategy so msg.sender == address(this).
-We name the function `shutdownWithdraw` so that `emergencyWithdraw`
-calls are forwarded to the TokenizedStrategy.*
-
-```solidity
-function shutdownWithdraw(uint256 _amount) external virtual onlySelf;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_amount`|`uint256`|The amount of asset to attempt to free.|
-
-### _delegateCall
-
-*Function used to delegate call the TokenizedStrategy with
-certain `_calldata` and return any return values.
-This is used to setup the initial storage of the strategy, and
-can be used by strategist to forward any other call to the
-TokenizedStrategy implementation.*
-
-```solidity
-function _delegateCall(bytes memory _calldata) internal returns (bytes memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_calldata`|`bytes`|The abi encoded calldata to use in delegatecall.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bytes`|. The return value if the call was successful in bytes.|
-
-### fallback
-
-*Execute a function on the TokenizedStrategy and return any value.
-This fallback function will be executed when any of the standard functions
-defined in the TokenizedStrategy are called since they wont be defined in
-this contract.
-It will delegatecall the TokenizedStrategy implementation with the exact
-calldata and return any relevant values.*
-
-```solidity
-fallback() external;
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/TokenizedStrategy.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/TokenizedStrategy.md
deleted file mode 100644
index a63b0d8a4e..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/TokenizedStrategy.md
+++ /dev/null
@@ -1,1687 +0,0 @@
-# TokenizedStrategy.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy/blob/v3.0.2-1/src/TokenizedStrategy.sol)
-
-**Author:**
-yearn.finance
-
-This TokenizedStrategy can be used by anyone wishing to easily build
-and deploy their own custom ERC4626 compliant single strategy Vault.
-The TokenizedStrategy contract is meant to be used as the proxy
-implementation contract that will handle all logic, storage and
-management for a custom strategy that inherits the `BaseStrategy`.
-Any function calls to the strategy that are not defined within that
-strategy will be forwarded through a delegateCall to this contract.
-A strategist only needs to override a few simple functions that are
-focused entirely on the strategy specific needs to easily and cheaply
-deploy their own permissionless 4626 compliant vault.
-
-## State Variables
-
-### API_VERSION
-
-API version this TokenizedStrategy implements.
-
-```solidity
-string internal constant API_VERSION = "3.0.2";
-```
-
-### MAX_FEE
-
-Maximum in Basis Points the Performance Fee can be set to.
-
-```solidity
-uint16 public constant MAX_FEE = 5_000;
-```
-
-### BASE_STRATEGY_STORAGE
-
-*Custom storage slot that will be used to store the
-`StrategyData` struct that holds each strategies
-specific storage variables.
-Any storage updates done by the TokenizedStrategy actually update
-the storage of the calling contract. This variable points
-to the specific location that will be used to store the
-struct that holds all that data.
-We use a custom string in order to get a random
-storage slot that will allow for strategists to use any
-amount of storage in their strategy without worrying
-about collisions.*
-
-```solidity
-bytes32 internal constant BASE_STRATEGY_STORAGE = bytes32(uint256(keccak256("yearn.base.strategy.storage")) - 1);
-```
-
-### FACTORY
-
-Address of the previously deployed Vault factory that the
-
-```solidity
-address public immutable FACTORY;
-```
-
-## Functions
-
-### onlyManagement
-
-*Require that the call is coming from the strategies management.*
-
-```solidity
-modifier onlyManagement();
-```
-
-### onlyKeepers
-
-*Require that the call is coming from either the strategies
-management or the keeper.*
-
-```solidity
-modifier onlyKeepers();
-```
-
-### onlyEmergencyAuthorized
-
-*Require that the call is coming from either the strategies
-management or the emergencyAdmin.*
-
-```solidity
-modifier onlyEmergencyAuthorized();
-```
-
-### nonReentrant
-
-*Prevents a contract from calling itself, directly or indirectly.
-Placed over all state changing functions for increased safety.*
-
-```solidity
-modifier nonReentrant();
-```
-
-### requireManagement
-
-Require a caller is `management`.
-
-*Is left public so that it can be used by the Strategy.
-When the Strategy calls this the msg.sender would be the
-address of the strategy so we need to specify the sender.*
-
-```solidity
-function requireManagement(address _sender) public view;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_sender`|`address`|The original msg.sender.|
-
-### requireKeeperOrManagement
-
-Require a caller is the `keeper` or `management`.
-
-*Is left public so that it can be used by the Strategy.
-When the Strategy calls this the msg.sender would be the
-address of the strategy so we need to specify the sender.*
-
-```solidity
-function requireKeeperOrManagement(address _sender) public view;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_sender`|`address`|The original msg.sender.|
-
-### requireEmergencyAuthorized
-
-Require a caller is the `management` or `emergencyAdmin`.
-
-*Is left public so that it can be used by the Strategy.
-When the Strategy calls this the msg.sender would be the
-address of the strategy so we need to specify the sender.*
-
-```solidity
-function requireEmergencyAuthorized(address _sender) public view;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_sender`|`address`|The original msg.sender.|
-
-### _strategyStorage
-
-*will return the actual storage slot where the strategy
-specific `StrategyData` struct is stored for both read
-and write operations.
-This loads just the slot location, not the full struct
-so it can be used in a gas efficient manner.*
-
-```solidity
-function _strategyStorage() internal pure returns (StrategyData storage S);
-```
-
-### initialize
-
-Used to initialize storage for a newly deployed strategy.
-
-*This should be called atomically whenever a new strategy is
-deployed and can only be called once for each strategy.
-This will set all the default storage that must be set for a
-strategy to function. Any changes can be made post deployment
-through external calls from `management`.
-The function will also emit an event that offchain indexers can
-look for to track any new deployments using this TokenizedStrategy.*
-
-```solidity
-function initialize(
- address _asset,
- string memory _name,
- address _management,
- address _performanceFeeRecipient,
- address _keeper
-) external;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|Address of the underlying asset.|
-|`_name`|`string`|Name the strategy will use.|
-|`_management`|`address`|Address to set as the strategies `management`.|
-|`_performanceFeeRecipient`|`address`|Address to receive performance fees.|
-|`_keeper`|`address`|Address to set as strategies `keeper`.|
-
-### deposit
-
-Mints `shares` of strategy shares to `receiver` by
-depositing exactly `assets` of underlying tokens.
-
-```solidity
-function deposit(uint256 assets, address receiver) external nonReentrant returns (uint256 shares);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`assets`|`uint256`|The amount of underlying to deposit in.|
-|`receiver`|`address`|The address to receive the `shares`.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The actual amount of shares issued.|
-
-### mint
-
-Mints exactly `shares` of strategy shares to
-`receiver` by depositing `assets` of underlying tokens.
-
-```solidity
-function mint(uint256 shares, address receiver) external nonReentrant returns (uint256 assets);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The amount of strategy shares mint.|
-|`receiver`|`address`|The address to receive the `shares`.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`assets`|`uint256`|The actual amount of asset deposited.|
-
-### withdraw
-
-Withdraws exactly `assets` from `owners` shares and sends
-the underlying tokens to `receiver`.
-
-*This will default to not allowing any loss to be taken.*
-
-```solidity
-function withdraw(uint256 assets, address receiver, address owner) external returns (uint256 shares);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`assets`|`uint256`|The amount of underlying to withdraw.|
-|`receiver`|`address`|The address to receive `assets`.|
-|`owner`|`address`|The address whose shares are burnt.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The actual amount of shares burnt.|
-
-### withdraw
-
-Withdraws `assets` from `owners` shares and sends
-the underlying tokens to `receiver`.
-
-*This includes an added parameter to allow for losses.*
-
-```solidity
-function withdraw(uint256 assets, address receiver, address owner, uint256 maxLoss)
- public
- nonReentrant
- returns (uint256 shares);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`assets`|`uint256`|The amount of underlying to withdraw.|
-|`receiver`|`address`|The address to receive `assets`.|
-|`owner`|`address`|The address whose shares are burnt.|
-|`maxLoss`|`uint256`|The amount of acceptable loss in Basis points.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The actual amount of shares burnt.|
-
-### redeem
-
-Redeems exactly `shares` from `owner` and
-sends `assets` of underlying tokens to `receiver`.
-
-*This will default to allowing any loss passed to be realized.*
-
-```solidity
-function redeem(uint256 shares, address receiver, address owner) external returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The amount of shares burnt.|
-|`receiver`|`address`|The address to receive `assets`.|
-|`owner`|`address`|The address whose shares are burnt.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|assets The actual amount of underlying withdrawn.|
-
-### redeem
-
-Redeems exactly `shares` from `owner` and
-sends `assets` of underlying tokens to `receiver`.
-
-*This includes an added parameter to allow for losses.*
-
-```solidity
-function redeem(uint256 shares, address receiver, address owner, uint256 maxLoss)
- public
- nonReentrant
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The amount of shares burnt.|
-|`receiver`|`address`|The address to receive `assets`.|
-|`owner`|`address`|The address whose shares are burnt.|
-|`maxLoss`|`uint256`|The amount of acceptable loss in Basis points.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The actual amount of underlying withdrawn.|
-
-### totalAssets
-
-Get the total amount of assets this strategy holds
-as of the last report.
-We manually track `totalAssets` to avoid any PPS manipulation.
-
-```solidity
-function totalAssets() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. Total assets the strategy holds.|
-
-### totalSupply
-
-Get the current supply of the strategies shares.
-Locked shares issued to the strategy from profits are not
-counted towards the full supply until they are unlocked.
-As more shares slowly unlock the totalSupply will decrease
-causing the PPS of the strategy to increase.
-
-```solidity
-function totalSupply() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. Total amount of shares outstanding.|
-
-### convertToShares
-
-The amount of shares that the strategy would
-exchange for the amount of assets provided, in an
-ideal scenario where all the conditions are met.
-
-```solidity
-function convertToShares(uint256 assets) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`assets`|`uint256`|The amount of underlying.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. Expected shares that `assets` represents.|
-
-### convertToAssets
-
-The amount of assets that the strategy would
-exchange for the amount of shares provided, in an
-ideal scenario where all the conditions are met.
-
-```solidity
-function convertToAssets(uint256 shares) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The amount of the strategies shares.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. Expected amount of `asset` the shares represents.|
-
-### previewDeposit
-
-Allows an onchain or offchain user to simulate
-the effects of their deposit at the current block, given
-current onchain conditions.
-
-*This will round down.*
-
-```solidity
-function previewDeposit(uint256 assets) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`assets`|`uint256`|The amount of `asset` to deposits.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. Expected shares that would be issued.|
-
-### previewMint
-
-Allows an onchain or offchain user to simulate
-the effects of their mint at the current block, given
-current onchain conditions.
-
-*This is used instead of convertToAssets so that it can
-round up for safer mints.*
-
-```solidity
-function previewMint(uint256 shares) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The amount of shares to mint.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The needed amount of `asset` for the mint.|
-
-### previewWithdraw
-
-Allows an onchain or offchain user to simulate
-the effects of their withdrawal at the current block,
-given current onchain conditions.
-
-*This is used instead of convertToShares so that it can
-round up for safer withdraws.*
-
-```solidity
-function previewWithdraw(uint256 assets) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`assets`|`uint256`|The amount of `asset` that would be withdrawn.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The amount of shares that would be burnt.|
-
-### previewRedeem
-
-Allows an onchain or offchain user to simulate
-the effects of their redemption at the current block,
-given current onchain conditions.
-
-*This will round down.*
-
-```solidity
-function previewRedeem(uint256 shares) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`shares`|`uint256`|The amount of shares that would be redeemed.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The amount of `asset` that would be returned.|
-
-### maxDeposit
-
-Total number of underlying assets that can
-be deposited by `_owner` into the strategy, where `owner`
-corresponds to the receiver of a [deposit](#deposit) call.
-
-```solidity
-function maxDeposit(address owner) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`owner`|`address`|The address depositing.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The max that `owner` can deposit in `asset`.|
-
-### maxMint
-
-Total number of shares that can be minted by `owner`
-into the strategy, where `_owner` corresponds to the receiver
-of a [mint](#mint) call.
-
-```solidity
-function maxMint(address owner) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`owner`|`address`|The address minting.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|_maxMint The max that `owner` can mint in shares.|
-
-### maxWithdraw
-
-Total number of underlying assets that can be
-withdrawn from the strategy by `owner`, where `owner`
-corresponds to the msg.sender of a [redeem](#redeem) call.
-
-```solidity
-function maxWithdraw(address owner) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`owner`|`address`|The owner of the shares.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|_maxWithdraw Max amount of `asset` that can be withdrawn.|
-
-### maxRedeem
-
-Total number of strategy shares that can be
-redeemed from the strategy by `owner`, where `owner`
-corresponds to the msg.sender of a [redeem](#redeem) call.
-
-```solidity
-function maxRedeem(address owner) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`owner`|`address`|The owner of the shares.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|_maxRedeem Max amount of shares that can be redeemed.|
-
-### _totalAssets
-
-*Internal implementation of [totalAssets](#totalassets).*
-
-```solidity
-function _totalAssets(StrategyData storage S) internal view returns (uint256);
-```
-
-### _totalSupply
-
-*Internal implementation of [totalSupply](#totalsupply).*
-
-```solidity
-function _totalSupply(StrategyData storage S) internal view returns (uint256);
-```
-
-### _convertToShares
-
-*Internal implementation of [convertToShares](#converttoshares).*
-
-```solidity
-function _convertToShares(StrategyData storage S, uint256 assets, Math.Rounding _rounding)
- internal
- view
- returns (uint256);
-```
-
-### _convertToAssets
-
-*Internal implementation of [convertToAssets](#converttoassets).*
-
-```solidity
-function _convertToAssets(StrategyData storage S, uint256 shares, Math.Rounding _rounding)
- internal
- view
- returns (uint256);
-```
-
-### _maxDeposit
-
-*Internal implementation of [maxDeposit](#maxdeposit).*
-
-```solidity
-function _maxDeposit(StrategyData storage S, address owner) internal view returns (uint256);
-```
-
-### _maxMint
-
-*Internal implementation of [maxMint](#maxmint).*
-
-```solidity
-function _maxMint(StrategyData storage S, address owner) internal view returns (uint256 maxMint_);
-```
-
-### _maxWithdraw
-
-*Internal implementation of [maxWithdraw](#maxwithdraw).*
-
-```solidity
-function _maxWithdraw(StrategyData storage S, address owner) internal view returns (uint256 maxWithdraw_);
-```
-
-### _maxRedeem
-
-*Internal implementation of [maxRedeem](#maxredeem).*
-
-```solidity
-function _maxRedeem(StrategyData storage S, address owner) internal view returns (uint256 maxRedeem_);
-```
-
-### _deposit
-
-*Function to be called during [deposit](#deposit) and [mint](#mint).
-This function handles all logic including transfers,
-minting and accounting.
-We do all external calls before updating any internal
-values to prevent view reentrancy issues from the token
-transfers or the _deployFunds() calls.*
-
-```solidity
-function _deposit(StrategyData storage S, address receiver, uint256 assets, uint256 shares) internal;
-```
-
-### _withdraw
-
-*To be called during [redeem](#redeem) and [withdraw](#withdraw).
-This will handle all logic, transfers and accounting
-in order to service the withdraw request.
-If we are not able to withdraw the full amount needed, it will
-be counted as a loss and passed on to the user.*
-
-```solidity
-function _withdraw(
- StrategyData storage S,
- address receiver,
- address owner,
- uint256 assets,
- uint256 shares,
- uint256 maxLoss
-) internal returns (uint256);
-```
-
-### report
-
-Function for keepers to call to harvest and record all
-profits accrued.
-
-*This will account for any gains/losses since the last report
-and charge fees accordingly.
-Any profit over the fees charged will be immediately locked
-so there is no change in PricePerShare. Then slowly unlocked
-over the `maxProfitUnlockTime` each second based on the
-calculated `profitUnlockingRate`.
-In case of a loss it will first attempt to offset the loss
-with any remaining locked shares from the last report in
-order to reduce any negative impact to PPS.
-Will then recalculate the new time to unlock profits over and the
-rate based on a weighted average of any remaining time from the
-last report and the new amount of shares to be locked.*
-
-```solidity
-function report() external nonReentrant onlyKeepers returns (uint256 profit, uint256 loss);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`profit`|`uint256`|The notional amount of gain if any since the last report in terms of `asset`.|
-|`loss`|`uint256`|The notional amount of loss if any since the last report in terms of `asset`.|
-
-### unlockedShares
-
-Get how many shares have been unlocked since last report.
-
-```solidity
-function unlockedShares() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The amount of shares that have unlocked.|
-
-### _unlockedShares
-
-*To determine how many of the shares that were locked during the last
-report have since unlocked.
-If the `fullProfitUnlockDate` has passed the full strategy's balance will
-count as unlocked.*
-
-```solidity
-function _unlockedShares(StrategyData storage S) internal view returns (uint256 unlocked);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`unlocked`|`uint256`|The amount of shares that have unlocked.|
-
-### tend
-
-For a 'keeper' to 'tend' the strategy if a custom
-tendTrigger() is implemented.
-
-*Both 'tendTrigger' and '_tend' will need to be overridden
-for this to be used.
-This will callback the internal '_tend' call in the BaseStrategy
-with the total current amount available to the strategy to deploy.
-This is a permissioned function so if desired it could
-be used for illiquid or manipulatable strategies to compound
-rewards, perform maintenance or deposit/withdraw funds.
-This will not cause any change in PPS. Total assets will
-be the same before and after.
-A report() call will be needed to record any profits or losses.*
-
-```solidity
-function tend() external nonReentrant onlyKeepers;
-```
-
-### shutdownStrategy
-
-Used to shutdown the strategy preventing any further deposits.
-
-*Can only be called by the current `management` or `emergencyAdmin`.
-This will stop any new [deposit](#deposit) or [mint](#mint) calls but will
-not prevent [withdraw](#withdraw) or [redeem](#redeem). It will also still allow for
-[tend](#tend) and [report](#report) so that management can report any last losses
-in an emergency as well as provide any maintenance to allow for full
-withdraw.
-This is a one way switch and can never be set back once shutdown.*
-
-```solidity
-function shutdownStrategy() external onlyEmergencyAuthorized;
-```
-
-### emergencyWithdraw
-
-To manually withdraw funds from the yield source after a
-strategy has been shutdown.
-
-*This can only be called post [shutdownStrategy](#shutdownstrategy).
-This will never cause a change in PPS. Total assets will
-be the same before and after.
-A strategist will need to override the `_emergencyWithdraw` function
-in their strategy for this to work.*
-
-```solidity
-function emergencyWithdraw(uint256 amount) external nonReentrant onlyEmergencyAuthorized;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`amount`|`uint256`|The amount of asset to attempt to free.|
-
-### asset
-
-Get the underlying asset for the strategy.
-
-```solidity
-function asset() external view returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. The underlying asset.|
-
-### apiVersion
-
-Get the API version for this TokenizedStrategy.
-
-```solidity
-function apiVersion() external pure returns (string memory);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`string`|. The API version for this TokenizedStrategy|
-
-### management
-
-Get the current address that controls the strategy.
-
-```solidity
-function management() external view returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. Address of management|
-
-### pendingManagement
-
-Get the current pending management address if any.
-
-```solidity
-function pendingManagement() external view returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. Address of pendingManagement|
-
-### keeper
-
-Get the current address that can call tend and report.
-
-```solidity
-function keeper() external view returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. Address of the keeper|
-
-### emergencyAdmin
-
-Get the current address that can shutdown and emergency withdraw.
-
-```solidity
-function emergencyAdmin() external view returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. Address of the emergencyAdmin|
-
-### performanceFee
-
-Get the current performance fee charged on profits.
-denominated in Basis Points where 10_000 == 100%
-
-```solidity
-function performanceFee() external view returns (uint16);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint16`|. Current performance fee.|
-
-### performanceFeeRecipient
-
-Get the current address that receives the performance fees.
-
-```solidity
-function performanceFeeRecipient() external view returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. Address of performanceFeeRecipient|
-
-### fullProfitUnlockDate
-
-Gets the timestamp at which all profits will be unlocked.
-
-```solidity
-function fullProfitUnlockDate() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The full profit unlocking timestamp|
-
-### profitUnlockingRate
-
-The per second rate at which profits are unlocking.
-
-*This is denominated in EXTENDED_BPS decimals.*
-
-```solidity
-function profitUnlockingRate() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The current profit unlocking rate.|
-
-### profitMaxUnlockTime
-
-Gets the current time profits are set to unlock over.
-
-```solidity
-function profitMaxUnlockTime() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The current profit max unlock time.|
-
-### lastReport
-
-The timestamp of the last time protocol fees were charged.
-
-```solidity
-function lastReport() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The last report.|
-
-### pricePerShare
-
-Get the price per share.
-
-*This value offers limited precision. Integrations that require
-exact precision should use convertToAssets or convertToShares instead.*
-
-```solidity
-function pricePerShare() external view returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The price per share.|
-
-### isShutdown
-
-To check if the strategy has been shutdown.
-
-```solidity
-function isShutdown() external view returns (bool);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Whether or not the strategy is shutdown.|
-
-### setPendingManagement
-
-Step one of two to set a new address to be in charge of the strategy.
-
-*Can only be called by the current `management`. The address is
-set to pending management and will then have to call [acceptManagement](#acceptmanagement)
-in order for the 'management' to officially change.
-Cannot set `management` to address(0).*
-
-```solidity
-function setPendingManagement(address _management) external onlyManagement;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_management`|`address`|New address to set `pendingManagement` to.|
-
-### acceptManagement
-
-Step two of two to set a new 'management' of the strategy.
-
-*Can only be called by the current `pendingManagement`.*
-
-```solidity
-function acceptManagement() external;
-```
-
-### setKeeper
-
-Sets a new address to be in charge of tend and reports.
-
-*Can only be called by the current `management`.*
-
-```solidity
-function setKeeper(address _keeper) external onlyManagement;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_keeper`|`address`|New address to set `keeper` to.|
-
-### setEmergencyAdmin
-
-Sets a new address to be able to shutdown the strategy.
-
-*Can only be called by the current `management`.*
-
-```solidity
-function setEmergencyAdmin(address _emergencyAdmin) external onlyManagement;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_emergencyAdmin`|`address`|New address to set `emergencyAdmin` to.|
-
-### setPerformanceFee
-
-Sets the performance fee to be charged on reported gains.
-
-*Can only be called by the current `management`.
-Denominated in Basis Points. So 100% == 10_000.
-Cannot set greater than to MAX_FEE.*
-
-```solidity
-function setPerformanceFee(uint16 _performanceFee) external onlyManagement;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_performanceFee`|`uint16`|New performance fee.|
-
-### setPerformanceFeeRecipient
-
-Sets a new address to receive performance fees.
-
-*Can only be called by the current `management`.
-Cannot set to address(0).*
-
-```solidity
-function setPerformanceFeeRecipient(address _performanceFeeRecipient) external onlyManagement;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_performanceFeeRecipient`|`address`|New address to set `management` to.|
-
-### setProfitMaxUnlockTime
-
-Sets the time for profits to be unlocked over.
-
-*Can only be called by the current `management`.
-Denominated in seconds and cannot be greater than 1 year.
-NOTE: Setting to 0 will cause all currently locked profit
-to be unlocked instantly and should be done with care.
-`profitMaxUnlockTime` is stored as a uint32 for packing but can
-be passed in as uint256 for simplicity.*
-
-```solidity
-function setProfitMaxUnlockTime(uint256 _profitMaxUnlockTime) external onlyManagement;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_profitMaxUnlockTime`|`uint256`|New `profitMaxUnlockTime`.|
-
-### name
-
-Returns the name of the token.
-
-```solidity
-function name() external view returns (string memory);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`string`|. The name the strategy is using for its token.|
-
-### symbol
-
-Returns the symbol of the strategies token.
-
-*Will be 'ys + asset symbol'.*
-
-```solidity
-function symbol() external view returns (string memory);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`string`|. The symbol the strategy is using for its tokens.|
-
-### decimals
-
-Returns the number of decimals used to get its user representation.
-
-```solidity
-function decimals() external view returns (uint8);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint8`|. The decimals used for the strategy and `asset`.|
-
-### balanceOf
-
-Returns the current balance for a given '_account'.
-
-*If the '_account` is the strategy then this will subtract
-the amount of shares that have been unlocked since the last profit first.*
-
-```solidity
-function balanceOf(address account) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`account`|`address`|the address to return the balance for.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The current balance in y shares of the '_account'.|
-
-### _balanceOf
-
-*Internal implementation of [balanceOf](#balanceof).*
-
-```solidity
-function _balanceOf(StrategyData storage S, address account) internal view returns (uint256);
-```
-
-### transfer
-
-Transfer '_amount` of shares from `msg.sender` to `to`.
-
-*
-
-Requirements:
-
-* `to` cannot be the zero address.
-* `to` cannot be the address of the strategy.
-* the caller must have a balance of at least `_amount`.*
-
-```solidity
-function transfer(address to, uint256 amount) external returns (bool);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`to`|`address`|The address shares will be transferred to.|
-|`amount`|`uint256`|The amount of shares to be transferred from sender.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. a boolean value indicating whether the operation succeeded.|
-
-### allowance
-
-Returns the remaining number of tokens that `spender` will be
-allowed to spend on behalf of `owner` through [transferFrom](#transferfrom). This is
-zero by default.
-This value changes when [approve](#approve) or [transferFrom](#transferfrom) are called.
-
-```solidity
-function allowance(address owner, address spender) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`owner`|`address`|The address who owns the shares.|
-|`spender`|`address`|The address who would be moving the owners shares.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The remaining amount of shares of `owner` that could be moved by `spender`.|
-
-### _allowance
-
-*Internal implementation of [allowance](#allowance).*
-
-```solidity
-function _allowance(StrategyData storage S, address owner, address spender) internal view returns (uint256);
-```
-
-### approve
-
-Sets `amount` as the allowance of `spender` over the caller's tokens.
-
-*
-
-NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
-`transferFrom`. This is semantically equivalent to an infinite approval.
-Requirements:
-
-* `spender` cannot be the zero address.
-IMPORTANT: Beware that changing an allowance with this method brings the risk
-that someone may use both the old and the new allowance by unfortunate
-transaction ordering. One possible solution to mitigate this race
-condition is to first reduce the spender's allowance to 0 and set the
-desired value afterwards:
-https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
-Emits an [Approval](#approval) event.*
-
-```solidity
-function approve(address spender, uint256 amount) external returns (bool);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`spender`|`address`|the address to allow the shares to be moved by.|
-|`amount`|`uint256`|the amount of shares to allow `spender` to move.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. a boolean value indicating whether the operation succeeded.|
-
-### transferFrom
-
-`amount` tokens from `from` to `to` using the
-allowance mechanism. `amount` is then deducted from the caller's
-allowance.
-
-*
-
-Emits an [Approval](#approval) event indicating the updated allowance. This is not
-required by the EIP.
-NOTE: Does not update the allowance if the current allowance
-is the maximum `uint256`.
-Requirements:
-
-* `from` and `to` cannot be the zero address.
-* `to` cannot be the address of the strategy.
-* `from` must have a balance of at least `amount`.
-* the caller must have allowance for ``from``'s tokens of at least
-`amount`.
-Emits a Transfer event.*
-
-```solidity
-function transferFrom(address from, address to, uint256 amount) external returns (bool);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`from`|`address`|the address to be moving shares from.|
-|`to`|`address`|the address to be moving shares to.|
-|`amount`|`uint256`|the quantity of shares to move.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. a boolean value indicating whether the operation succeeded.|
-
-### _transfer
-
-*Moves `amount` of tokens from `from` to `to`.
-This internal function is equivalent to [transfer](#transfer), and can be used to
-e.g. implement automatic token fees, slashing mechanisms, etc.
-Emits a `Transfer` event.
-Requirements:
-
-* `from` cannot be the zero address.
-* `to` cannot be the zero address.
-* `to` cannot be the strategies address
-* `from` must have a balance of at least `amount`.*
-
-```solidity
-function _transfer(StrategyData storage S, address from, address to, uint256 amount) internal;
-```
-
-### _mint
-
-*Creates `amount` tokens and assigns them to `account`, increasing
-the total supply.
-Emits a [Transfer](#transfer) event with `from` set to the zero address.
-Requirements:
-
-* `account` cannot be the zero address.*
-
-```solidity
-function _mint(StrategyData storage S, address account, uint256 amount) internal;
-```
-
-### _burn
-
-*Destroys `amount` tokens from `account`, reducing the
-total supply.
-Emits a [Transfer](#transfer) event with `to` set to the zero address.
-Requirements:
-
-* `account` cannot be the zero address.
-* `account` must have at least `amount` tokens.*
-
-```solidity
-function _burn(StrategyData storage S, address account, uint256 amount) internal;
-```
-
-### _approve
-
-*Sets `amount` as the allowance of `spender` over the `owner` s tokens.
-This internal function is equivalent to `approve`, and can be used to
-e.g. set automatic allowances for certain subsystems, etc.
-Emits an [Approval](#approval) event.
-Requirements:
-
-* `owner` cannot be the zero address.
-* `spender` cannot be the zero address.*
-
-```solidity
-function _approve(StrategyData storage S, address owner, address spender, uint256 amount) internal;
-```
-
-### _spendAllowance
-
-*Updates `owner` s allowance for `spender` based on spent `amount`.
-Does not update the allowance amount in case of infinite allowance.
-Revert if not enough allowance is available.
-Might emit an [Approval](#approval) event.*
-
-```solidity
-function _spendAllowance(StrategyData storage S, address owner, address spender, uint256 amount) internal;
-```
-
-### nonces
-
-Returns the current nonce for `owner`. This value must be
-included whenever a signature is generated for [permit](#permit).
-
-*Every successful call to [permit](#permit) increases ``owner``'s nonce by one. This
-prevents a signature from being used multiple times.*
-
-```solidity
-function nonces(address _owner) external view returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_owner`|`address`|the address of the account to return the nonce for.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. the current nonce for the account.|
-
-### permit
-
-Sets `value` as the allowance of `spender` over ``owner``'s tokens,
-given ``owner``'s signed approval.
-
-*IMPORTANT: The same issues IERC20-approve has related to transaction
-ordering also apply here.
-Emits an Approval event.
-Requirements:
-
-* `spender` cannot be the zero address.
-* `deadline` must be a timestamp in the future.
-* `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
-over the EIP712-formatted function arguments.
-* the signature must use ``owner``'s current nonce (see [`nonces`](#nonces)).
-For more information on the signature format, see https://eips.ethereum.org/EIPS/eip-2612#specification.*
-
-```solidity
-function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
- external;
-```
-
-### DOMAIN_SEPARATOR
-
-Returns the domain separator used in the encoding of the signature
-for [permit](#permit), as defined by `EIP712`.
-
-*This checks that the current chain id is the same as when the contract
-was deployed to prevent replay attacks. If false it will calculate a new
-domain separator based on the new chain id.*
-
-```solidity
-function DOMAIN_SEPARATOR() public view returns (bytes32);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bytes32`|. The domain separator that will be used for any [permit](#permit) calls.|
-
-### _computeDomainSeparator
-
-*Calculates and returns the domain separator to be used in any
-permit functions for the strategies [permit](#permit) calls.
-This will be used at the initialization of each new strategies storage.
-It would then be used in the future in the case of any forks in which
-the current chain id is not the same as the original.*
-
-```solidity
-function _computeDomainSeparator(StrategyData storage S) internal view returns (bytes32);
-```
-
-### constructor
-
-*On contract creation we set `asset` for this contract to address(1).
-This prevents it from ever being initialized in the future.*
-
-```solidity
-constructor(address _factory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_factory`|`address`|Address of the factory of the same version for protocol fees.|
-
-## Events
-
-### StrategyShutdown
-
-Emitted when a strategy is shutdown.
-
-```solidity
-event StrategyShutdown();
-```
-
-### NewTokenizedStrategy
-
-Emitted on the initialization of any new `strategy` that uses `asset`
-with this specific `apiVersion`.
-
-```solidity
-event NewTokenizedStrategy(address indexed strategy, address indexed asset, string apiVersion);
-```
-
-### Reported
-
-Emitted when the strategy reports `profit` or `loss` and
-`performanceFees` and `protocolFees` are paid out.
-
-```solidity
-event Reported(uint256 profit, uint256 loss, uint256 protocolFees, uint256 performanceFees);
-```
-
-### UpdatePerformanceFeeRecipient
-
-Emitted when the 'performanceFeeRecipient' address is
-updated to 'newPerformanceFeeRecipient'.
-
-```solidity
-event UpdatePerformanceFeeRecipient(address indexed newPerformanceFeeRecipient);
-```
-
-### UpdateKeeper
-
-Emitted when the 'keeper' address is updated to 'newKeeper'.
-
-```solidity
-event UpdateKeeper(address indexed newKeeper);
-```
-
-### UpdatePerformanceFee
-
-Emitted when the 'performanceFee' is updated to 'newPerformanceFee'.
-
-```solidity
-event UpdatePerformanceFee(uint16 newPerformanceFee);
-```
-
-### UpdateManagement
-
-Emitted when the 'management' address is updated to 'newManagement'.
-
-```solidity
-event UpdateManagement(address indexed newManagement);
-```
-
-### UpdateEmergencyAdmin
-
-Emitted when the 'emergencyAdmin' address is updated to 'newEmergencyAdmin'.
-
-```solidity
-event UpdateEmergencyAdmin(address indexed newEmergencyAdmin);
-```
-
-### UpdateProfitMaxUnlockTime
-
-Emitted when the 'profitMaxUnlockTime' is updated to 'newProfitMaxUnlockTime'.
-
-```solidity
-event UpdateProfitMaxUnlockTime(uint256 newProfitMaxUnlockTime);
-```
-
-### UpdatePendingManagement
-
-Emitted when the 'pendingManagement' address is updated to 'newPendingManagement'.
-
-```solidity
-event UpdatePendingManagement(address indexed newPendingManagement);
-```
-
-### Approval
-
-Emitted when the allowance of a `spender` for an `owner` is set by
-a call to [approve](#approve). `value` is the new allowance.
-
-```solidity
-event Approval(address indexed owner, address indexed spender, uint256 value);
-```
-
-### Transfer
-
-Emitted when `value` tokens are moved from one account (`from`) to
-another (`to`).
-Note that `value` may be zero.
-
-```solidity
-event Transfer(address indexed from, address indexed to, uint256 value);
-```
-
-### Deposit
-
-Emitted when the `caller` has exchanged `assets` for `shares`,
-and transferred those `shares` to `owner`.
-
-```solidity
-event Deposit(address indexed caller, address indexed owner, uint256 assets, uint256 shares);
-```
-
-### Withdraw
-
-Emitted when the `caller` has exchanged `owner`s `shares` for `assets`,
-and transferred those `assets` to `receiver`.
-
-```solidity
-event Withdraw(address indexed caller, address indexed receiver, address indexed owner, uint256 assets, uint256 shares);
-```
-
-## Structs
-
-### StrategyData
-
-*The struct that will hold all the storage data for each strategy
-that uses this implementation.
-This replaces all state variables for a traditional contract. This
-full struct will be initialized on the creation of the strategy
-and continually updated and read from for the life of the contract.
-We combine all the variables into one struct to limit the amount of
-times the custom storage slots need to be loaded during complex functions.
-Loading the corresponding storage slot for the struct does not
-load any of the contents of the struct into memory. So the size
-will not increase memory related gas usage.*
-
-```solidity
-struct StrategyData {
- ERC20 asset;
- uint8 decimals;
- uint88 INITIAL_CHAIN_ID;
- string name;
- uint256 totalSupply;
- bytes32 INITIAL_DOMAIN_SEPARATOR;
- mapping(address => uint256) nonces;
- mapping(address => uint256) balances;
- mapping(address => mapping(address => uint256)) allowances;
- uint256 totalAssets;
- uint256 profitUnlockingRate;
- uint96 fullProfitUnlockDate;
- address keeper;
- uint32 profitMaxUnlockTime;
- uint16 performanceFee;
- address performanceFeeRecipient;
- uint96 lastReport;
- address management;
- address pendingManagement;
- address emergencyAdmin;
- uint8 entered;
- bool shutdown;
-}
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/VaultFactory.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/VaultFactory.md
deleted file mode 100644
index c131dfa4c3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/VaultFactory.md
+++ /dev/null
@@ -1,188 +0,0 @@
-# VaultFactory.vy
-
-[Git Source](https://github.com/yearn/yearn-vaults-v3/blob/v3.0.2-1/contracts/VaultFactory.vy)
-
-> vyper: `0.3.7`
-> author: `yearn.finance`
-> license: `GNU AGPLv3`
-
-**Yearn Vault Factory**
-
-*This vault Factory can be used by anyone wishing to deploy their own ERC4626 compliant Yearn V3 Vault of the same API version. The factory clones new vaults from its specific `VAULT_ORIGINAL` immutable address set on creation of the factory. The deployments are done through create2 with a specific `salt` that is derived from a combination of the deployer's address, the underlying asset used, as well as the name and symbol specified. Meaning a deployer will not be able to deploy the exact same vault twice and will need to use different name and or symbols for vaults that use the same other parameters such as `asset`. The factory also holds the protocol fee configs for each vault and strategy of its specific `API_VERSION` that determine how much of the fees charged are designated "protocol fees" and sent to the designated `fee_recipient`. The protocol fees work through a revenue share system, where if the vault or strategy decides to charge X amount of total fees during a `report` the protocol fees are a percent of X. The protocol fees will be sent to the designated fee_recipient and then (X - protocol_fees) will be sent to the vault/strategy specific fee recipient.*
-
-## Events
-
-### NewVault
-
-* `vault_address` : address, *indexed*
-* `asset` : address, *indexed*
-
-### UpdateProtocolFeeBps
-
-* `old_fee_bps` : uint16, *notIndexed*
-* `new_fee_bps` : uint16, *notIndexed*
-
-### UpdateProtocolFeeRecipient
-
-* `old_fee_recipient` : address, *indexed*
-* `new_fee_recipient` : address, *indexed*
-
-### UpdateCustomProtocolFee
-
-* `vault` : address, *indexed*
-* `new_custom_protocol_fee` : uint16, *notIndexed*
-
-### RemovedCustomProtocolFee
-
-* `vault` : address, *indexed*
-
-### FactoryShutdown
-
-### UpdateGovernance
-
-* `governance` : address, *indexed*
-
-### NewPendingGovernance
-
-* `pending_governance` : address, *indexed*
-
-## Methods
-
-### deploy_new_vault
->
-> type: `nonpayable function`
->
-
-Deploys a new clone of the original vault.
-
-Arguments:
-
-* `asset`: - *The asset to be used for the vault.*
-
-* `name`: - *The name of the new vault.*
-
-* `symbol`: - *The symbol of the new vault.*
-
-* `role_manager`: - *The address of the role manager.*
-
-* `profit_max_unlock_time`: - *The time over which the profits will unlock.*
-
-Returns:
-
-* `_0` - The address of the new vault.
-
-### vault_original
->
-> type: `view function`
->
-
-Get the address of the vault to clone from
-
-Returns:
-
-* `_0` - The address of the original vault.
-
-### apiVersion
->
-> type: `view function`
->
-
-Get the API version of the factory.
-
-Returns:
-
-* `_0` - The API version of the factory.
-
-### protocol_fee_config
->
-> type: `view function`
->
-
-Called during vault and strategy reports to retrieve the protocol fee to charge and address to receive the fees.
-
-Arguments:
-
-* `vault`: - *Address of the vault that would be reporting.*
-
-Returns:
-
-* `_0` - The protocol fee config for the msg sender.
-
-### set_protocol_fee_bps
->
-> type: `nonpayable function`
->
-
-Set the protocol fee in basis points
-
-*Must be below the max allowed fee, and a default fee_recipient must be set so we don't issue fees to the 0 address.*
-
-Arguments:
-
-* `new_protocol_fee_bps`: - *The new protocol fee in basis points*
-
-### set_protocol_fee_recipient
->
-> type: `nonpayable function`
->
-
-Set the protocol fee recipient
-
-*Can never be set to 0 to avoid issuing fees to the 0 address.*
-
-Arguments:
-
-* `new_protocol_fee_recipient`: - *The new protocol fee recipient*
-
-### set_custom_protocol_fee_bps
->
-> type: `nonpayable function`
->
-
-Allows Governance to set custom protocol fees for a specific vault or strategy.
-
-*Must be below the max allowed fee, and a default fee_recipient must be set so we don't issue fees to the 0 address.*
-
-Arguments:
-
-* `vault`: - *The address of the vault or strategy to customize.*
-
-* `new_custom_protocol_fee`: - *The custom protocol fee in BPS.*
-
-### remove_custom_protocol_fee
->
-> type: `nonpayable function`
->
-
-Allows governance to remove a previously set custom protocol fee.
-
-Arguments:
-
-* `vault`: - *The address of the vault or strategy to remove the custom fee for.*
-
-### shutdown_factory
->
-> type: `nonpayable function`
->
-
-To stop new deployments through this factory.
-
-*A one time switch available for governance to stop new vaults from being deployed through the factory. NOTE: This will have no effect on any previously deployed vaults that deployed from this factory.*
-
-### set_governance
->
-> type: `nonpayable function`
->
-
-Set the governance address
-
-Arguments:
-
-* `new_governance`: - *The new governance address*
-
-### accept_governance
->
-> type: `nonpayable function`
->
-
-Accept the governance address
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/VaultV3.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/VaultV3.md
deleted file mode 100644
index 5872301655..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/VaultV3.md
+++ /dev/null
@@ -1,949 +0,0 @@
-# VaultV3.vy
-
-[Git Source](https://github.com/yearn/yearn-vaults-v3/blob/v3.0.2-1/contracts/VaultV3.vy)
-
-> vyper: `0.3.7`
-> author: `yearn.finance`
-> license: `GNU AGPLv3`
-
-**Yearn V3 Vault**
-
-*The Yearn VaultV3 is designed as a non-opinionated system to distribute funds of depositors for a specific `asset` into different opportunities (aka Strategies) and manage accounting in a robust way. Depositors receive shares (aka vaults tokens) proportional to their deposit amount. Vault tokens are yield-bearing and can be redeemed at any time to get back deposit plus any yield generated. Addresses that are given different permissioned roles by the `role_manager` are then able to allocate funds as they best see fit to different strategies and adjust the strategies and allocations as needed, as well as reporting realized profits or losses. Strategies are any ERC-4626 compliant contracts that use the same underlying `asset` as the vault. The vault provides no assurances as to the safety of any strategy and it is the responsibility of those that hold the corresponding roles to choose and fund strategies that best fit their desired specifications. Those holding vault tokens are able to redeem the tokens for the corresponding amount of underlying asset based on any reported profits or losses since their initial deposit. The vault is built to be customized by the management to be able to fit their specific desired needs. Including the customization of strategies, accountants, ownership etc.*
-
-## Events
-
-### Deposit
-
-* `sender` : address, *indexed*
-* `owner` : address, *indexed*
-* `assets` : uint256, *notIndexed*
-* `shares` : uint256, *notIndexed*
-
-### Withdraw
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `owner` : address, *indexed*
-* `assets` : uint256, *notIndexed*
-* `shares` : uint256, *notIndexed*
-
-### Transfer
-
-* `sender` : address, *indexed*
-* `receiver` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-### Approval
-
-* `owner` : address, *indexed*
-* `spender` : address, *indexed*
-* `value` : uint256, *notIndexed*
-
-### StrategyChanged
-
-* `strategy` : address, *indexed*
-* `change_type` : uint256, *indexed*
-
-### StrategyReported
-
-* `strategy` : address, *indexed*
-* `gain` : uint256, *notIndexed*
-* `loss` : uint256, *notIndexed*
-* `current_debt` : uint256, *notIndexed*
-* `protocol_fees` : uint256, *notIndexed*
-* `total_fees` : uint256, *notIndexed*
-* `total_refunds` : uint256, *notIndexed*
-
-### DebtUpdated
-
-* `strategy` : address, *indexed*
-* `current_debt` : uint256, *notIndexed*
-* `new_debt` : uint256, *notIndexed*
-
-### RoleSet
-
-* `account` : address, *indexed*
-* `role` : uint256, *indexed*
-
-### UpdateRoleManager
-
-* `role_manager` : address, *indexed*
-
-### UpdateAccountant
-
-* `accountant` : address, *indexed*
-
-### UpdateDepositLimitModule
-
-* `deposit_limit_module` : address, *indexed*
-
-### UpdateWithdrawLimitModule
-
-* `withdraw_limit_module` : address, *indexed*
-
-### UpdateDefaultQueue
-
-* `new_default_queue` : address[], *notIndexed*
-
-### UpdateUseDefaultQueue
-
-* `use_default_queue` : bool, *notIndexed*
-
-### UpdatedMaxDebtForStrategy
-
-* `sender` : address, *indexed*
-* `strategy` : address, *indexed*
-* `new_debt` : uint256, *notIndexed*
-
-### UpdateDepositLimit
-
-* `deposit_limit` : uint256, *notIndexed*
-
-### UpdateMinimumTotalIdle
-
-* `minimum_total_idle` : uint256, *notIndexed*
-
-### UpdateProfitMaxUnlockTime
-
-* `profit_max_unlock_time` : uint256, *notIndexed*
-
-### DebtPurchased
-
-* `strategy` : address, *indexed*
-* `amount` : uint256, *notIndexed*
-
-### Shutdown
-
-## Methods
-
-### initialize
->
-> type: `nonpayable function`
->
-
-Initialize a new vault. Sets the asset, name, symbol, and role manager.
-
-Arguments:
-
-* `asset`: - *The address of the asset that the vault will accept.*
-
-* `name`: - *The name of the vault token.*
-
-* `symbol`: - *The symbol of the vault token.*
-
-* `role_manager`: - *The address that can add and remove roles to addresses*
-
-* `profit_max_unlock_time`: - *The amount of time that the profit will be locked for*
-
-### set_accountant
->
-> type: `nonpayable function`
->
-
-Set the new accountant address.
-
-Arguments:
-
-* `new_accountant`: - *The new accountant address.*
-
-### set_default_queue
->
-> type: `nonpayable function`
->
-
-Set the new default queue array.
-
-*Will check each strategy to make sure it is active. But will not check that the same strategy is not added twice. maxRedeem and maxWithdraw return values may be inaccurate if a strategy is added twice.*
-
-Arguments:
-
-* `new_default_queue`: - *The new default queue array.*
-
-### set_use_default_queue
->
-> type: `nonpayable function`
->
-
-Set a new value for `use_default_queue`.
-
-*If set `True` the default queue will always be used no matter whats passed in.*
-
-Arguments:
-
-* `use_default_queue`: - *new value.*
-
-### set_deposit_limit
->
-> type: `nonpayable function`
->
-
-Set the new deposit limit.
-
-*Can not be changed if a deposit_limit_module is set unless the override flag is true or if shutdown.*
-
-Arguments:
-
-* `deposit_limit`: - *The new deposit limit.*
-
-* `override`: - *If a `deposit_limit_module` already set should be overridden.*
-
-### set_deposit_limit_module
->
-> type: `nonpayable function`
->
-
-Set a contract to handle the deposit limit.
-
-*The default `deposit_limit` will need to be set to max uint256 since the module will override it or the override flag must be set to true to set it to max in 1 tx..*
-
-Arguments:
-
-* `deposit_limit_module`: - *Address of the module.*
-
-* `override`: - *If a `deposit_limit` already set should be overridden.*
-
-### set_deposit_limit_module
->
-> type: `nonpayable function`
->
-
-*The default `deposit_limit` will need to be set to max uint256 since the module will override it or the override flag must be set to true to set it to max in 1 tx..*
-
-Arguments:
-
-* `deposit_limit_module`: - *Address of the module.*
-
-* `override`: - *If a `deposit_limit` already set should be overridden.*
-
-### set_withdraw_limit_module
->
-> type: `nonpayable function`
->
-
-Set a contract to handle the withdraw limit.
-
-*This will override the default `max_withdraw`.*
-
-Arguments:
-
-* `withdraw_limit_module`: - *Address of the module.*
-
-### set_minimum_total_idle
->
-> type: `nonpayable function`
->
-
-Set the new minimum total idle.
-
-Arguments:
-
-* `minimum_total_idle`: - *The new minimum total idle.*
-
-### setProfitMaxUnlockTime
->
-> type: `nonpayable function`
->
-
-Set the new profit max unlock time.
-
-*The time is denominated in seconds and must be less than 1 year. We only need to update locking period if setting to 0, since the current period will use the old rate and on the next report it will be reset with the new unlocking time. Setting to 0 will cause any currently locked profit to instantly unlock and an immediate increase in the vaults Price Per Share.*
-
-Arguments:
-
-* `new_profit_max_unlock_time`: - *The new profit max unlock time.*
-
-### set_role
->
-> type: `nonpayable function`
->
-
-Set the roles for an account.
-
-*This will fully override an accounts current roles so it should include all roles the account should hold.*
-
-Arguments:
-
-* `account`: - *The account to set the role for.*
-
-* `role`: - *The roles the account should hold.*
-
-### add_role
->
-> type: `nonpayable function`
->
-
-Add a new role to an address.
-
-*This will add a new role to the account without effecting any of the previously held roles.*
-
-Arguments:
-
-* `account`: - *The account to add a role to.*
-
-* `role`: - *The new role to add to account.*
-
-### remove_role
->
-> type: `nonpayable function`
->
-
-Remove a single role from an account.
-
-*This will leave all other roles for the account unchanged.*
-
-Arguments:
-
-* `account`: - *The account to remove a Role from.*
-
-* `role`: - *The Role to remove.*
-
-### transfer_role_manager
->
-> type: `nonpayable function`
->
-
-Step 1 of 2 in order to transfer the role manager to a new address. This will set the future_role_manager. Which will then need to be accepted by the new manager.
-
-Arguments:
-
-* `role_manager`: - *The new role manager address.*
-
-### isShutdown
->
-> type: `view function`
->
-
-Get if the vault is shutdown.
-
-Returns:
-
-* `_0` - Bool representing the shutdown status
-
-### unlockedShares
->
-> type: `view function`
->
-
-Get the amount of shares that have been unlocked.
-
-Returns:
-
-* `_0` - The amount of shares that are have been unlocked.
-
-### pricePerShare
->
-> type: `view function`
->
-
-Get the price per share (pps) of the vault.
-
-*This value offers limited precision. Integrations that require exact precision should use convertToAssets or convertToShares instead.*
-
-Returns:
-
-* `_0` - The price per share.
-
-### get_default_queue
->
-> type: `view function`
->
-
-Get the full default queue currently set.
-
-Returns:
-
-* `_0` - The current default withdrawal queue.
-
-### process_report
->
-> type: `nonpayable function`
->
-
-Process the report of a strategy.
-
-Arguments:
-
-* `strategy`: - *The strategy to process the report for.*
-
-Returns:
-
-* `_0` - The gain and loss of the strategy.
-
-### buy_debt
->
-> type: `nonpayable function`
->
-
-Used for governance to buy bad debt from the vault.
-
-*This should only ever be used in an emergency in place of force revoking a strategy in order to not report a loss. It allows the DEBT_PURCHASER role to buy the strategies debt for an equal amount of `asset`.*
-
-Arguments:
-
-* `strategy`: - *The strategy to buy the debt for*
-
-* `amount`: - *The amount of debt to buy from the vault.*
-
-### add_strategy
->
-> type: `nonpayable function`
->
-
-Add a new strategy.
-
-Arguments:
-
-* `new_strategy`: - *The new strategy to add.*
-
-### revoke_strategy
->
-> type: `nonpayable function`
->
-
-Revoke a strategy.
-
-Arguments:
-
-* `strategy`: - *The strategy to revoke.*
-
-### force_revoke_strategy
->
-> type: `nonpayable function`
->
-
-Force revoke a strategy.
-
-*The vault will remove the strategy and write off any debt left in it as a loss. This function is a dangerous function as it can force a strategy to take a loss. All possible assets should be removed from the strategy first via update_debt. If a strategy is removed erroneously it can be re-added and the loss will be credited as profit. Fees will apply.*
-
-Arguments:
-
-* `strategy`: - *The strategy to force revoke.*
-
-### update_max_debt_for_strategy
->
-> type: `nonpayable function`
->
-
-Update the max debt for a strategy.
-
-Arguments:
-
-* `strategy`: - *The strategy to update the max debt for.*
-
-* `new_max_debt`: - *The new max debt for the strategy.*
-
-### update_debt
->
-> type: `nonpayable function`
->
-
-Update the debt for a strategy.
-
-Arguments:
-
-* `strategy`: - *The strategy to update the debt for.*
-
-* `target_debt`: - *The target debt for the strategy.*
-
-* `max_loss`: - *Optional to check realized losses on debt decreases.*
-
-Returns:
-
-* `_0` - The amount of debt added or removed.
-
-### deposit
->
-> type: `nonpayable function`
->
-
-Deposit assets into the vault.
-
-Arguments:
-
-* `assets`: - *The amount of assets to deposit.*
-
-* `receiver`: - *The address to receive the shares.*
-
-Returns:
-
-* `_0` - The amount of shares minted.
-
-### mint
->
-> type: `nonpayable function`
->
-
-Mint shares for the receiver.
-
-Arguments:
-
-* `shares`: - *The amount of shares to mint.*
-
-* `receiver`: - *The address to receive the shares.*
-
-Returns:
-
-* `_0` - The amount of assets deposited.
-
-### withdraw
->
-> type: `nonpayable function`
->
-
-Withdraw an amount of asset to `receiver` burning `owner`s shares.
-
-*The default behavior is to not allow any loss.*
-
-Arguments:
-
-* `assets`: - *The amount of asset to withdraw.*
-
-* `receiver`: - *The address to receive the assets.*
-
-* `owner`: - *The address who's shares are being burnt.*
-
-* `max_loss`: - *Optional amount of acceptable loss in Basis Points.*
-
-* `strategies`: - *Optional array of strategies to withdraw from.*
-
-Returns:
-
-* `_0` - The amount of shares actually burnt.
-
-### redeem
->
-> type: `nonpayable function`
->
-
-Redeems an amount of shares of `owners` shares sending funds to `receiver`.
-
-*The default behavior is to allow losses to be realized.*
-
-Arguments:
-
-* `shares`: - *The amount of shares to burn.*
-
-* `receiver`: - *The address to receive the assets.*
-
-* `owner`: - *The address who's shares are being burnt.*
-
-* `max_loss`: - *Optional amount of acceptable loss in Basis Points.*
-
-* `strategies`: - *Optional array of strategies to withdraw from.*
-
-Returns:
-
-* `_0` - The amount of assets actually withdrawn.
-
-### approve
->
-> type: `nonpayable function`
->
-
-Approve an address to spend the vault's shares.
-
-Arguments:
-
-* `spender`: - *The address to approve.*
-
-* `amount`: - *The amount of shares to approve.*
-
-Returns:
-
-* `_0` - True if the approval was successful.
-
-### transfer
->
-> type: `nonpayable function`
->
-
-Transfer shares to a receiver.
-
-Arguments:
-
-* `receiver`: - *The address to transfer shares to.*
-
-* `amount`: - *The amount of shares to transfer.*
-
-Returns:
-
-* `_0` - True if the transfer was successful.
-
-### transferFrom
->
-> type: `nonpayable function`
->
-
-Transfer shares from a sender to a receiver.
-
-Arguments:
-
-* `sender`: - *The address to transfer shares from.*
-
-* `receiver`: - *The address to transfer shares to.*
-
-* `amount`: - *The amount of shares to transfer.*
-
-Returns:
-
-* `_0` - True if the transfer was successful.
-
-### permit
->
-> type: `nonpayable function`
->
-
-Approve an address to spend the vault's shares.
-
-Arguments:
-
-* `owner`: - *The address to approve.*
-
-* `spender`: - *The address to approve.*
-
-* `amount`: - *The amount of shares to approve.*
-
-* `deadline`: - *The deadline for the permit.*
-
-* `v`: - *The v component of the signature.*
-
-* `r`: - *The r component of the signature.*
-
-* `s`: - *The s component of the signature.*
-
-Returns:
-
-* `_0` - True if the approval was successful.
-
-### balanceOf
->
-> type: `view function`
->
-
-Get the balance of a user.
-
-Arguments:
-
-* `addr`: - *The address to get the balance of.*
-
-Returns:
-
-* `_0` - The balance of the user.
-
-### totalSupply
->
-> type: `view function`
->
-
-Get the total supply of shares.
-
-Returns:
-
-* `_0` - The total supply of shares.
-
-### totalAssets
->
-> type: `view function`
->
-
-Get the total assets held by the vault.
-
-Returns:
-
-* `_0` - The total assets held by the vault.
-
-### totalIdle
->
-> type: `view function`
->
-
-Get the amount of loose `asset` the vault holds.
-
-Returns:
-
-* `_0` - The current total idle.
-
-### totalDebt
->
-> type: `view function`
->
-
-Get the total amount of funds invested across all strategies.
-
-Returns:
-
-* `_0` - The current total debt.
-
-### convertToShares
->
-> type: `view function`
->
-
-Convert an amount of assets to shares.
-
-Arguments:
-
-* `assets`: - *The amount of assets to convert.*
-
-Returns:
-
-* `_0` - The amount of shares.
-
-### previewDeposit
->
-> type: `view function`
->
-
-Preview the amount of shares that would be minted for a deposit.
-
-Arguments:
-
-* `assets`: - *The amount of assets to deposit.*
-
-Returns:
-
-* `_0` - The amount of shares that would be minted.
-
-### previewMint
->
-> type: `view function`
->
-
-Preview the amount of assets that would be deposited for a mint.
-
-Arguments:
-
-* `shares`: - *The amount of shares to mint.*
-
-Returns:
-
-* `_0` - The amount of assets that would be deposited.
-
-### convertToAssets
->
-> type: `view function`
->
-
-Convert an amount of shares to assets.
-
-Arguments:
-
-* `shares`: - *The amount of shares to convert.*
-
-Returns:
-
-* `_0` - The amount of assets.
-
-### maxDeposit
->
-> type: `view function`
->
-
-Get the maximum amount of assets that can be deposited.
-
-Arguments:
-
-* `receiver`: - *The address that will receive the shares.*
-
-Returns:
-
-* `_0` - The maximum amount of assets that can be deposited.
-
-### maxMint
->
-> type: `view function`
->
-
-Get the maximum amount of shares that can be minted.
-
-Arguments:
-
-* `receiver`: - *The address that will receive the shares.*
-
-Returns:
-
-* `_0` - The maximum amount of shares that can be minted.
-
-### maxWithdraw
->
-> type: `view function`
->
-
-Get the maximum amount of assets that can be withdrawn.
-
-*Complies to normal 4626 interface and takes custom params. NOTE: Passing in a incorrectly ordered queue may result in incorrect returns values.*
-
-Arguments:
-
-* `owner`: - *The address that owns the shares.*
-
-* `max_loss`: - *Custom max_loss if any.*
-
-* `strategies`: - *Custom strategies queue if any.*
-
-Returns:
-
-* `_0` - The maximum amount of assets that can be withdrawn.
-
-### maxRedeem
->
-> type: `view function`
->
-
-Get the maximum amount of shares that can be redeemed.
-
-*Complies to normal 4626 interface and takes custom params. NOTE: Passing in a incorrectly ordered queue may result in incorrect returns values.*
-
-Arguments:
-
-* `owner`: - *The address that owns the shares.*
-
-* `max_loss`: - *Custom max_loss if any.*
-
-* `strategies`: - *Custom strategies queue if any.*
-
-Returns:
-
-* `_0` - The maximum amount of shares that can be redeemed.
-
-### previewWithdraw
->
-> type: `view function`
->
-
-Preview the amount of shares that would be redeemed for a withdraw.
-
-Arguments:
-
-* `assets`: - *The amount of assets to withdraw.*
-
-Returns:
-
-* `_0` - The amount of shares that would be redeemed.
-
-### previewRedeem
->
-> type: `view function`
->
-
-Preview the amount of assets that would be withdrawn for a redeem.
-
-Arguments:
-
-* `shares`: - *The amount of shares to redeem.*
-
-Returns:
-
-* `_0` - The amount of assets that would be withdrawn.
-
-### FACTORY
->
-> type: `view function`
->
-
-Address of the factory that deployed the vault.
-
-*Is used to retrieve the protocol fees.*
-
-Returns:
-
-* `_0` - Address of the vault factory.
-
-### apiVersion
->
-> type: `view function`
->
-
-Get the API version of the vault.
-
-Returns:
-
-* `_0` - The API version of the vault.
-
-### assess_share_of_unrealised_losses
->
-> type: `view function`
->
-
-Assess the share of unrealised losses that a strategy has.
-
-Arguments:
-
-* `strategy`: - *The address of the strategy.*
-
-* `assets_needed`: - *The amount of assets needed to be withdrawn.*
-
-Returns:
-
-* `_0` - The share of unrealised losses that the strategy has.
-
-### profitMaxUnlockTime
->
-> type: `view function`
->
-
-Gets the current time profits are set to unlock over.
-
-Returns:
-
-* `_0` - The current profit max unlock time.
-
-### fullProfitUnlockDate
->
-> type: `view function`
->
-
-Gets the timestamp at which all profits will be unlocked.
-
-Returns:
-
-* `_0` - The full profit unlocking timestamp
-
-### profitUnlockingRate
->
-> type: `view function`
->
-
-The per second rate at which profits are unlocking.
-
-*This is denominated in EXTENDED_BPS decimals.*
-
-Returns:
-
-* `_0` - The current profit unlocking rate.
-
-### lastProfitUpdate
->
-> type: `view function`
->
-
-The timestamp of the last time shares were locked.
-
-Returns:
-
-* `_0` - The last profit update.
-
-### DOMAIN_SEPARATOR
->
-> type: `view function`
->
-
-Get the domain separator.
-
-Returns:
-
-* `_0` - The domain separator.
-
-### accept_role_manager
->
-> type: `nonpayable function`
->
-
-Accept the role manager transfer.
-
-### shutdown_vault
->
-> type: `nonpayable function`
->
-
-Shutdown the vault.
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Accountant.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Accountant.md
deleted file mode 100644
index bec51ca9b8..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Accountant.md
+++ /dev/null
@@ -1,638 +0,0 @@
-# Accountant.sol
-
-[Git Source](https://github.com/yearn/vault-periphery/blob/master/contracts/accountants/Accountant.sol)
-
-*Will charge fees, issue refunds, and run health check on any reported
-gains or losses during a strategy's report.*
-
-## State Variables
-
-### MAX_BPS
-
-Constant defining the maximum basis points.
-
-```solidity
-uint256 internal constant MAX_BPS = 10_000;
-```
-
-### SECS_PER_YEAR
-
-Constant defining the number of seconds in a year.
-
-```solidity
-uint256 internal constant SECS_PER_YEAR = 31_556_952;
-```
-
-### MANAGEMENT_FEE_THRESHOLD
-
-Constant defining the management fee threshold.
-
-```solidity
-uint16 public constant MANAGEMENT_FEE_THRESHOLD = 200;
-```
-
-### PERFORMANCE_FEE_THRESHOLD
-
-Constant defining the performance fee threshold.
-
-```solidity
-uint16 public constant PERFORMANCE_FEE_THRESHOLD = 5_000;
-```
-
-### maxLoss
-
-The amount of max loss to use when redeeming from vaults.
-
-```solidity
-uint256 public maxLoss;
-```
-
-### feeManager
-
-The address of the fee manager.
-
-```solidity
-address public feeManager;
-```
-
-### feeRecipient
-
-The address of the fee recipient.
-
-```solidity
-address public feeRecipient;
-```
-
-### vaultManager
-
-An address that can add or remove vaults.
-
-```solidity
-address public vaultManager;
-```
-
-### futureFeeManager
-
-The address of the future fee manager.
-
-```solidity
-address public futureFeeManager;
-```
-
-### defaultConfig
-
-The default fee configuration.
-
-```solidity
-Fee public defaultConfig;
-```
-
-### vaults
-
-Mapping to track added vaults.
-
-```solidity
-mapping(address => bool) public vaults;
-```
-
-### customConfig
-
-Mapping vault => custom Fee config if any.
-
-```solidity
-mapping(address => Fee) public customConfig;
-```
-
-### skipHealthCheck
-
-Mapping vault => strategy => flag for one time healthcheck skips.
-
-```solidity
-mapping(address => mapping(address => bool)) skipHealthCheck;
-```
-
-## Functions
-
-### onlyFeeManager
-
-```solidity
-modifier onlyFeeManager();
-```
-
-### onlyVaultOrFeeManager
-
-```solidity
-modifier onlyVaultOrFeeManager();
-```
-
-### onlyFeeManagerOrRecipient
-
-```solidity
-modifier onlyFeeManagerOrRecipient();
-```
-
-### onlyAddedVaults
-
-```solidity
-modifier onlyAddedVaults();
-```
-
-### _checkFeeManager
-
-```solidity
-function _checkFeeManager() internal view virtual;
-```
-
-### _checkVaultOrFeeManager
-
-```solidity
-function _checkVaultOrFeeManager() internal view virtual;
-```
-
-### _checkFeeManagerOrRecipient
-
-```solidity
-function _checkFeeManagerOrRecipient() internal view virtual;
-```
-
-### _checkVaultIsAdded
-
-```solidity
-function _checkVaultIsAdded() internal view virtual;
-```
-
-### constructor
-
-```solidity
-constructor(
- address _feeManager,
- address _feeRecipient,
- uint16 defaultManagement,
- uint16 defaultPerformance,
- uint16 defaultRefund,
- uint16 defaultMaxFee,
- uint16 defaultMaxGain,
- uint16 defaultMaxLoss
-);
-```
-
-### report
-
-Called by a vault when a `strategy` is reporting.
-
-*The msg.sender must have been added to the `vaults` mapping.*
-
-```solidity
-function report(address strategy, uint256 gain, uint256 loss)
- public
- virtual
- onlyAddedVaults
- returns (uint256 totalFees, uint256 totalRefunds);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`strategy`|`address`|Address of the strategy reporting.|
-|`gain`|`uint256`|Amount of the gain if any.|
-|`loss`|`uint256`|Amount of the loss if any.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`totalFees`|`uint256`|if any to charge.|
-|`totalRefunds`|`uint256`|if any for the vault to pull.|
-
-### addVault
-
-Function to add a new vault for this accountant to charge fees for.
-
-*This is not used to set any of the fees for the specific vault or strategy. Each fee will be set separately.*
-
-```solidity
-function addVault(address vault) external virtual onlyVaultOrFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|The address of a vault to allow to use this accountant.|
-
-### removeVault
-
-Function to remove a vault from this accountant's fee charging list.
-
-```solidity
-function removeVault(address vault) external virtual onlyVaultOrFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|The address of the vault to be removed from this accountant.|
-
-### updateDefaultConfig
-
-Function to update the default fee configuration used for
-all strategies that don't have a custom config set.
-
-```solidity
-function updateDefaultConfig(
- uint16 defaultManagement,
- uint16 defaultPerformance,
- uint16 defaultRefund,
- uint16 defaultMaxFee,
- uint16 defaultMaxGain,
- uint16 defaultMaxLoss
-) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`defaultManagement`|`uint16`|Default annual management fee to charge.|
-|`defaultPerformance`|`uint16`|Default performance fee to charge.|
-|`defaultRefund`|`uint16`|Default refund ratio to give back on losses.|
-|`defaultMaxFee`|`uint16`|Default max fee to allow as a percent of gain.|
-|`defaultMaxGain`|`uint16`|Default max percent gain a strategy can report.|
-|`defaultMaxLoss`|`uint16`|Default max percent loss a strategy can report.|
-
-### _updateDefaultConfig
-
-*Updates the Accountant's default fee config.
-Is used during deployment and during any future updates.*
-
-```solidity
-function _updateDefaultConfig(
- uint16 defaultManagement,
- uint16 defaultPerformance,
- uint16 defaultRefund,
- uint16 defaultMaxFee,
- uint16 defaultMaxGain,
- uint16 defaultMaxLoss
-) internal virtual;
-```
-
-### setCustomConfig
-
-Function to set a custom fee configuration for a specific vault.
-
-```solidity
-function setCustomConfig(
- address vault,
- uint16 customManagement,
- uint16 customPerformance,
- uint16 customRefund,
- uint16 customMaxFee,
- uint16 customMaxGain,
- uint16 customMaxLoss
-) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|The vault the strategy is hooked up to.|
-|`customManagement`|`uint16`|Custom annual management fee to charge.|
-|`customPerformance`|`uint16`|Custom performance fee to charge.|
-|`customRefund`|`uint16`|Custom refund ratio to give back on losses.|
-|`customMaxFee`|`uint16`|Custom max fee to allow as a percent of gain.|
-|`customMaxGain`|`uint16`|Custom max percent gain a strategy can report.|
-|`customMaxLoss`|`uint16`|Custom max percent loss a strategy can report.|
-
-### removeCustomConfig
-
-Function to remove a previously set custom fee configuration for a vault.
-
-```solidity
-function removeCustomConfig(address vault) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|The vault to remove custom setting for.|
-
-### turnOffHealthCheck
-
-Turn off the health check for a specific `vault` `strategy` combo.
-
-*This will only last for one report and get automatically turned back on.*
-
-```solidity
-function turnOffHealthCheck(address vault, address strategy) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|Address of the vault.|
-|`strategy`|`address`|Address of the strategy.|
-
-### useCustomConfig
-
-Public getter to check for custom setting.
-
-*We use uint256 for the flag since its cheaper so this
-will convert it to a bool for easy view functions.*
-
-```solidity
-function useCustomConfig(address vault) external view virtual returns (bool);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|Address of the vault.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|If a custom fee config is set.|
-
-### getVaultConfig
-
-Get the full config used for a specific `vault`.
-
-```solidity
-function getVaultConfig(address vault) external view returns (Fee memory fee);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|Address of the vault.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`fee`|`Fee`|The config that would be used during the report.|
-
-### redeemUnderlying
-
-Function to redeem the underlying asset from a vault.
-
-*Will default to using the full balance of the vault.*
-
-```solidity
-function redeemUnderlying(address vault) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|The vault to redeem from.|
-
-### redeemUnderlying
-
-Function to redeem the underlying asset from a vault.
-
-```solidity
-function redeemUnderlying(address vault, uint256 amount) public virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`address`|The vault to redeem from.|
-|`amount`|`uint256`|The amount in vault shares to redeem.|
-
-### setMaxLoss
-
-Sets the `maxLoss` parameter to be used on redeems.
-
-```solidity
-function setMaxLoss(uint256 _maxLoss) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_maxLoss`|`uint256`|The amount in basis points to set as the maximum loss.|
-
-### distribute
-
-Function to distribute all accumulated fees to the designated recipient.
-
-```solidity
-function distribute(address token) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`token`|`address`|The token to distribute.|
-
-### distribute
-
-Function to distribute accumulated fees to the designated recipient.
-
-```solidity
-function distribute(address token, uint256 amount) public virtual onlyFeeManagerOrRecipient;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`token`|`address`|The token to distribute.|
-|`amount`|`uint256`|amount of token to distribute.|
-
-### setFutureFeeManager
-
-Function to set a future fee manager address.
-
-```solidity
-function setFutureFeeManager(address _futureFeeManager) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_futureFeeManager`|`address`|The address to set as the future fee manager.|
-
-### acceptFeeManager
-
-Function to accept the role change and become the new fee manager.
-
-*This function allows the future fee manager to accept the role change and become the new fee manager.*
-
-```solidity
-function acceptFeeManager() external virtual;
-```
-
-### setVaultManager
-
-Function to set a new vault manager.
-
-```solidity
-function setVaultManager(address newVaultManager) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`newVaultManager`|`address`|Address to add or remove vaults.|
-
-### setFeeRecipient
-
-Function to set a new address to receive distributed rewards.
-
-```solidity
-function setFeeRecipient(address newFeeRecipient) external virtual onlyFeeManager;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`newFeeRecipient`|`address`|Address to receive distributed fees.|
-
-### _checkAllowance
-
-*Internal safe function to make sure the contract you want to
-interact with has enough allowance to pull the desired tokens.*
-
-```solidity
-function _checkAllowance(address _contract, address _token, uint256 _amount) internal;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_contract`|`address`|The address of the contract that will move the token.|
-|`_token`|`address`|The ERC-20 token that will be getting spent.|
-|`_amount`|`uint256`|The amount of `_token` to be spent.|
-
-## Events
-
-### VaultChanged
-
-An event emitted when a vault is added or removed.
-
-```solidity
-event VaultChanged(address indexed vault, ChangeType change);
-```
-
-### UpdateDefaultFeeConfig
-
-An event emitted when the default fee configuration is updated.
-
-```solidity
-event UpdateDefaultFeeConfig(Fee defaultFeeConfig);
-```
-
-### SetFutureFeeManager
-
-An event emitted when the future fee manager is set.
-
-```solidity
-event SetFutureFeeManager(address indexed futureFeeManager);
-```
-
-### NewFeeManager
-
-An event emitted when a new fee manager is accepted.
-
-```solidity
-event NewFeeManager(address indexed feeManager);
-```
-
-### UpdateVaultManager
-
-An event emitted when a new vault manager is set.
-
-```solidity
-event UpdateVaultManager(address indexed newVaultManager);
-```
-
-### UpdateFeeRecipient
-
-An event emitted when the fee recipient is updated.
-
-```solidity
-event UpdateFeeRecipient(address indexed oldFeeRecipient, address indexed newFeeRecipient);
-```
-
-### UpdateCustomFeeConfig
-
-An event emitted when a custom fee configuration is updated.
-
-```solidity
-event UpdateCustomFeeConfig(address indexed vault, Fee custom_config);
-```
-
-### RemovedCustomFeeConfig
-
-An event emitted when a custom fee configuration is removed.
-
-```solidity
-event RemovedCustomFeeConfig(address indexed vault);
-```
-
-### UpdateMaxLoss
-
-An event emitted when the `maxLoss` parameter is updated.
-
-```solidity
-event UpdateMaxLoss(uint256 maxLoss);
-```
-
-### DistributeRewards
-
-An event emitted when rewards are distributed.
-
-```solidity
-event DistributeRewards(address indexed token, uint256 rewards);
-```
-
-## Structs
-
-### Fee
-
-Struct representing fee details.
-
-```solidity
-struct Fee {
- uint16 managementFee;
- uint16 performanceFee;
- uint16 refundRatio;
- uint16 maxFee;
- uint16 maxGain;
- uint16 maxLoss;
- bool custom;
-}
-```
-
-## Enums
-
-### ChangeType
-
-Enum defining change types (added or removed).
-
-```solidity
-enum ChangeType {
- NULL,
- ADDED,
- REMOVED
-}
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/AccountantFactory.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/AccountantFactory.md
deleted file mode 100644
index 54635fe701..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/AccountantFactory.md
+++ /dev/null
@@ -1,134 +0,0 @@
-# AccountantFactory.sol
-
-[Git Source](https://github.com/yearn/vault-periphery/blob/master/contracts/accountants/AccountantFactory.sol)
-
-*A factory contract for deploying Accountant contracts*
-
-## State Variables
-
-### defaultConfig
-
-```solidity
-Accountant.Fee public defaultConfig;
-```
-
-## Functions
-
-### constructor
-
-*Constructor initializes the default configuration*
-
-```solidity
-constructor();
-```
-
-### newAccountant
-
-*Deploys a new Accountant contract with default configuration*
-
-```solidity
-function newAccountant() external returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|_newAccountant The address of the newly deployed Accountant contract|
-
-### newAccountant
-
-*Deploys a new Accountant contract with specified fee manager and recipient*
-
-```solidity
-function newAccountant(address feeManager, address feeRecipient) external returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`feeManager`|`address`|The address to receive management and performance fees|
-|`feeRecipient`|`address`|The address to receive refund fees|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|_newAccountant The address of the newly deployed Accountant contract|
-
-### newAccountant
-
-*Deploys a new Accountant contract with specified fee configurations*
-
-```solidity
-function newAccountant(
- uint16 defaultManagement,
- uint16 defaultPerformance,
- uint16 defaultRefund,
- uint16 defaultMaxFee,
- uint16 defaultMaxGain,
- uint16 defaultMaxLoss
-) external returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`defaultManagement`|`uint16`|Default management fee|
-|`defaultPerformance`|`uint16`|Default performance fee|
-|`defaultRefund`|`uint16`|Default refund ratio|
-|`defaultMaxFee`|`uint16`|Default maximum fee|
-|`defaultMaxGain`|`uint16`|Default maximum gain|
-|`defaultMaxLoss`|`uint16`|Default maximum loss|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|_newAccountant The address of the newly deployed Accountant contract|
-
-### newAccountant
-
-*Deploys a new Accountant contract with specified fee configurations and addresses*
-
-```solidity
-function newAccountant(
- address feeManager,
- address feeRecipient,
- uint16 defaultManagement,
- uint16 defaultPerformance,
- uint16 defaultRefund,
- uint16 defaultMaxFee,
- uint16 defaultMaxGain,
- uint16 defaultMaxLoss
-) public returns (address _newAccountant);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`feeManager`|`address`|The address to receive management and performance fees|
-|`feeRecipient`|`address`|The address to receive refund fees|
-|`defaultManagement`|`uint16`|Default management fee|
-|`defaultPerformance`|`uint16`|Default performance fee|
-|`defaultRefund`|`uint16`|Default refund ratio|
-|`defaultMaxFee`|`uint16`|Default maximum fee|
-|`defaultMaxGain`|`uint16`|Default maximum gain|
-|`defaultMaxLoss`|`uint16`|Default maximum loss|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_newAccountant`|`address`|The address of the newly deployed Accountant contract|
-
-## Events
-
-### NewAccountant
-
-```solidity
-event NewAccountant(address indexed newAccountant);
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/AprOracle.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/AprOracle.md
deleted file mode 100644
index e1ddb54643..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/AprOracle.md
+++ /dev/null
@@ -1,170 +0,0 @@
-# AprOracle.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy-periphery/blob/master/src/AprOracle/AprOracle.sol)
-
-**Inherits:**
-[Governance](https://github.com/yearn/tokenized-strategy-periphery/blob/f139be6286cb3d630b0bce6d6db812c709e5bb47/src/utils/Governance.sol)
-
-**Author:**
-Yearn.finance
-
-*Contract to easily retrieve the APR's of V3 vaults and
-strategies.
-Can be used to check the current APR of any vault or strategy
-based on the current profit unlocking rate. As well as the
-expected APR given some change in totalAssets.
-This can also be used to retrieve the expected APR a strategy
-is making, thats yet to be reported, if a strategy specific
-oracle has been added.
-NOTE: All values are just at the specific time called and subject
-to change.*
-
-## State Variables
-
-### oracles
-
-```solidity
-mapping(address => address) public oracles;
-```
-
-### MAX_BPS_EXTENDED
-
-```solidity
-uint256 internal constant MAX_BPS_EXTENDED = 1_000_000_000_000;
-```
-
-### SECONDS_PER_YEAR
-
-```solidity
-uint256 internal constant SECONDS_PER_YEAR = 31_556_952;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor(address _governance) Governance(_governance);
-```
-
-### getStrategyApr
-
-Get the current APR a strategy is earning.
-
-*Will revert if an oracle has not been set for that strategy.
-This will be different than the [getExpectedApr](#getexpectedapr) which returns
-the current APR based off of previously reported profits that
-are currently unlocking.
-This will return the APR the strategy is currently earning that
-has yet to be reported.*
-
-```solidity
-function getStrategyApr(address _strategy, int256 _debtChange) public view virtual returns (uint256 apr);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy to check.|
-|`_debtChange`|`int256`|Positive or negative change in debt.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`apr`|`uint256`|The expected APR it will be earning represented as 1e18.|
-
-### weightedApr
-
-Get the current weighted APR of a strategy.
-
-*Gives the apr weighted by its `totalAssets`. This can be used
-to get the combined expected return of a collection of strategies.*
-
-```solidity
-function weightedApr(address _strategy) external view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The current weighted APR of the strategy.|
-
-### setOracle
-
-Set a custom APR `_oracle` for a `_strategy`.
-
-*Can only be called by the oracle's `governance` or
-management of the `_strategy`.
-The `_oracle` will need to implement the IOracle interface.*
-
-```solidity
-function setOracle(address _strategy, address _oracle) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy.|
-|`_oracle`|`address`|Address of the APR Oracle.|
-
-### getCurrentApr
-
-Get the current APR for a V3 vault or strategy.
-
-*This returns the current APR based off the current
-rate of profit unlocking for either a vault or strategy.
-Will return 0 if there is no profit unlocking or no assets.*
-
-```solidity
-function getCurrentApr(address _vault) external view virtual returns (uint256 apr);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|The address of the vault or strategy.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`apr`|`uint256`|The current apr expressed as 1e18.|
-
-### getExpectedApr
-
-Get the expected APR for a V3 vault or strategy based on `_delta`.
-
-*This returns the expected APR based off the current
-rate of profit unlocking for either a vault or strategy
-given some change in the total assets.
-Will return 0 if there is no profit unlocking or no assets.
-This can be used to predict the change in current apr given some
-deposit or withdraw to the vault.*
-
-```solidity
-function getExpectedApr(address _vault, int256 _delta) public view virtual returns (uint256 apr);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|The address of the vault or strategy.|
-|`_delta`|`int256`|The positive or negative change in `totalAssets`.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`apr`|`uint256`|The expected apr expressed as 1e18.|
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Auction.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Auction.md
deleted file mode 100644
index eb34a87478..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Auction.md
+++ /dev/null
@@ -1,654 +0,0 @@
-# Auction.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy-periphery/blob/master/src/Auctions/Auction.sol)
-
-**Inherits:**
-[Governance](https://github.com/yearn/tokenized-strategy-periphery/blob/f139be6286cb3d630b0bce6d6db812c709e5bb47/src/utils/Governance.sol), ReentrancyGuard
-
-**Author:**
-yearn.fi
-
-General use dutch auction contract for token sales.
-
-## State Variables
-
-### WAD
-
-```solidity
-uint256 internal constant WAD = 1e18;
-```
-
-### MINUTE_HALF_LIFE
-
-Used for the price decay.
-
-```solidity
-uint256 internal constant MINUTE_HALF_LIFE = 0.988514020352896135_356867505 * 1e27;
-```
-
-### wantInfo
-
-Struct to hold the info for `want`.
-
-```solidity
-TokenInfo internal wantInfo;
-```
-
-### hook_
-
-Contract to call during write functions.
-
-```solidity
-Hook internal hook_;
-```
-
-### startingPrice
-
-The amount to start the auction at.
-
-```solidity
-uint256 public startingPrice;
-```
-
-### auctionLength
-
-The time that each auction lasts.
-
-```solidity
-uint256 public auctionLength;
-```
-
-### auctionCooldown
-
-The minimum time to wait between auction 'kicks'.
-
-```solidity
-uint256 public auctionCooldown;
-```
-
-### auctions
-
-Mapping from an auction ID to its struct.
-
-```solidity
-mapping(bytes32 => AuctionInfo) public auctions;
-```
-
-### enabledAuctions
-
-Array of all the enabled auction for this contract.
-
-```solidity
-bytes32[] public enabledAuctions;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor() Governance(msg.sender);
-```
-
-### initialize
-
-Initializes the Auction contract with initial parameters.
-
-```solidity
-function initialize(
- address _want,
- address _hook,
- address _governance,
- uint256 _auctionLength,
- uint256 _auctionCooldown,
- uint256 _startingPrice
-) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_want`|`address`|Address this auction is selling to.|
-|`_hook`|`address`|Address of the hook contract (optional).|
-|`_governance`|`address`|Address of the contract governance.|
-|`_auctionLength`|`uint256`|Duration of each auction in seconds.|
-|`_auctionCooldown`|`uint256`|Cooldown period between auctions in seconds.|
-|`_startingPrice`|`uint256`|Starting price for each auction.|
-
-### want
-
-Get the address of this auctions want token.
-
-```solidity
-function want() public view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. The want token.|
-
-### hook
-
-Get the address of the hook if any.
-
-```solidity
-function hook() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. The hook.|
-
-### getHookFlags
-
-Get the current status of which hooks are being used.
-
-```solidity
-function getHookFlags() external view virtual returns (bool, bool, bool, bool);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. If the kickable hook is used.|
-|``|`bool`|. If the kick hook is used.|
-|``|`bool`|. If the preTake hook is used.|
-|``|`bool`|. If the postTake hook is used.|
-
-### numberOfEnabledAuctions
-
-Get the length of the enabled auctions array.
-
-```solidity
-function numberOfEnabledAuctions() external view virtual returns (uint256);
-```
-
-### getAuctionId
-
-Get the unique auction identifier.
-
-```solidity
-function getAuctionId(address _from) public view virtual returns (bytes32);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_from`|`address`|The address of the token to sell.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bytes32`|bytes32 A unique auction identifier.|
-
-### auctionInfo
-
-Retrieves information about a specific auction.
-
-```solidity
-function auctionInfo(bytes32 _auctionId)
- public
- view
- virtual
- returns (address _from, address _to, uint256 _kicked, uint256 _available);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_from`|`address`|The address of the token to sell.|
-|`_to`|`address`|The address of the token to buy.|
-|`_kicked`|`uint256`|The timestamp of the last kick.|
-|`_available`|`uint256`|The current available amount for the auction.|
-
-### kickable
-
-Get the pending amount available for the next auction.
-
-*Defaults to the auctions balance of the from token if no hook.*
-
-```solidity
-function kickable(bytes32 _auctionId) external view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|uint256 The amount that can be kicked into the auction.|
-
-### getAmountNeeded
-
-Gets the amount of `want` needed to buy a specific amount of `from`.
-
-```solidity
-function getAmountNeeded(bytes32 _auctionId, uint256 _amountToTake) external view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-|`_amountToTake`|`uint256`|The amount of `from` to take in the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The amount of `want` needed to fulfill the take amount.|
-
-### getAmountNeeded
-
-Gets the amount of `want` needed to buy a specific amount of `from` at a specific timestamp.
-
-```solidity
-function getAmountNeeded(bytes32 _auctionId, uint256 _amountToTake, uint256 _timestamp)
- external
- view
- virtual
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-|`_amountToTake`|`uint256`|The amount `from` to take in the auction.|
-|`_timestamp`|`uint256`|The specific timestamp for calculating the amount needed.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The amount of `want` needed to fulfill the take amount.|
-
-### _getAmountNeeded
-
-*Return the amount of `want` needed to buy `_amountToTake`.*
-
-```solidity
-function _getAmountNeeded(AuctionInfo memory _auction, uint256 _amountToTake, uint256 _timestamp)
- internal
- view
- virtual
- returns (uint256);
-```
-
-### price
-
-Gets the price of the auction at the current timestamp.
-
-```solidity
-function price(bytes32 _auctionId) external view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The price of the auction.|
-
-### price
-
-Gets the price of the auction at a specific timestamp.
-
-```solidity
-function price(bytes32 _auctionId, uint256 _timestamp) public view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-|`_timestamp`|`uint256`|The specific timestamp for calculating the price.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The price of the auction.|
-
-### _price
-
-*Internal function to calculate the scaled price based on auction parameters.*
-
-```solidity
-function _price(uint256 _kicked, uint256 _available, uint256 _timestamp) internal view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_kicked`|`uint256`|The timestamp the auction was kicked.|
-|`_available`|`uint256`|The initial available amount scaled 1e18.|
-|`_timestamp`|`uint256`|The specific timestamp for calculating the price.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The calculated price scaled to 1e18.|
-
-### enable
-
-Enables a new auction.
-
-*Uses governance as the receiver.*
-
-```solidity
-function enable(address _from) external virtual returns (bytes32);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_from`|`address`|The address of the token to be auctioned.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bytes32`|. The unique identifier of the enabled auction.|
-
-### enable
-
-Enables a new auction.
-
-```solidity
-function enable(address _from, address _receiver) public virtual onlyGovernance returns (bytes32 _auctionId);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_from`|`address`|The address of the token to be auctioned.|
-|`_receiver`|`address`|The address that will receive the funds in the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the enabled auction.|
-
-### disable
-
-Disables an existing auction.
-
-*Only callable by governance.*
-
-```solidity
-function disable(address _from) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_from`|`address`|The address of the token being sold.|
-
-### disable
-
-Disables an existing auction.
-
-*Only callable by governance.*
-
-```solidity
-function disable(address _from, uint256 _index) public virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_from`|`address`|The address of the token being sold.|
-|`_index`|`uint256`|The index the auctionId is at in the array.|
-
-### setHookFlags
-
-Set the flags to be used with hook.
-
-```solidity
-function setHookFlags(bool _kickable, bool _kick, bool _preTake, bool _postTake) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_kickable`|`bool`|If the kickable hook should be used.|
-|`_kick`|`bool`|If the kick hook should be used.|
-|`_preTake`|`bool`|If the preTake hook should be used.|
-|`_postTake`|`bool`|If the postTake should be used.|
-
-### kick
-
-Kicks off an auction, updating its status and making funds available for bidding.
-
-```solidity
-function kick(bytes32 _auctionId) external virtual nonReentrant returns (uint256 available);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`available`|`uint256`|The available amount for bidding on in the auction.|
-
-### take
-
-Take the token being sold in a live auction.
-
-*Defaults to taking the full amount and sending to the msg sender.*
-
-```solidity
-function take(bytes32 _auctionId) external virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The amount of fromToken taken in the auction.|
-
-### take
-
-Take the token being sold in a live auction with a specified maximum amount.
-
-*Uses the sender's address as the receiver.*
-
-```solidity
-function take(bytes32 _auctionId, uint256 _maxAmount) external virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-|`_maxAmount`|`uint256`|The maximum amount of fromToken to take in the auction.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The amount of fromToken taken in the auction.|
-
-### take
-
-Take the token being sold in a live auction.
-
-```solidity
-function take(bytes32 _auctionId, uint256 _maxAmount, address _receiver) external virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-|`_maxAmount`|`uint256`|The maximum amount of fromToken to take in the auction.|
-|`_receiver`|`address`|The address that will receive the fromToken.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|_amountTaken The amount of fromToken taken in the auction.|
-
-### take
-
-Take the token being sold in a live auction.
-
-```solidity
-function take(bytes32 _auctionId, uint256 _maxAmount, address _receiver, bytes calldata _data)
- external
- virtual
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_auctionId`|`bytes32`|The unique identifier of the auction.|
-|`_maxAmount`|`uint256`|The maximum amount of fromToken to take in the auction.|
-|`_receiver`|`address`|The address that will receive the fromToken.|
-|`_data`|`bytes`|The data signify the callback should be used and sent with it.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|_amountTaken The amount of fromToken taken in the auction.|
-
-### _take
-
-*Implements the take of the auction.*
-
-```solidity
-function _take(bytes32 _auctionId, uint256 _maxAmount, address _receiver, bytes memory _data)
- internal
- virtual
- nonReentrant
- returns (uint256 _amountTaken);
-```
-
-## Events
-
-### AuctionEnabled
-
-Emitted when a new auction is enabled
-
-```solidity
-event AuctionEnabled(bytes32 auctionId, address indexed from, address indexed to, address indexed auctionAddress);
-```
-
-### AuctionDisabled
-
-Emitted when an auction is disabled.
-
-```solidity
-event AuctionDisabled(bytes32 auctionId, address indexed from, address indexed to, address indexed auctionAddress);
-```
-
-### AuctionKicked
-
-Emitted when auction has been kicked.
-
-```solidity
-event AuctionKicked(bytes32 auctionId, uint256 available);
-```
-
-### AuctionTaken
-
-Emitted when any amount of an active auction was taken.
-
-```solidity
-event AuctionTaken(bytes32 auctionId, uint256 amountTaken, uint256 amountLeft);
-```
-
-## Structs
-
-### TokenInfo
-
-*Store address and scaler in one slot.*
-
-```solidity
-struct TokenInfo {
- address tokenAddress;
- uint96 scaler;
-}
-```
-
-### AuctionInfo
-
-Store all the auction specific information.
-
-```solidity
-struct AuctionInfo {
- TokenInfo fromInfo;
- uint96 kicked;
- address receiver;
- uint128 initialAvailable;
- uint128 currentAvailable;
-}
-```
-
-### Hook
-
-Store the hook address and each flag in one slot.
-
-```solidity
-struct Hook {
- address hook;
- bool kickable;
- bool kick;
- bool preTake;
- bool postTake;
-}
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Clonable.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Clonable.md
deleted file mode 100644
index b2dbf9e4f3..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Clonable.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Clonable.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy-periphery/blob/naster/src/utils/Clonable.sol)
-
-## State Variables
-
-### original
-
-Set to the address to auto clone from.
-
-```solidity
-address public original;
-```
-
-## Functions
-
-### _clone
-
-Clone the contracts default `original` contract.
-
-```solidity
-function _clone() internal virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|Address of the new Minimal Proxy clone.|
-
-### _clone
-
-Clone any `_original` contract.
-
-```solidity
-function _clone(address _original) internal virtual returns (address _newContract);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_newContract`|`address`|Address of the new Minimal Proxy clone.|
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/CommonReportTrigger.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/CommonReportTrigger.md
deleted file mode 100644
index 8a7f70a910..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/CommonReportTrigger.md
+++ /dev/null
@@ -1,411 +0,0 @@
-# CommonReportTrigger.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy-periphery/blob/master/src/ReportTrigger/CommonReportTrigger.sol)
-
-**Inherits:**
-[Governance](https://github.com/yearn/tokenized-strategy-periphery/blob/f139be6286cb3d630b0bce6d6db812c709e5bb47/src/utils/Governance.sol)
-
-**Author:**
-Yearn.finance
-
-*This is a central contract that keepers can use
-to decide if Yearn V3 strategies should report profits as
-well as when a V3 Vaults should record a strategies profits.
-It allows for a simple default flow that most strategies
-and vaults can use for easy integration with a keeper network.
-However, it is also customizable by the strategy and vaults
-management to allow complete customization if desired.*
-
-## State Variables
-
-### name
-
-```solidity
-string public name = "Yearn Common Report Trigger";
-```
-
-### baseFeeProvider
-
-```solidity
-address public baseFeeProvider;
-```
-
-### acceptableBaseFee
-
-```solidity
-uint256 public acceptableBaseFee;
-```
-
-### customStrategyTrigger
-
-```solidity
-mapping(address => address) public customStrategyTrigger;
-```
-
-### customStrategyBaseFee
-
-```solidity
-mapping(address => uint256) public customStrategyBaseFee;
-```
-
-### customVaultTrigger
-
-```solidity
-mapping(address => mapping(address => address)) public customVaultTrigger;
-```
-
-### customVaultBaseFee
-
-```solidity
-mapping(address => mapping(address => uint256)) public customVaultBaseFee;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor(address _governance) Governance(_governance);
-```
-
-### setCustomStrategyTrigger
-
-Set a custom report trigger contract for a strategy.
-
-*This gives the `management` of a specific strategy the option
-to enforce a custom report trigger for their strategy easily while
-still using this standard contract for keepers to read the trigger
-status from.
-The custom trigger contract only needs to implement the `reportTrigger`
-function to return true or false.*
-
-```solidity
-function setCustomStrategyTrigger(address _strategy, address _trigger) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|The address of the strategy to set the trigger for.|
-|`_trigger`|`address`|The address of the custom trigger contract.|
-
-### setCustomStrategyBaseFee
-
-Set a custom base fee for a specific strategy.
-
-*This can be set by a strategies `management` to increase or
-decrease the acceptable network base fee for a specific strategies
-trigger to return true.
-This can be used instead of a custom trigger contract.
-This will have no effect if a custom trigger is set for the strategy.*
-
-```solidity
-function setCustomStrategyBaseFee(address _strategy, uint256 _baseFee) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|The address of the strategy to customize.|
-|`_baseFee`|`uint256`|The max acceptable network base fee.|
-
-### setCustomVaultTrigger
-
-Set a custom report trigger contract for a vaults strategy.
-
-*This gives the management of a vault the option to enforce a
-custom report trigger for a specific strategy attached to the vault
-while still using this standard contract for keepers to read the
-trigger status from.
-The address calling must have the `ADD_STRATEGY_MANAGER` role on the vault.
-The custom trigger contract only needs to implement the `reportTrigger`
-function to return true or false.*
-
-```solidity
-function setCustomVaultTrigger(address _vault, address _strategy, address _trigger) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|The address of the vault|
-|`_strategy`|`address`|The address of the strategy to set the trigger for.|
-|`_trigger`|`address`|The address of the custom trigger contract.|
-
-### setCustomVaultBaseFee
-
-Set a custom base fee for a vaults strategy.
-
-*This can be set by the vaults management to increase or
-decrease the acceptable network base fee for a specific strategies
-trigger to return true.
-This can be used instead of a custom trigger contract.
-This will have no effect if a custom trigger is set for the strategy.
-The address calling must have the `ADD_STRATEGY_MANAGER` role on the vault.*
-
-```solidity
-function setCustomVaultBaseFee(address _vault, address _strategy, uint256 _baseFee) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|The address of the vault.|
-|`_strategy`|`address`|The address of the strategy to customize.|
-|`_baseFee`|`uint256`|The max acceptable network base fee.|
-
-### strategyReportTrigger
-
-Returns whether or not a strategy is ready for a keeper to call `report`.
-
-*Will first check if a custom trigger is set. If not it will use
-the default trigger flow.*
-
-```solidity
-function strategyReportTrigger(address _strategy) external view virtual returns (bool, bytes memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|The address of the strategy to check the trigger for.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Bool representing if the strategy is ready to report.|
-|``|`bytes`|. Bytes with either the calldata or reason why False.|
-
-### defaultStrategyReportTrigger
-
-The default trigger logic for a strategy.
-
-*This is kept in a separate function so it can still
-be used by custom triggers even if extra checks are needed
-first or after.
-This will also check if a custom acceptable base fee has been set
-by the strategies management.
-In order for the default flow to return true the strategy must:
-
-1. Not be shutdown.
-2. Have funds.
-3. The current network base fee be below the `acceptableBaseFee`.
-4. The time since the last report be > the strategies `profitMaxUnlockTime`.*
-
-```solidity
-function defaultStrategyReportTrigger(address _strategy) public view virtual returns (bool, bytes memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|The address of the strategy to check the trigger for.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Bool representing if the strategy is ready to report.|
-|``|`bytes`|. Bytes with either the calldata or reason why False.|
-
-### vaultReportTrigger
-
-Return whether or not a report should be called on a vault for
-a specific strategy.
-
-*Will first check if a custom trigger is set. If not it will use
-the default trigger flow.*
-
-```solidity
-function vaultReportTrigger(address _vault, address _strategy) external view virtual returns (bool, bytes memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|The address of the vault.|
-|`_strategy`|`address`|The address of the strategy to report.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Bool if the strategy should report to the vault.|
-|``|`bytes`|. Bytes with either the calldata or reason why False.|
-
-### defaultVaultReportTrigger
-
-The default trigger logic for a vault.
-
-*This is kept in a separate function so it can still
-be used by custom triggers even if extra checks are needed
-before or after.
-This will also check if a custom acceptable base fee has been set
-by the vault management for the `_strategy`.
-In order for the default flow to return true:
-
-1. The vault must not be shutdown.
-2. The strategy must be active and have debt allocated.
-3. The current network base fee be below the `acceptableBaseFee`.
-4. The time since the strategies last report be > the vaults `profitMaxUnlockTime`.*
-
-```solidity
-function defaultVaultReportTrigger(address _vault, address _strategy)
- public
- view
- virtual
- returns (bool, bytes memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|The address of the vault.|
-|`_strategy`|`address`|The address of the strategy to report.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Bool if the strategy should report to the vault.|
-|``|`bytes`|. Bytes with either the calldata or reason why False.|
-
-### strategyTendTrigger
-
-Return whether or not a strategy should be tended by a keeper.
-
-*This can be used as an easy keeper integration for any strategy that
-implements a tendTrigger.
-It is expected that a strategy implement all needed checks such as
-isShutdown, totalAssets > 0 and base fee checks within the trigger.*
-
-```solidity
-function strategyTendTrigger(address _strategy) external view virtual returns (bool, bytes memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy to check.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Bool if the strategy should be tended.|
-|``|`bytes`|. Bytes with the calldata.|
-
-### getCurrentBaseFee
-
-Returns the current base fee from the provider.
-
-*Will return 0 if a base fee provider is not set.*
-
-```solidity
-function getCurrentBaseFee() public view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The current base fee for the chain.|
-
-### isCurrentBaseFeeAcceptable
-
-Returns whether or not the current base fee is acceptable
-based on the default `acceptableBaseFee`.
-
-*Can be used in custom triggers to easily still use this contracts
-fee provider and acceptableBaseFee. And makes it backwards compatible to V2.
-Will always return `true` if no `baseFeeProvider` is set.*
-
-```solidity
-function isCurrentBaseFeeAcceptable() external view virtual returns (bool);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. IF the current base fee is acceptable.|
-
-### setBaseFeeProvider
-
-Sets the address used to pull the current network base fee.
-
-*Throws if the caller is not current governance.*
-
-```solidity
-function setBaseFeeProvider(address _baseFeeProvider) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_baseFeeProvider`|`address`|The network's baseFeeProvider address.|
-
-### setAcceptableBaseFee
-
-Sets the default acceptable current network base fee.
-
-*Throws if the caller is not current governance.*
-
-```solidity
-function setAcceptableBaseFee(uint256 _newAcceptableBaseFee) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_newAcceptableBaseFee`|`uint256`|The acceptable network base fee.|
-
-## Events
-
-### NewBaseFeeProvider
-
-```solidity
-event NewBaseFeeProvider(address indexed provider);
-```
-
-### UpdatedAcceptableBaseFee
-
-```solidity
-event UpdatedAcceptableBaseFee(uint256 acceptableBaseFee);
-```
-
-### UpdatedCustomStrategyTrigger
-
-```solidity
-event UpdatedCustomStrategyTrigger(address indexed strategy, address indexed trigger);
-```
-
-### UpdatedCustomStrategyBaseFee
-
-```solidity
-event UpdatedCustomStrategyBaseFee(address indexed strategy, uint256 acceptableBaseFee);
-```
-
-### UpdatedCustomVaultTrigger
-
-```solidity
-event UpdatedCustomVaultTrigger(address indexed vault, address indexed strategy, address indexed trigger);
-```
-
-### UpdatedCustomVaultBaseFee
-
-```solidity
-event UpdatedCustomVaultBaseFee(address indexed vault, address indexed strategy, uint256 acceptableBaseFee);
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/DebtAllocator.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/DebtAllocator.md
deleted file mode 100644
index 92a4bcc24f..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/DebtAllocator.md
+++ /dev/null
@@ -1,500 +0,0 @@
-# DebtAllocator.sol
-
-[Git Source](https://github.com/yearn/vault-periphery/blob/master/contracts/debtAllocators/DebtAllocator.sol)
-
-**Author:**
-yearn.finance
-
-This Debt Allocator is meant to be used alongside
-a Yearn V3 vault to provide the needed triggers for a keeper
-to perform automated debt updates for the vaults strategies.
-Each allocator contract will serve one Vault and each strategy
-that should be managed by this allocator will need to be added
-manually by setting a `targetRatio` and `maxRatio`.
-The allocator aims to allocate debt between the strategies
-based on their set target ratios. Which are denominated in basis
-points and represent the percent of total assets that specific
-strategy should hold.
-The trigger will attempt to allocate up to the `maxRatio` when
-the strategy has `minimumChange` amount less than the `targetRatio`.
-And will pull funds from the strategy when it has `minimumChange`
-more than its `maxRatio`.
-
-## State Variables
-
-### MAX_BPS
-
-```solidity
-uint256 internal constant MAX_BPS = 10_000;
-```
-
-### factory
-
-Address to get permissioned roles from.
-
-```solidity
-address public immutable factory;
-```
-
-### vault
-
-Address of the vault this serves as allocator for.
-
-```solidity
-address public vault;
-```
-
-### minimumWait
-
-Time to wait between debt updates in seconds.
-
-```solidity
-uint256 public minimumWait;
-```
-
-### minimumChange
-
-The minimum amount denominated in asset that will
-
-```solidity
-uint256 public minimumChange;
-```
-
-### totalDebtRatio
-
-Total debt ratio currently allocated in basis points.
-
-```solidity
-uint256 public totalDebtRatio;
-```
-
-### maxDebtUpdateLoss
-
-Max loss to accept on debt updates in basis points.
-
-```solidity
-uint256 public maxDebtUpdateLoss;
-```
-
-### managers
-
-Mapping of addresses that are allowed to update debt ratios.
-
-```solidity
-mapping(address => bool) public managers;
-```
-
-### _configs
-
-Mapping of strategy => its config.
-
-```solidity
-mapping(address => Config) internal _configs;
-```
-
-## Functions
-
-### onlyGovernance
-
-Make sure the caller is governance.
-
-```solidity
-modifier onlyGovernance();
-```
-
-### onlyManagers
-
-Make sure the caller is governance or a manager.
-
-```solidity
-modifier onlyManagers();
-```
-
-### onlyKeepers
-
-Make sure the caller is a keeper
-
-```solidity
-modifier onlyKeepers();
-```
-
-### _isGovernance
-
-Check the Factories governance address.
-
-```solidity
-function _isGovernance() internal view virtual;
-```
-
-### _isManager
-
-Check is either factories governance or local manager.
-
-```solidity
-function _isManager() internal view virtual;
-```
-
-### _isKeeper
-
-Check is one of the allowed keepers.
-
-```solidity
-function _isKeeper() internal view virtual;
-```
-
-### constructor
-
-```solidity
-constructor();
-```
-
-### initialize
-
-Initializes the debt allocator.
-
-*Should be called atomically after cloning.*
-
-```solidity
-function initialize(address _vault, uint256 _minimumChange) public virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault this allocates debt for.|
-|`_minimumChange`|`uint256`|The minimum in asset that must be moved.|
-
-### update_debt
-
-Debt update wrapper for the vault.
-
-*This can be used if a minimum time between debt updates
-is desired to be used for the trigger and to enforce a max loss.
-This contract must have the DEBT_MANAGER role assigned to them.
-The function signature matches the vault so no update to the
-call data is required.
-This will also run checks on losses realized during debt
-updates to assure decreases did not realize profits outside
-of the allowed range.*
-
-```solidity
-function update_debt(address _strategy, uint256 _targetDebt) public virtual onlyKeepers;
-```
-
-### shouldUpdateDebt
-
-Check if a strategy's debt should be updated.
-
-*This should be called by a keeper to decide if a strategies
-debt should be updated and if so by how much.*
-
-```solidity
-function shouldUpdateDebt(address _strategy) public view virtual returns (bool, bytes memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy to check.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. Bool representing if the debt should be updated.|
-|``|`bytes`|. Calldata if `true` or reason if `false`.|
-
-### increaseStrategyDebtRatio
-
-Increase a strategies target debt ratio.
-
-*`setStrategyDebtRatio` functions will do all needed checks.*
-
-```solidity
-function increaseStrategyDebtRatio(address _strategy, uint256 _increase) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|The address of the strategy to increase the debt ratio for.|
-|`_increase`|`uint256`|The amount in Basis Points to increase it.|
-
-### decreaseStrategyDebtRatio
-
-Decrease a strategies target debt ratio.
-
-```solidity
-function decreaseStrategyDebtRatio(address _strategy, uint256 _decrease) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|The address of the strategy to decrease the debt ratio for.|
-|`_decrease`|`uint256`|The amount in Basis Points to decrease it.|
-
-### setStrategyDebtRatio
-
-Sets a new target debt ratio for a strategy.
-
-*This will default to a 20% increase for max debt.*
-
-```solidity
-function setStrategyDebtRatio(address _strategy, uint256 _targetRatio) public virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy to set.|
-|`_targetRatio`|`uint256`|Amount in Basis points to allocate.|
-
-### setStrategyDebtRatio
-
-Sets a new target debt ratio for a strategy.
-
-*A `minimumChange` for that strategy must be set first.
-This is to prevent debt from being updated too frequently.*
-
-```solidity
-function setStrategyDebtRatio(address _strategy, uint256 _targetRatio, uint256 _maxRatio) public virtual onlyManagers;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy to set.|
-|`_targetRatio`|`uint256`|Amount in Basis points to allocate.|
-|`_maxRatio`|`uint256`|Max ratio to give on debt increases.|
-
-### removeStrategy
-
-Remove a strategy from this debt allocator.
-
-*Will delete the full config for the strategy*
-
-```solidity
-function removeStrategy(address _strategy) external virtual onlyManagers;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the address ro remove.|
-
-### setMinimumChange
-
-Set the minimum change variable for a strategy.
-
-*This is the minimum amount of debt to be
-added or pulled for it to trigger an update.*
-
-```solidity
-function setMinimumChange(uint256 _minimumChange) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_minimumChange`|`uint256`|The new minimum to set for the strategy.|
-
-### setMaxDebtUpdateLoss
-
-Set the max loss in Basis points to allow on debt updates.
-
-*Withdrawing during debt updates use `redeem` which allows for 100% loss.
-This can be used to assure a loss is not realized on redeem outside the tolerance.*
-
-```solidity
-function setMaxDebtUpdateLoss(uint256 _maxDebtUpdateLoss) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_maxDebtUpdateLoss`|`uint256`|The max loss to accept on debt updates.|
-
-### setMinimumWait
-
-Set the minimum time to wait before re-updating a strategies debt.
-
-*This is only enforced per strategy.*
-
-```solidity
-function setMinimumWait(uint256 _minimumWait) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_minimumWait`|`uint256`|The minimum time in seconds to wait.|
-
-### setManager
-
-Set if a manager can update ratios.
-
-```solidity
-function setManager(address _address, bool _allowed) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_address`|`address`|The address to set mapping for.|
-|`_allowed`|`bool`|If the address can call [update_debt](#update_debt).|
-
-### getConfig
-
-Get a strategies full config.
-
-*Used for customizations by inheriting the contract.*
-
-```solidity
-function getConfig(address _strategy) public view virtual returns (Config memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`Config`|The strategies current Config.|
-
-### getStrategyTargetRatio
-
-Get a strategies target debt ratio.
-
-```solidity
-function getStrategyTargetRatio(address _strategy) external view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The strategies current targetRatio.|
-
-### getStrategyMaxRatio
-
-Get a strategies max debt ratio.
-
-```solidity
-function getStrategyMaxRatio(address _strategy) external view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_strategy`|`address`|Address of the strategy.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The strategies current maxRatio.|
-
-## Events
-
-### UpdateStrategyDebtRatio
-
-An event emitted when a strategies debt ratios are Updated.
-
-```solidity
-event UpdateStrategyDebtRatio(
- address indexed strategy, uint256 newTargetRatio, uint256 newMaxRatio, uint256 newTotalDebtRatio
-);
-```
-
-### StrategyChanged
-
-An event emitted when a strategy is added or removed.
-
-```solidity
-event StrategyChanged(address indexed strategy, Status status);
-```
-
-### UpdateMinimumWait
-
-An event emitted when the minimum time to wait is updated.
-
-```solidity
-event UpdateMinimumWait(uint256 newMinimumWait);
-```
-
-### UpdateMinimumChange
-
-An event emitted when the minimum change is updated.
-
-```solidity
-event UpdateMinimumChange(uint256 newMinimumChange);
-```
-
-### UpdateManager
-
-An event emitted when a keeper is added or removed.
-
-```solidity
-event UpdateManager(address indexed manager, bool allowed);
-```
-
-### UpdateMaxDebtUpdateLoss
-
-An event emitted when the max debt update loss is updated.
-
-```solidity
-event UpdateMaxDebtUpdateLoss(uint256 newMaxDebtUpdateLoss);
-```
-
-## Structs
-
-### Config
-
-Struct for each strategies info.
-
-```solidity
-struct Config {
- bool added;
- uint16 targetRatio;
- uint16 maxRatio;
- uint96 lastUpdate;
- uint120 open;
-}
-```
-
-## Enums
-
-### Status
-
-Status when a strategy is added or removed from the allocator.
-
-```solidity
-enum Status {
- NULL,
- ADDED,
- REMOVED
-}
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Governance.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Governance.md
deleted file mode 100644
index a62b3bc7a9..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Governance.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# Governance.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy-periphery/blob/master/src/utils/Governance.sol)
-
-## State Variables
-
-### governance
-
-Address that owns the smart contract.
-
-```solidity
-address public governance;
-```
-
-## Functions
-
-### onlyGovernance
-
-```solidity
-modifier onlyGovernance();
-```
-
-### _checkGovernance
-
-Checks if the msg sender is the governance.
-
-```solidity
-function _checkGovernance() internal view virtual;
-```
-
-### constructor
-
-```solidity
-constructor(address _governance);
-```
-
-### transferGovernance
-
-Sets a new address as the governance of the contract.
-
-*Throws if the caller is not current governance.*
-
-```solidity
-function transferGovernance(address _newGovernance) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_newGovernance`|`address`|The new governance address.|
-
-## Events
-
-### GovernanceTransferred
-
-Emitted when the governance address is updated.
-
-```solidity
-event GovernanceTransferred(address indexed previousGovernance, address indexed newGovernance);
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Governance2Step.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Governance2Step.md
deleted file mode 100644
index 400ffdf440..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Governance2Step.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Governance2Step.sol
-
-[Git Source](https://github.com/yearn/tokenized-strategy-periphery/blob/master/src/utils/Governance2Step.sol)
-
-**Inherits:**
-Governance
-
-## State Variables
-
-### pendingGovernance
-
-Address that is set to take over governance.
-
-```solidity
-address public pendingGovernance;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor(address _governance) Governance(_governance);
-```
-
-### transferGovernance
-
-Sets a new address as the `pendingGovernance` of the contract.
-
-*Throws if the caller is not current governance.*
-
-```solidity
-function transferGovernance(address _newGovernance) external virtual override onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_newGovernance`|`address`|The new governance address.|
-
-### acceptGovernance
-
-Allows the `pendingGovernance` to accept the role.
-
-```solidity
-function acceptGovernance() external virtual;
-```
-
-## Events
-
-### UpdatePendingGovernance
-
-Emitted when the pending governance address is set.
-
-```solidity
-event UpdatePendingGovernance(address indexed newPendingGovernance);
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Registry.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Registry.md
deleted file mode 100644
index 0b3b233a2d..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Registry.md
+++ /dev/null
@@ -1,526 +0,0 @@
-# Registry.sol
-
-[Git Source](https://github.com/yearn/vault-periphery/blob/master/contracts/registry/Registry.sol)
-
-**Inherits:**
-[Governance](https://github.com/yearn/tokenized-strategy-periphery/blob/f139be6286cb3d630b0bce6d6db812c709e5bb47/src/utils/Governance.sol)
-
-**Author:**
-yearn.finance
-
-Serves as an onchain registry to track any Yearn
-vaults and strategies that a certain party wants to
-endorse.
-Can also be used to deploy new vaults of any specific
-API version.
-
-## State Variables
-
-### releaseRegistry
-
-```solidity
-address public immutable releaseRegistry;
-```
-
-### MULTI_STRATEGY_TYPE
-
-```solidity
-uint256 public constant MULTI_STRATEGY_TYPE = 1;
-```
-
-### SINGLE_STRATEGY_TYPE
-
-```solidity
-uint256 public constant SINGLE_STRATEGY_TYPE = 2;
-```
-
-### name
-
-```solidity
-string public name;
-```
-
-### taggers
-
-```solidity
-mapping(address => bool) public taggers;
-```
-
-### endorsers
-
-```solidity
-mapping(address => bool) public endorsers;
-```
-
-### vaultInfo
-
-```solidity
-mapping(address => Info) public vaultInfo;
-```
-
-### assetIsUsed
-
-```solidity
-mapping(address => bool) public assetIsUsed;
-```
-
-### _endorsedVaults
-
-```solidity
-mapping(address => address[]) internal _endorsedVaults;
-```
-
-### assets
-
-```solidity
-address[] public assets;
-```
-
-## Functions
-
-### onlyEndorsers
-
-Can only be gov or an `endorser`.
-
-```solidity
-modifier onlyEndorsers();
-```
-
-### onlyTaggers
-
-Can only be gov or a `tagger`.
-
-```solidity
-modifier onlyTaggers();
-```
-
-### _isEndorser
-
-Check is gov or an `endorser`.
-
-```solidity
-function _isEndorser() internal view;
-```
-
-### _isTagger
-
-Check is gov or a `tagger`.
-
-```solidity
-function _isTagger() internal view;
-```
-
-### constructor
-
-```solidity
-constructor(address _governance, string memory _name, address _releaseRegistry) Governance(_governance);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_governance`|`address`|Address to set as owner of the Registry.|
-|`_name`|`string`|The custom string for this custom registry to be called.|
-|`_releaseRegistry`|`address`|The Permissionless releaseRegistry to deploy vaults through.|
-
-### numAssets
-
-Returns the total number of assets being used as the underlying.
-
-```solidity
-function numAssets() external view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The amount of assets.|
-
-### getAssets
-
-Get the full array of tokens being used.
-
-```solidity
-function getAssets() external view virtual returns (address[] memory);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address[]`|The full array of underlying tokens being used/.|
-
-### numEndorsedVaults
-
-The amount of endorsed vaults for a specific token.
-
-```solidity
-function numEndorsedVaults(address _asset) public view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The amount of endorsed vaults.|
-
-### getEndorsedVaults
-
-Get the array of vaults endorsed for an `_asset`.
-
-```solidity
-function getEndorsedVaults(address _asset) external view virtual returns (address[] memory);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|The underlying token used by the vaults.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address[]`|The endorsed vaults.|
-
-### getAllEndorsedVaults
-
-Get all endorsed vaults deployed using the Registry.
-
-*This will return a nested array of all vaults deployed
-separated by their underlying asset.
-This is only meant for offchain viewing and should not be used during any
-onchain tx's.*
-
-```solidity
-function getAllEndorsedVaults() external view virtual returns (address[][] memory allEndorsedVaults);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`allEndorsedVaults`|`address[][]`|A nested array containing all vaults.|
-
-### isEndorsed
-
-Check if a vault is endorsed in this registry.
-
-*This will check if the `asset` variable in the struct has been
-set for an easy external view check.*
-
-```solidity
-function isEndorsed(address _vault) external view virtual returns (bool);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to check.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. The vaults endorsement status.|
-
-### newEndorsedVault
-
-Create and endorse a new multi strategy "Allocator"
-vault and endorse it in this registry.
-
-*
-
-Throws if caller isn't `owner`.
-Throws if no releases are registered yet.
-Emits a `NewEndorsedVault` event.*
-
-```solidity
-function newEndorsedVault(
- address _asset,
- string memory _name,
- string memory _symbol,
- address _roleManager,
- uint256 _profitMaxUnlockTime
-) public virtual returns (address _vault);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|The asset that may be deposited into the new Vault.|
-|`_name`|`string`|Specify a custom Vault name.|
-|`_symbol`|`string`|Specify a custom Vault symbol name.|
-|`_roleManager`|`address`|The address authorized for guardian interactions in the new Vault.|
-|`_profitMaxUnlockTime`|`uint256`|The time strategy profits will unlock over.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|address of the newly-deployed vault|
-
-### newEndorsedVault
-
-Create and endorse a new multi strategy "Allocator"
-vault and endorse it in this registry.
-
-*
-
-Throws if caller isn't `owner`.
-Throws if no releases are registered yet.
-Emits a `NewEndorsedVault` event.*
-
-```solidity
-function newEndorsedVault(
- address _asset,
- string memory _name,
- string memory _symbol,
- address _roleManager,
- uint256 _profitMaxUnlockTime,
- uint256 _releaseDelta
-) public virtual onlyEndorsers returns (address _vault);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|The asset that may be deposited into the new Vault.|
-|`_name`|`string`|Specify a custom Vault name.|
-|`_symbol`|`string`|Specify a custom Vault symbol name.|
-|`_roleManager`|`address`|The address authorized for guardian interactions in the new Vault.|
-|`_profitMaxUnlockTime`|`uint256`|The time strategy profits will unlock over.|
-|`_releaseDelta`|`uint256`|The number of releases prior to the latest to use as a target. NOTE: Set to 0 for latest.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|address of the newly-deployed vault|
-
-### endorseMultiStrategyVault
-
-Endorse an already deployed multi strategy vault.
-
-*To be used with default values for `_releaseDelta`, `_vaultType`
-and `_deploymentTimestamp`.*
-
-```solidity
-function endorseMultiStrategyVault(address _vault) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to endorse.|
-
-### endorseSingleStrategyVault
-
-Endorse an already deployed Single Strategy vault.
-
-*To be used with default values for `_releaseDelta`, `_vaultType`
-and `_deploymentTimestamp`.*
-
-```solidity
-function endorseSingleStrategyVault(address _vault) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to endorse.|
-
-### endorseVault
-
-Adds an existing vault to the list of "endorsed" vaults for that asset.
-
-*
-
-Throws if caller isn't `owner`.
-Throws if no releases are registered yet.
-Throws if `vault`'s api version does not match the release specified.
-Emits a `NewEndorsedVault` event.*
-
-```solidity
-function endorseVault(address _vault, uint256 _releaseDelta, uint256 _vaultType, uint256 _deploymentTimestamp)
- public
- virtual
- onlyEndorsers;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|The vault that will be endorsed by the Registry.|
-|`_releaseDelta`|`uint256`|Specify the number of releases prior to the latest to use as a target.|
-|`_vaultType`|`uint256`|Type of vault to endorse.|
-|`_deploymentTimestamp`|`uint256`|The timestamp of when the vault was deployed for FE use.|
-
-### _registerVault
-
-*Function used to register a newly deployed or added vault.
-This well set all of the values for the vault in the `vaultInfo`
-mapping as well as add the vault and the underlying asset to any
-relevant arrays for tracking.*
-
-```solidity
-function _registerVault(
- address _vault,
- address _asset,
- uint256 _releaseTarget,
- uint256 _vaultType,
- uint256 _deploymentTimestamp
-) internal virtual;
-```
-
-### tagVault
-
-Tag a vault with a specific string.
-
-*This is available to governance to tag any vault or strategy
-onchain if desired to arbitrarily classify any vaults.
-i.e. Certain ratings ("A") / Vault status ("Shutdown") etc.*
-
-```solidity
-function tagVault(address _vault, string memory _tag) external virtual onlyTaggers;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault or strategy to tag.|
-|`_tag`|`string`|The string to tag the vault or strategy with.|
-
-### removeVault
-
-Remove a `_vault`.
-
-*Can be used as an efficient way to remove a vault
-to not have to iterate over the full array.
-NOTE: This will not remove the asset from the `assets` array
-if it is no longer in use and will have to be done manually.*
-
-```solidity
-function removeVault(address _vault) external virtual onlyEndorsers;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to remove.|
-
-### removeAsset
-
-Removes a specific `_asset` at `_index` from `assets`.
-
-*Can be used if an asset is no longer in use after a vault or
-strategy has also been removed.*
-
-```solidity
-function removeAsset(address _asset, uint256 _index) external virtual onlyEndorsers;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|The asset to remove from the array.|
-|`_index`|`uint256`|The index it sits at.|
-
-### setEndorser
-
-Set a new address to be able to endorse or remove an existing endorser.
-
-```solidity
-function setEndorser(address _account, bool _canEndorse) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_account`|`address`|The address to set.|
-|`_canEndorse`|`bool`|Bool if the `_account` can or cannot endorse.|
-
-### setTagger
-
-Set a new address to be able to tag a vault.
-
-```solidity
-function setTagger(address _account, bool _canTag) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_account`|`address`|The address to set.|
-|`_canTag`|`bool`|Bool if the `_account` can or cannot tag.|
-
-## Events
-
-### NewEndorsedVault
-
-Emitted when a new vault is deployed or added.
-
-```solidity
-event NewEndorsedVault(address indexed vault, address indexed asset, uint256 releaseVersion, uint256 vaultType);
-```
-
-### RemovedVault
-
-Emitted when a vault is removed.
-
-```solidity
-event RemovedVault(address indexed vault, address indexed asset, uint256 releaseVersion, uint256 vaultType);
-```
-
-### VaultTagged
-
-Emitted when a vault is tagged which a string.
-
-```solidity
-event VaultTagged(address indexed vault);
-```
-
-### UpdateTagger
-
-Emitted when gov adds ore removes a `tagger`.
-
-```solidity
-event UpdateTagger(address indexed account, bool status);
-```
-
-### UpdateEndorser
-
-Emitted when gov adds ore removes a `endorser`.
-
-```solidity
-event UpdateEndorser(address indexed account, bool status);
-```
-
-## Structs
-
-### Info
-
-```solidity
-struct Info {
- address asset;
- uint96 releaseVersion;
- uint64 vaultType;
- uint128 deploymentTimestamp;
- uint64 index;
- string tag;
-}
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/RegistryFactory.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/RegistryFactory.md
deleted file mode 100644
index aacda6c139..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/RegistryFactory.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# RegistryFactory.sol
-
-[Git Source](https://github.com/yearn/vault-periphery/blob/master/contracts/registry/Registry.sol)
-
-**Author:**
-yearn.finance
-
-Factory for anyone to easily deploy their own Registry.
-
-## State Variables
-
-### releaseRegistry
-
-```solidity
-address public immutable releaseRegistry;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor(address _releaseRegistry);
-```
-
-### name
-
-```solidity
-function name() external pure virtual returns (string memory);
-```
-
-### createNewRegistry
-
-Deploy a new Registry.
-
-*Default to msg.sender for governance.*
-
-```solidity
-function createNewRegistry(string memory _name) external virtual returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_name`|`string`|The name of the new registry.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|Address of the new Registry.|
-
-### createNewRegistry
-
-Deploy a new Registry.
-
-```solidity
-function createNewRegistry(string memory _name, address _governance) public virtual returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_name`|`string`|The name of the new registry.|
-|`_governance`|`address`|Address to set as governance.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|Address of the new Registry.|
-
-## Events
-
-### NewRegistry
-
-```solidity
-event NewRegistry(address indexed newRegistry, address indexed governance, string name);
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/ReleaseRegistry.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/ReleaseRegistry.md
deleted file mode 100644
index 09d48da462..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/ReleaseRegistry.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# ReleaseRegistry.sol
-
-[Git Source](https://github.com/yearn/vault-periphery/blob/master/contracts/registry/ReleaseRegistry.sol)
-
-**Inherits:**
-[Governance](https://github.com/yearn/tokenized-strategy-periphery/blob/f139be6286cb3d630b0bce6d6db812c709e5bb47/src/utils/Governance.sol)
-
-**Author:**
-yearn.finance
-
-Used by Yearn Governance to track onchain all
-releases of the V3 vaults by API Version.
-
-## State Variables
-
-### name
-
-```solidity
-string public constant name = "Yearn V3 Release Registry";
-```
-
-### numReleases
-
-```solidity
-uint256 public numReleases;
-```
-
-### factories
-
-```solidity
-mapping(uint256 => address) public factories;
-```
-
-### releaseTargets
-
-```solidity
-mapping(string => uint256) public releaseTargets;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor(address _governance) Governance(_governance);
-```
-
-### latestFactory
-
-Returns the latest factory.
-
-*Throws if no releases are registered yet.*
-
-```solidity
-function latestFactory() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address of the factory for the latest release.|
-
-### latestRelease
-
-Returns the api version of the latest release.
-
-*Throws if no releases are registered yet.*
-
-```solidity
-function latestRelease() external view virtual returns (string memory);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`string`|The api version of the latest release.|
-
-### newRelease
-
-Issue a new release using a deployed factory.
-
-*Stores the factory address in `factories` and the release
-target in `releaseTargets` with its associated API version.
-Throws if caller isn't `governance`.
-Throws if the api version is the same as the previous release.
-Emits a `NewRelease` event.*
-
-```solidity
-function newRelease(address _factory) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_factory`|`address`|The factory that will be used create new vaults.|
-
-## Events
-
-### NewRelease
-
-```solidity
-event NewRelease(uint256 indexed releaseId, address indexed factory, string apiVersion);
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/RoleManager.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/RoleManager.md
deleted file mode 100644
index 1425c04bc7..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/RoleManager.md
+++ /dev/null
@@ -1,994 +0,0 @@
-# RoleManager.sol
-
-[Git Source](https://github.com/yearn/vault-periphery/blob/master/contracts/Managers/RoleManager.sol)
-
-**Inherits:**
-[Governance2Step](https://github.com/yearn/tokenized-strategy-periphery/blob/master/src/utils/Governance2Step.sol)
-
-## State Variables
-
-### _name_
-
-```solidity
-bytes32 internal constant _name_ = bytes32(abi.encodePacked("Yearn V3 Vault Role Manager"));
-```
-
-### DADDY
-
-Position ID for "daddy".
-
-```solidity
-bytes32 public constant DADDY = keccak256("Daddy");
-```
-
-### BRAIN
-
-Position ID for "brain".
-
-```solidity
-bytes32 public constant BRAIN = keccak256("Brain");
-```
-
-### KEEPER
-
-Position ID for "keeper".
-
-```solidity
-bytes32 public constant KEEPER = keccak256("Keeper");
-```
-
-### SECURITY
-
-Position ID for "security".
-
-```solidity
-bytes32 public constant SECURITY = keccak256("Security");
-```
-
-### REGISTRY
-
-Position ID for the Registry.
-
-```solidity
-bytes32 public constant REGISTRY = keccak256("Registry");
-```
-
-### ACCOUNTANT
-
-Position ID for the Accountant.
-
-```solidity
-bytes32 public constant ACCOUNTANT = keccak256("Accountant");
-```
-
-### DEBT_ALLOCATOR
-
-Position ID for Debt Allocator
-
-```solidity
-bytes32 public constant DEBT_ALLOCATOR = keccak256("Debt Allocator");
-```
-
-### STRATEGY_MANAGER
-
-Position ID for Strategy manager.
-
-```solidity
-bytes32 public constant STRATEGY_MANAGER = keccak256("Strategy Manager");
-```
-
-### ALLOCATOR_FACTORY
-
-Position ID for the Allocator Factory.
-
-```solidity
-bytes32 public constant ALLOCATOR_FACTORY = keccak256("Allocator Factory");
-```
-
-### chad
-
-Immutable address that the RoleManager position
-
-```solidity
-address public immutable chad;
-```
-
-### vaults
-
-Array storing addresses of all managed vaults.
-
-```solidity
-address[] public vaults;
-```
-
-### defaultProfitMaxUnlock
-
-Default time until profits are fully unlocked for new vaults.
-
-```solidity
-uint256 public defaultProfitMaxUnlock = 10 days;
-```
-
-### _positions
-
-Mapping of position ID to position information.
-
-```solidity
-mapping(bytes32 => Position) internal _positions;
-```
-
-### vaultConfig
-
-Mapping of vault addresses to its config.
-
-```solidity
-mapping(address => VaultConfig) public vaultConfig;
-```
-
-### _assetToVault
-
-Mapping of underlying asset, api version and category to vault.
-
-```solidity
-mapping(address => mapping(string => mapping(uint256 => address))) internal _assetToVault;
-```
-
-## Functions
-
-### onlyPositionHolder
-
-Only allow either governance or the position holder to call.
-
-```solidity
-modifier onlyPositionHolder(bytes32 _positionId);
-```
-
-### _isPositionHolder
-
-Check if the msg sender is governance or the specified position holder.
-
-```solidity
-function _isPositionHolder(bytes32 _positionId) internal view virtual;
-```
-
-### constructor
-
-```solidity
-constructor(
- address _governance,
- address _daddy,
- address _brain,
- address _security,
- address _keeper,
- address _strategyManager,
- address _registry
-) Governance2Step(_governance);
-```
-
-### newVault
-
-Creates a new endorsed vault with default profit max
-unlock time and doesn't set the deposit limit.
-
-```solidity
-function newVault(address _asset, uint256 _category) external virtual onlyPositionHolder(DADDY) returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|Address of the underlying asset.|
-|`_category`|`uint256`|Category of the vault.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|_vault Address of the newly created vault.|
-
-### newVault
-
-Creates a new endorsed vault with default profit max unlock time.
-
-```solidity
-function newVault(address _asset, uint256 _category, uint256 _depositLimit)
- external
- virtual
- onlyPositionHolder(DADDY)
- returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|Address of the underlying asset.|
-|`_category`|`uint256`|Category of the vault.|
-|`_depositLimit`|`uint256`|The deposit limit to start the vault with.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|_vault Address of the newly created vault.|
-
-### newVault
-
-Creates a new endorsed vault.
-
-```solidity
-function newVault(address _asset, uint256 _category, uint256 _depositLimit, uint256 _profitMaxUnlockTime)
- external
- virtual
- onlyPositionHolder(DADDY)
- returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|Address of the underlying asset.|
-|`_category`|`uint256`|Category of the vault.|
-|`_depositLimit`|`uint256`|The deposit limit to start the vault with.|
-|`_profitMaxUnlockTime`|`uint256`|Time until profits are fully unlocked.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|_vault Address of the newly created vault.|
-
-### _newVault
-
-Creates a new endorsed vault.
-
-```solidity
-function _newVault(address _asset, uint256 _category, uint256 _depositLimit, uint256 _profitMaxUnlockTime)
- internal
- virtual
- returns (address _vault);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|Address of the underlying asset.|
-|`_category`|`uint256`|Category of the vault.|
-|`_depositLimit`|`uint256`|The deposit limit to start the vault with.|
-|`_profitMaxUnlockTime`|`uint256`|Time until profits are fully unlocked.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the newly created vault.|
-
-### _deployAllocator
-
-_Deploys a debt allocator for the specified vault._
-
-```solidity
-function _deployAllocator(address _vault) internal virtual returns (address _debtAllocator);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_debtAllocator`|`address`|Address of the deployed debt allocator.|
-
-### _sanctify
-
-_Assigns roles to the newly added vault.
-This will override any previously set roles for the holders. But not effect
-the roles held by other addresses._
-
-```solidity
-function _sanctify(address _vault, address _debtAllocator) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to sanctify.|
-|`_debtAllocator`|`address`|Address of the debt allocator for the vault.|
-
-### _setRole
-
-_Used internally to set the roles on a vault for a given position.
-Will not set the roles if the position holder is address(0).
-This does not check that the roles are !=0 because it is expected that
-the holder will be set to 0 if the position is not being used._
-
-```solidity
-function _setRole(address _vault, Position memory _position) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault.|
-|`_position`|`Position`|Holder address and roles to set.|
-
-### _setAccountant
-
-_Sets the accountant on the vault and adds the vault to the accountant.
-This temporarily gives the `ACCOUNTANT_MANAGER` role to this contract._
-
-```solidity
-function _setAccountant(address _vault) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to set up the accountant for.|
-
-### _setDepositLimit
-
-_Used to set an initial deposit limit when a new vault is deployed.
-Any further updates to the limit will need to be done by an address that
-holds the `DEPOSIT_LIMIT_MANAGER` role._
-
-```solidity
-function _setDepositLimit(address _vault, uint256 _depositLimit) internal virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the newly deployed vault.|
-|`_depositLimit`|`uint256`|The deposit limit to set.|
-
-### addNewVault
-
-Adds a new vault to the RoleManager with the specified category.
-
-_If not already endorsed this function will endorse the vault.
-A new debt allocator will be deployed and configured._
-
-```solidity
-function addNewVault(address _vault, uint256 _category) external virtual;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to be added.|
-|`_category`|`uint256`|Category associated with the vault.|
-
-### addNewVault
-
-Adds a new vault to the RoleManager with the specified category and debt allocator.
-
-_If not already endorsed this function will endorse the vault._
-
-```solidity
-function addNewVault(address _vault, uint256 _category, address _debtAllocator)
- public
- virtual
- onlyPositionHolder(DADDY);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to be added.|
-|`_category`|`uint256`|Category associated with the vault.|
-|`_debtAllocator`|`address`|Address of the debt allocator for the vault.|
-
-### updateDebtAllocator
-
-Update a `_vault`s debt allocator.
-
-_This will deploy a new allocator using the current
-allocator factory set._
-
-```solidity
-function updateDebtAllocator(address _vault) external virtual returns (address _newDebtAllocator);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to update the allocator for.|
-
-### updateDebtAllocator
-
-Update a `_vault`s debt allocator to a specified `_debtAllocator`.
-
-```solidity
-function updateDebtAllocator(address _vault, address _debtAllocator) public virtual onlyPositionHolder(BRAIN);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to update the allocator for.|
-|`_debtAllocator`|`address`|Address of the new debt allocator.|
-
-### updateKeeper
-
-Update a `_vault`s keeper to a specified `_keeper`.
-
-```solidity
-function updateKeeper(address _vault, address _keeper) external virtual onlyPositionHolder(BRAIN);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to update the keeper for.|
-|`_keeper`|`address`|Address of the new keeper.|
-
-### removeVault
-
-Removes a vault from the RoleManager.
-
-_This will NOT un-endorse the vault from the registry._
-
-```solidity
-function removeVault(address _vault) external virtual onlyPositionHolder(BRAIN);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to be removed.|
-
-### removeRoles
-
-Removes a specific role(s) for a `_holder` from the `_vaults`.
-
-_Can be used to remove one specific role or multiple._
-
-```solidity
-function removeRoles(address[] calldata _vaults, address _holder, uint256 _role) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vaults`|`address[]`|Array of vaults to adjust.|
-|`_holder`|`address`|Address who's having a role removed.|
-|`_role`|`uint256`|The role or roles to remove from the `_holder`.|
-
-### setPositionRoles
-
-Setter function for updating a positions roles.
-
-```solidity
-function setPositionRoles(bytes32 _position, uint256 _newRoles) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_position`|`bytes32`|Identifier for the position.|
-|`_newRoles`|`uint256`|New roles for the position.|
-
-### setPositionHolder
-
-Setter function for updating a positions holder.
-
-```solidity
-function setPositionHolder(bytes32 _position, address _newHolder) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_position`|`bytes32`|Identifier for the position.|
-|`_newHolder`|`address`|New address for position.|
-
-### setDefaultProfitMaxUnlock
-
-Sets the default time until profits are fully unlocked for new vaults.
-
-```solidity
-function setDefaultProfitMaxUnlock(uint256 _newDefaultProfitMaxUnlock) external virtual onlyGovernance;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_newDefaultProfitMaxUnlock`|`uint256`|New value for defaultProfitMaxUnlock.|
-
-### name
-
-Get the name of this contract.
-
-```solidity
-function name() external view virtual returns (string memory);
-```
-
-### getAllVaults
-
-Get all vaults that this role manager controls..
-
-```solidity
-function getAllVaults() external view virtual returns (address[] memory);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address[]`|The full array of vault addresses.|
-
-### getVault
-
-Get the vault for a specific asset, api and category.
-
-_This will return address(0) if one has not been added or deployed._
-
-```solidity
-function getVault(address _asset, string memory _apiVersion, uint256 _category)
- external
- view
- virtual
- returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_asset`|`address`|The underlying asset used.|
-|`_apiVersion`|`string`|The version of the vault.|
-|`_category`|`uint256`|The category of the vault.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The vault for the specified `_asset`, `_apiVersion` and `_category`.|
-
-### isVaultsRoleManager
-
-Check if a vault is managed by this contract.
-
-_This will check if the `asset` variable in the struct has been
-set for an easy external view check.
-Does not check the vaults `role_manager` position since that can be set
-by anyone for a random vault._
-
-```solidity
-function isVaultsRoleManager(address _vault) external view virtual returns (bool);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault to check.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`bool`|. The vaults role manager status.|
-
-### getDebtAllocator
-
-Get the debt allocator for a specific vault.
-
-_Will return address(0) if the vault is not managed by this contract._
-
-```solidity
-function getDebtAllocator(address _vault) external view virtual returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|. Address of the debt allocator if any.|
-
-### getCategory
-
-Get the category for a specific vault.
-
-_Will return 0 if the vault is not managed by this contract._
-
-```solidity
-function getCategory(address _vault) external view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_vault`|`address`|Address of the vault.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The category of the vault if any.|
-
-### getPosition
-
-Get the address and roles given to a specific position.
-
-```solidity
-function getPosition(bytes32 _positionId) public view virtual returns (address, uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_positionId`|`bytes32`|The position identifier.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address that holds that position.|
-|``|`uint256`|The roles given to the specified position.|
-
-### getPositionHolder
-
-Get the current address assigned to a specific position.
-
-```solidity
-function getPositionHolder(bytes32 _positionId) public view virtual returns (address);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_positionId`|`bytes32`|The position identifier.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The current address assigned to the specified position.|
-
-### getPositionRoles
-
-Get the current roles given to a specific position ID.
-
-```solidity
-function getPositionRoles(bytes32 _positionId) public view virtual returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`_positionId`|`bytes32`|The position identifier.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The current roles given to the specified position ID.|
-
-### getDaddy
-
-Get the address assigned to the Daddy position.
-
-```solidity
-function getDaddy() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the Daddy position.|
-
-### getBrain
-
-Get the address assigned to the Brain position.
-
-```solidity
-function getBrain() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the Brain position.|
-
-### getSecurity
-
-Get the address assigned to the Security position.
-
-```solidity
-function getSecurity() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the Security position.|
-
-### getKeeper
-
-Get the address assigned to the Keeper position.
-
-```solidity
-function getKeeper() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the Keeper position.|
-
-### getStrategyManager
-
-Get the address assigned to the strategy manager.
-
-```solidity
-function getStrategyManager() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the strategy manager.|
-
-### getAccountant
-
-Get the address assigned to the accountant.
-
-```solidity
-function getAccountant() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the accountant.|
-
-### getRegistry
-
-Get the address assigned to the Registry.
-
-```solidity
-function getRegistry() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the Registry.|
-
-### getDebtAllocator
-
-Get the address assigned to be the debt allocator if any.
-
-```solidity
-function getDebtAllocator() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to be the debt allocator if any.|
-
-### getAllocatorFactory
-
-Get the address assigned to the allocator factory.
-
-```solidity
-function getAllocatorFactory() external view virtual returns (address);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`address`|The address assigned to the allocator factory.|
-
-### getDaddyRoles
-
-Get the roles given to the Daddy position.
-
-```solidity
-function getDaddyRoles() external view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The roles given to the Daddy position.|
-
-### getBrainRoles
-
-Get the roles given to the Brain position.
-
-```solidity
-function getBrainRoles() external view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The roles given to the Brain position.|
-
-### getSecurityRoles
-
-Get the roles given to the Security position.
-
-```solidity
-function getSecurityRoles() external view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The roles given to the Security position.|
-
-### getKeeperRoles
-
-Get the roles given to the Keeper position.
-
-```solidity
-function getKeeperRoles() external view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The roles given to the Keeper position.|
-
-### getDebtAllocatorRoles
-
-Get the roles given to the debt allocators.
-
-```solidity
-function getDebtAllocatorRoles() external view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The roles given to the debt allocators.|
-
-### getStrategyManagerRoles
-
-Get the roles given to the strategy manager.
-
-```solidity
-function getStrategyManagerRoles() external view virtual returns (uint256);
-```
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|The roles given to the strategy manager.|
-
-## Events
-
-### AddedNewVault
-
-Emitted when a new vault has been deployed or added.
-
-```solidity
-event AddedNewVault(address indexed vault, address indexed debtAllocator, uint256 category);
-```
-
-### UpdateDebtAllocator
-
-Emitted when a vaults debt allocator is updated.
-
-```solidity
-event UpdateDebtAllocator(address indexed vault, address indexed debtAllocator);
-```
-
-### UpdatePositionHolder
-
-Emitted when a new address is set for a position.
-
-```solidity
-event UpdatePositionHolder(bytes32 indexed position, address indexed newAddress);
-```
-
-### RemovedVault
-
-Emitted when a vault is removed.
-
-```solidity
-event RemovedVault(address indexed vault);
-```
-
-### UpdatePositionRoles
-
-Emitted when a new set of roles is set for a position
-
-```solidity
-event UpdatePositionRoles(bytes32 indexed position, uint256 newRoles);
-```
-
-### UpdateDefaultProfitMaxUnlock
-
-Emitted when the defaultProfitMaxUnlock variable is updated.
-
-```solidity
-event UpdateDefaultProfitMaxUnlock(uint256 newDefaultProfitMaxUnlock);
-```
-
-## Errors
-
-### AlreadyDeployed
-
-Revert message for when a vault has already been deployed.
-
-```solidity
-error AlreadyDeployed(address _vault);
-```
-
-## Structs
-
-### Position
-
-Position struct
-
-```solidity
-struct Position {
- address holder;
- uint96 roles;
-}
-```
-
-### VaultConfig
-
-Config that holds all vault info.
-
-```solidity
-struct VaultConfig {
- address asset;
- uint256 category;
- address debtAllocator;
- uint256 index;
-}
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Multicall.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Multicall.md
deleted file mode 100644
index 8225c90a60..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Multicall.md
+++ /dev/null
@@ -1,28 +0,0 @@
-
-# Multicall
-
-Enables calling multiple methods in a single call to the contract
-
-## Functions
-
-### multicall
-
-Call multiple functions in the current contract and return the data from all of them if they all succeed
-
-*The `msg.value` should not be trusted for any method callable from multicall.*
-
-```solidity
-function multicall(bytes[] calldata data) public payable override returns (bytes[] memory results);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`data`|`bytes[]`|The encoded function data for each of the calls to make to this contract|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`results`|`bytes[]`|The results from each of the calls passed in via data|
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/PeripheryPayments.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/PeripheryPayments.md
deleted file mode 100644
index 53d6b0f0e4..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/PeripheryPayments.md
+++ /dev/null
@@ -1,71 +0,0 @@
-
-# PeripheryPayments.sol
-
-Immutable state used by periphery contracts
-Largely Forked from https://github.com/Uniswap/v3-periphery/blob/main/contracts/base/PeripheryPayments.sol
-Changes:
-no interface
-no inheritdoc
-add immutable WETH9 in constructor instead of PeripheryImmutableState
-receive from any address
-Solmate interfaces and transfer lib
-casting
-add approve, wrapWETH9 and pullToken
-
-## State Variables
-
-### WETH9
-
-```solidity
-IWETH9 public immutable WETH9;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor(IWETH9 _WETH9);
-```
-
-### receive
-
-```solidity
-receive() external payable;
-```
-
-### approve
-
-```solidity
-function approve(ERC20 token, address to, uint256 amount) public payable;
-```
-
-### unwrapWETH9
-
-```solidity
-function unwrapWETH9(uint256 amountMinimum, address recipient) public payable;
-```
-
-### wrapWETH9
-
-```solidity
-function wrapWETH9() public payable;
-```
-
-### pullToken
-
-```solidity
-function pullToken(ERC20 token, uint256 amount, address recipient) public payable;
-```
-
-### sweepToken
-
-```solidity
-function sweepToken(ERC20 token, uint256 amountMinimum, address recipient) public payable;
-```
-
-### refundETH
-
-```solidity
-function refundETH() external payable;
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/SelfPermit.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/SelfPermit.md
deleted file mode 100644
index 0540c9e41b..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/SelfPermit.md
+++ /dev/null
@@ -1,107 +0,0 @@
-
-# SelfPermit.sol
-
-Functionality to call permit on any EIP-2612-compliant token for use in the route
-
-*These functions are expected to be embedded in multicalls to allow EOAs to approve a contract and call a function
-that requires an approval in a single transaction.*
-
-## Functions
-
-### selfPermitFn
-
-Permits this contract to spend a given token from `msg.sender`
-
-*The `owner` is always msg.sender and the `spender` is always address(this).*
-
-```solidity
-function selfPermit(address token, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
- public
- payable
- override;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`token`|`address`|The address of the token spent|
-|`value`|`uint256`|The amount that can be spent of token|
-|`deadline`|`uint256`|A timestamp, the current blocktime must be less than or equal to this timestamp|
-|`v`|`uint8`|Must produce valid secp256k1 signature from the holder along with `r` and `s`|
-|`r`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `v` and `s`|
-|`s`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `r` and `v`|
-
-### selfPermitIfNecessary
-
-Permits this contract to spend a given token from `msg.sender`
-
-*The `owner` is always msg.sender and the `spender` is always address(this).
-Can be used instead of #selfPermit to prevent calls from failing due to a frontrun of a call to #selfPermit*
-
-```solidity
-function selfPermitIfNecessary(address token, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
- external
- payable
- override;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`token`|`address`|The address of the token spent|
-|`value`|`uint256`|The amount that can be spent of token|
-|`deadline`|`uint256`|A timestamp, the current blocktime must be less than or equal to this timestamp|
-|`v`|`uint8`|Must produce valid secp256k1 signature from the holder along with `r` and `s`|
-|`r`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `v` and `s`|
-|`s`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `r` and `v`|
-
-### selfPermitAllowed
-
-Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter
-
-*The `owner` is always msg.sender and the `spender` is always address(this)*
-
-```solidity
-function selfPermitAllowed(address token, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
- public
- payable
- override;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`token`|`address`|The address of the token spent|
-|`nonce`|`uint256`|The current nonce of the owner|
-|`expiry`|`uint256`|The timestamp at which the permit is no longer valid|
-|`v`|`uint8`|Must produce valid secp256k1 signature from the holder along with `r` and `s`|
-|`r`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `v` and `s`|
-|`s`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `r` and `v`|
-
-### selfPermitAllowedIfNecessary
-
-Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter
-
-*The `owner` is always msg.sender and the `spender` is always address(this)
-Can be used instead of #selfPermitAllowed to prevent calls from failing due to a frontrun of a call to #selfPermitAllowed.*
-
-```solidity
-function selfPermitAllowedIfNecessary(address token, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
- external
- payable
- override;
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`token`|`address`|The address of the token spent|
-|`nonce`|`uint256`|The current nonce of the owner|
-|`expiry`|`uint256`|The timestamp at which the permit is no longer valid|
-|`v`|`uint8`|Must produce valid secp256k1 signature from the holder along with `r` and `s`|
-|`r`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `v` and `s`|
-|`s`|`bytes32`|Must produce valid secp256k1 signature from the holder along with `r` and `v`|
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Yearn4626Router.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Yearn4626Router.md
deleted file mode 100644
index 4bca184bfb..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Yearn4626Router.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# Yearn4626Router.sol
-
-[Git Source](https://github.com/yearn/Yearn-ERC4626-Router/blob/master/src/Yearn4626Router.sol)
-
-Router that is meant to be used with Yearn V3 vaults and strategies
-for deposits, withdraws and migrations.
-The router was developed from the original router by FEI protocol
-https://github.com/fei-protocol/ERC4626
-The router is designed to be used with permit and multicall for the
-optimal experience.
-NOTE: It is important to never leave tokens in the router at the
-end of a call, otherwise they can be swept by anyone.
-
-## State Variables
-
-### _name
-
-```solidity
-bytes32 private immutable _name;
-```
-
-## Functions
-
-### constructor
-
-```solidity
-constructor(string memory _name_, IWETH9 weth) PeripheryPayments(weth);
-```
-
-### name
-
-```solidity
-function name() external view returns (string memory);
-```
-
-### depositToVault
-
-deposit `amount` to an ERC4626 vault.
-
-*throws "!minShares" Error.*
-
-```solidity
-function depositToVault(IYearn4626 vault, uint256 amount, address to, uint256 minSharesOut)
- public
- payable
- override
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`IYearn4626`|The ERC4626 vault to deposit assets to.|
-|`amount`|`uint256`|The amount of assets to deposit to `vault`.|
-|`to`|`address`|The destination of ownership shares.|
-|`minSharesOut`|`uint256`|The min amount of `vault` shares received by `to`.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. the amount of shares received by `to`.|
-
-### depositToVault
-
-See [depositToVault](#deposittovault) in IYearn4626Router.
-
-*Uses msg.sender as the default for `to`.*
-
-```solidity
-function depositToVault(IYearn4626 vault, uint256 amount, uint256 minSharesOut) external payable returns (uint256);
-```
-
-### depositToVault
-
-See [depositToVault](#deposittovault) in IYearn4626Router.
-
-*Uses msg.sender as the default for `to` and their full
-balance of msg.sender as `amount`.*
-
-```solidity
-function depositToVault(IYearn4626 vault, uint256 minSharesOut) external payable returns (uint256);
-```
-
-### depositToVault
-
-See [depositToVault](#deposittovault) in IYearn4626Router.
-
-*Uses msg.sender as the default for `to`, their full balance
-of msg.sender as `amount` and 1 Basis point for `maxLoss`.
-NOTE: The slippage tollerance is only useful if `previewDeposit`
-cannot be manipulated for the `vault`.*
-
-```solidity
-function depositToVault(IYearn4626 vault) external payable returns (uint256);
-```
-
-### redeem
-
-See [redeem](./Yearn4626RouterBase.md#redeem) in IYearn4626RouterBase.
-
-*Uses msg.sender as `receiver`.*
-
-```solidity
-function redeem(IYearn4626 vault, uint256 shares, uint256 maxLoss) external payable returns (uint256);
-```
-
-### redeem
-
-See [redeem](./Yearn4626RouterBase.md#redeem) in IYearn4626RouterBase.
-
-*Uses msg.sender as `receiver` and their full balance as `shares`.*
-
-```solidity
-function redeem(IYearn4626 vault, uint256 maxLoss) external payable returns (uint256);
-```
-
-### redeem
-
-See [redeem](./Yearn4626RouterBase.md#redeem) in IYearn4626RouterBase.
-
-*Uses msg.sender as `receiver`, their full balance as `shares`
-and 1 Basis Point for `maxLoss`.*
-
-```solidity
-function redeem(IYearn4626 vault) external payable returns (uint256);
-```
-
-### migrate
-
-will redeem `shares` from one vault and deposit amountOut to a different ERC4626 vault.
-
-*throws "!minAmount", "!minShares" Errors.*
-
-```solidity
-function migrate(IYearn4626 fromVault, IYearn4626 toVault, uint256 shares, address to, uint256 minSharesOut)
- public
- payable
- override
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`fromVault`|`IYearn4626`|The ERC4626 vault to redeem shares from.|
-|`toVault`|`IYearn4626`|The ERC4626 vault to deposit assets to.|
-|`shares`|`uint256`|The amount of shares to redeem from fromVault.|
-|`to`|`address`|The destination of ownership shares.|
-|`minSharesOut`|`uint256`|The min amount of toVault shares received by `to`.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. the amount of shares received by `to`.|
-
-### migrate
-
-See [migrate](#migrate) in IYearn4626Router.
-
-*Uses msg.sender as `to`.*
-
-```solidity
-function migrate(IYearn4626 fromVault, IYearn4626 toVault, uint256 shares, uint256 minSharesOut)
- external
- payable
- returns (uint256);
-```
-
-### migrate
-
-See [migrate](#migrate) in IYearn4626Router.
-
-*Uses msg.sender as `to` and their full balance for `shares`.*
-
-```solidity
-function migrate(IYearn4626 fromVault, IYearn4626 toVault, uint256 minSharesOut) external payable returns (uint256);
-```
-
-### migrate
-
-See [migrate](#migrate) in IYearn4626Router.
-
-*Uses msg.sender as `to`, their full balance for `shares` and no `minamountOut`.
-NOTE: Using this will enforce no slippage checks and should be used with care.*
-
-```solidity
-function migrate(IYearn4626 fromVault, IYearn4626 toVault) external payable returns (uint256);
-```
-
-### migrateFromV2
-
-migrate from Yearn V2 vault to a V3 vault'.
-
-*throws "!minAmount", "!minShares" Errors.*
-
-```solidity
-function migrateFromV2(IYearnV2 fromVault, IYearn4626 toVault, uint256 shares, address to, uint256 minSharesOut)
- public
- payable
- override
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`fromVault`|`IYearnV2`|The Yearn V2 vault to withdraw from.|
-|`toVault`|`IYearn4626`|The Yearn V3 vault to deposit assets to.|
-|`shares`|`uint256`|The amount of V2 shares to redeem form 'fromVault'.|
-|`to`|`address`|The destination of ownership shares|
-|`minSharesOut`|`uint256`|The min amount of 'toVault' shares to be received by 'to'.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|. The actual amount of 'toVault' shares received by 'to'.|
-
-### migrateFromV2
-
-See [migrateFromV2](#migratefromv2) in IYearn4626Router.
-
-*Uses msg.sender as `to`.*
-
-```solidity
-function migrateFromV2(IYearnV2 fromVault, IYearn4626 toVault, uint256 shares, uint256 minSharesOut)
- external
- payable
- returns (uint256);
-```
-
-### migrateFromV2
-
-See [migrateFromV2](#migratefromv2) in IYearn4626Router.
-
-*Uses msg.sender as `to` and their full balance as `shares`.*
-
-```solidity
-function migrateFromV2(IYearnV2 fromVault, IYearn4626 toVault, uint256 minSharesOut)
- external
- payable
- returns (uint256);
-```
-
-### migrateFromV2
-
-See [migrate](#migrate) in IYearn4626Router.
-
-*Uses msg.sender as `to`, their full balance for `shares` and no `minamountOut`.
-NOTE: Using this will enforce no slippage checks and should be used with care.*
-
-```solidity
-function migrateFromV2(IYearnV2 fromVault, IYearn4626 toVault) external payable returns (uint256 sharesOut);
-```
diff --git a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Yearn4626RouterBase.md b/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Yearn4626RouterBase.md
deleted file mode 100644
index 50fc795ce4..0000000000
--- a/docs/developers/smart-contracts/deprecated/V3/version-3.0.2/periphery/Yearn4626Router/Yearn4626RouterBase.md
+++ /dev/null
@@ -1,184 +0,0 @@
-
-# Yearn4626RouterBase.sol
-
-## Functions
-
-### mint
-
-mint `shares` from an ERC4626 vault.
-
-*throws "!maxAmount" Error*
-
-```solidity
-function mint(IYearn4626 vault, uint256 shares, address to, uint256 maxAmountIn)
- public
- payable
- virtual
- override
- returns (uint256 amountIn);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`IYearn4626`|The ERC4626 vault to mint shares from.|
-|`shares`|`uint256`|The amount of shares to mint from `vault`.|
-|`to`|`address`|The destination of ownership shares.|
-|`maxAmountIn`|`uint256`|The max amount of assets used to mint.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`amountIn`|`uint256`|the amount of assets used to mint by `to`.|
-
-### deposit
-
-deposit `amount` to an ERC4626 vault.
-
-*throws "!minShares" Error*
-
-```solidity
-function deposit(IYearn4626 vault, uint256 amount, address to, uint256 minSharesOut)
- public
- payable
- virtual
- override
- returns (uint256 sharesOut);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`IYearn4626`|The ERC4626 vault to deposit assets to.|
-|`amount`|`uint256`|The amount of assets to deposit to `vault`.|
-|`to`|`address`|The destination of ownership shares.|
-|`minSharesOut`|`uint256`|The min amount of `vault` shares received by `to`.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`sharesOut`|`uint256`|the amount of shares received by `to`.|
-
-### withdraw
-
-withdraw `amount` from an ERC4626 vault.
-
-*Uses the Yearn specific 'maxLoss' accounting.*
-
-```solidity
-function withdraw(IYearn4626 vault, uint256 amount, address to, uint256 maxLoss)
- public
- payable
- virtual
- override
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`IYearn4626`|The ERC4626 vault to redeem shares from.|
-|`amount`|`uint256`|The amount of assets to withdraw from vault.|
-|`to`|`address`|The destination of assets.|
-|`maxLoss`|`uint256`|The acceptable loss in Basis Points.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|sharesOut the amount of shares received by `to`.|
-
-### withdrawDefault
-
-withdraw `amount` from an ERC4626 vault.
-
-*Uses the default 4626 syntax, throws !maxShares" Error.*
-
-```solidity
-function withdrawDefault(IYearn4626 vault, uint256 amount, address to, uint256 maxSharesOut)
- public
- payable
- virtual
- override
- returns (uint256 sharesOut);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`IYearn4626`|The ERC4626 vault to withdraw assets from.|
-|`amount`|`uint256`|The amount of assets to withdraw from vault.|
-|`to`|`address`|The destination of assets.|
-|`maxSharesOut`|`uint256`||
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`sharesOut`|`uint256`|the amount of shares received by `to`.|
-
-### redeem
-
-redeem `shares` shares from an ERC4626 vault.
-
-*Uses the Yearn specific 'maxLoss' accounting.*
-
-```solidity
-function redeem(IYearn4626 vault, uint256 shares, address to, uint256 maxLoss)
- public
- payable
- virtual
- override
- returns (uint256);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`IYearn4626`|The ERC4626 vault to redeem shares from.|
-|`shares`|`uint256`|The amount of shares to redeem from vault.|
-|`to`|`address`|The destination of assets.|
-|`maxLoss`|`uint256`|The acceptable loss in Basis Points.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|``|`uint256`|amountOut the amount of assets received by `to`.|
-
-### redeemDefault
-
-redeem `shares` shares from an ERC4626 vault.
-
-*Uses the default 4626 syntax, throws "!minAmount" Error.*
-
-```solidity
-function redeemDefault(IYearn4626 vault, uint256 shares, address to, uint256 minAmountOut)
- public
- payable
- virtual
- override
- returns (uint256 amountOut);
-```
-
-**Parameters**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`vault`|`IYearn4626`|The ERC4626 vault to redeem shares from.|
-|`shares`|`uint256`|The amount of shares to redeem from vault.|
-|`to`|`address`|The destination of assets.|
-|`minAmountOut`|`uint256`|The min amount of assets received by `to`.|
-
-**Returns**
-
-|Name|Type|Description|
-|----|----|-----------|
-|`amountOut`|`uint256`|the amount of assets received by `to`.|
diff --git a/docs/developers/v2/hacking-with-yearn.md b/docs/developers/v2/hacking-with-yearn.md
deleted file mode 100644
index eccf6f1b87..0000000000
--- a/docs/developers/v2/hacking-with-yearn.md
+++ /dev/null
@@ -1,173 +0,0 @@
-# Hacking on Yearn
-
-This page is for the hackers and buidlers who are currently building, or planning to build, something cool with Yearn Finance. This guide details all the info you need to start hacking!
-
-# Core Tools
-
-- [Solidity](https://docs.soliditylang.org/en/v0.8.6/index.html)
-- [Brownie](https://eth-brownie.readthedocs.io/en/stable/)
-- [ethers.js](https://docs.ethers.io/v5/)
-- [Web3.js](https://web3js.readthedocs.io/en/v1.4.0/)
-- [Ganache](https://trufflesuite.com/ganache/)
-- [Foundry](https://github.com/nicolasgarcia214/damn-vulnerable-defi-foundry)
-
-# Yearn Vaults & Smart Contract Integrations
-Yearn’s core product is the Vault (also known as yVault) — a set-it-and-forget-it yield aggregator running on top of DeFi’s yield-generating protocols like Compound, Aave, Curve, and Convex.
-
-## Getting Started
-
-#### Starter Kit
-
-Here's an example of integrating V2 vaults and ERC-4626.Â
-
-https://github.com/storming0x/ystarter-foundry-kit
-
-What you'll find:
-- Basic example Solidity Smart Contracts for integrating with Yearn Vaults for both V2 and ERC4626 interfaces.
-- ERC4626 adapter to wrap yearn vaults.
-- Example Contracts
-- Sample test suite.
-
-**Yearn Vaults**
-
-[This repository](https://github.com/yearn/yearn-vaults#readme) includes the set of smart contracts that are used for the Yearn Vaults. It contains the requirements, code, deployment scripts, and tests necessary for the core protocol, including an inheritable template strategy for use with Solidity-based strategies that interact with Yearn Vaults. These contracts are used to create a simple way to generate high risk-adjusted returns for depositors of various assets via best-in-class lending protocols, liquidity pools, and community-made yield farming strategies on Ethereum.
-
-## Testing
-
-### Introduction
-You can test Yearn vaults without spending cryptoassets on the available testnet for each network.
-
-To get started, head to the yearn testnet client which is available at: https://hack.yearn.fi/
-
-Make sure to switch your wallet provider to the appropriate testnet network in order to use the protocol testnet without incurring costs on the mainnet network.
-
-Testnet networks are different environments from mainnet and simulate real use cases for development, testing or production. The assets on a testnet are not “real,” meaning that they cannot be withdrawn to your wallet for any real economic value.
-
-Testing is possible through Ethereum Sepolia
-
-**Steps**:
-- Deploy your vault with your own token
-- Mint your own tokens
-- Hack!
-
-### What do I need for testing?
-When accessing each testnet, you will need to use its own native asset token.
-
-**Steps to test**:
-
-- Go to https://hack.yearn.fi/
-- Switch to the testnet you wish to utilize over your wallet provider
-- Make sure to have the native asset for the specific network
-- Get some tokens from the test client faucet (Ethereum Sepolia https://sepoliafaucet.com/)
-
-Make sure to select the correct market in the top right corner. You can find this on the left side of the address. Select the token you need and submit the faucet transaction but be mindful to make sure that you have certain amount of the native asset of the testnet you wish to transact on.
-
-#### How do I select a supported testnet?
-First, be sure to check if your wallet provider allows you to switch to testnet. Some providers, such as the MetaMask extension, display the network selection on top of the menu over the extension and, in the case of mobile MetaMask, above the wallet section. It’s important to always do your research for compatible wallets with compatible networks.
-
-#### Additional Resources
-* Workshop: Building and Integrating with Yearn Vaults: https://www.youtube.com/watch?v=urC35PMbpJ4
---> Learn how to leverage the power of Yearn by creating a money-making integration on top of v2 vaults by taking advantage of the brand new EIP-4626: Tokenized Vault Standard! This workshop will guide you through creating a B2B/business router for yearn v2 vaults, which complies with the new EIP-4626. You'll be able to choose from multiple fee strategies for your users to maximize your profit.
-* https://hackmd.io/t8HlcedLQeCu2l7RG-5Vbw?view
-* https://twitter.com/storming0x/status/1436851219864059906?s=20
-
-# Frontend Integrations
-
-Yearn uses a JavaScript SDK for formatting protocol data and generating transactions for reading/writing protocol data. Yearn SDK integrates several components, both onchain and offchain.
-
-[The repository here](https://github.com/turtlemoji/yearn-sdk-examples) contains a live preview and example usage of the Yearn SDK. Explore this codebase to learn how to start interacting with the Yearn protocol in your own app.
-
-**Live Preview Sandbox**
-
-The following repository contains a live preview and example usage of the Yearn SDK. Explore this codebase to learn how to start:
-https://github.com/turtlemoji/yearn-sdk-examples
-
-# Strategy Development
-
-A Yearn Strategy is a set of smart contracts that implement different farming strategies that utilize the deposited assets to generate the best yields for users.
-
-The implementation of the strategies moves assets from one farming application to another one with higher interest. This will mostly be done automatically, which automatically monitors and tracks the best farming applications with high yield and low risks.
-
-Rewards/profits generated by strategies are regularly updated, harvested, swapped for the original vault asset, and deposited again for compound farming. Each vault has a unique strategy and the strategy will be improved constantly based on the observations of our AI-based monitoring engines.
-
-By having a strategy, users only need to deposit single assets and let the strategies generate profits from the funds. Yearn automates the whole compounding process, making it as close to optimal as possible.
-
-* https://github.com/yearn/brownie-strategy-mix
-
-* Forking a Strategy Locally: https://github.com/yearn/yearn-vaults/blob/main/CONTRIBUTING.md
-
-# Data Analysis
-
-Yearn aims to provide more insights into our products to our customers and partners through analyzing the onchain and offchain data. Given that all Yearn protocol data is publicly stored onchain, there are lots of insights to be gained from analyzing these transactions.
-
-## Some of the research questions that we are interested in:
-* Screening profitable liquidity pools for our strategies
-* Assessing the impact of TVL on the impermanent loss
-* Screening the volume of various pools
-* Providing risk metrics to our vaults
-* Price volatility of the underlying token
-* Addressing the protocol risks
-* Optimizing our strategies according to the change in gas fees
-* Decide on when to deleverage and trade the governance tokens
-* Decide on when to harvest
-* Predicting impermanent loss for Uniswap V3 pools
-* Portfolio construction across yearn products
-More details on these topics can be seen in our issues tab.
-
-**Data Sources**
-
-[**Yearn SDK**](https://github.com/yearn/yearn-sdk) [[Docs](https://yearn.github.io/yearn-sdk/)]
-https://docs.yearn.fi/vaults/yearn-sdk/yearn-stack
-If you are not sure about which service you should first look into, Yearn SDK can provide you with addresses of contracts and endpoints of yearn’s services.
-
-[**Yearn API**](https://github.com/yearn/yearn-caching-api) [[Docs](/developers/data-services/yearn-data)]
-Yearn's data services can provide vault-oriented data, including the TVL of vaults, APYs, fees, and strategy metadata through REST API, without the need to make web3 calls.
-
-# Inspiration
-
-Common use-cases for vaults include:
-* Using Vaults as collateral for lending/borrowing
-* Using Vaults to generate yield with user funds
-
-*In both cases, the protocol integrating with yearn is rewarded with performance fees taken from the vault’s overall profits, the more total volume that a partner contributes to a vault, the bigger share of the profit they receive.*
-
-Hundreds of protocols have built exciting functionalities using Yearn’s integration methods. These include:
-* Alchemix provides self-repaying loans using vault yields
-* Abracadabra provided the first yVault leveraging system that allows users to take loans and keep the yield rolling
-* QiDao provides 0% interest loans if you use yVaults as collateral
-
-Here are some ideas on what you can build:
-
-1. Use the Vaults as collateral to borrow money and probably get some leverage. (e.g. Abracadabra)
-2. Build a product that allows you to use yield to do cool stuff:
-donate yield to an NGO
-invest the yield in more risky stuff or directional bets
-paying bills and subscriptions
-3. Create a metavault on top of multiple vaults. One idea that comes to my mind is having a USD metavault that deposits into multiple dollar-pegged vaults based on some strategy and abstracts the complexity from the user.
-4. Build a UI that accepts deposits and allows you to move assets across chains.
-5. Use the vaults as a place to earn interest on funds that are not currently actively being used by the user.
-
-# Examples
-
-[**Skew You**](https://github.com/Tburm/tracer-vault): Users can borrow against their options collateral, unlocking a whole new world of capital efficiency.
-
-[**Possum**](https://github.com/Possum-ONE): Fixed-income product that can turn every farm into two fix/variable pools. Based on the game model, fixed pool users can have guaranteed APY while the variable user gets higher APY with higher risk.
-
-[**Bowtie**](https://github.com/ShayanJa/bowtie_finance): Allows users to borrow against their options collateral.
-
-Additionally, doing a GitHub search for Yearn functionality you are interested in implementing is a good way to find working code examples.
-
-# Expectations
-
-Here are some guidelines on how to maximize your chances of 'winning':
-
-- Have your code well documented on GitHub.
-- Have a frontend!
-- If you created a contract, deploy them to a testnet and ensure your frontend properly interacts with them.
-- Implement something interesting with your Yearn integration. Simply calling deposit() will not help your submission stand out!
-
-# Resources
-
-Yearn GitHub Organization: https://github.com/yearn/
-
-Yearn V2 Documentation: https://github.com/yearn/yearn-vaults
diff --git a/docs/getting-started/products/curating/introduction.md b/docs/getting-started/products/curating/introduction.md
index e0ba0254a2..a310ee859d 100644
--- a/docs/getting-started/products/curating/introduction.md
+++ b/docs/getting-started/products/curating/introduction.md
@@ -132,7 +132,7 @@ By combining automated optimization with careful, real-time monitoring and a ris
### Monitoring
-We don’t just guess what might happen – we build tools to watch it closely. Our monitoring system keeps tabs on important numbers and potential risks across all the DeFi protocols Yearn uses.
+We don’t just guess what might happen – we build tools to watch it closely. [Our monitoring system](https://curation.yearn.fi/monitoring/) keeps tabs on important numbers and potential risks across all the DeFi protocols Yearn uses.
Our monitoring system is designed to track key metrics and potential risks across 20+ DeFi protocols integrated with Yearn, running across multiple chains (Ethereum, Base, Katana, Polygon, Arbitrum, Optimism).
Capabilities include:
diff --git a/docs/getting-started/products/ybal/overview.md b/docs/getting-started/products/ybal/overview.md
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/docs/getting-started/products/ylockers/yprisma/overview.md b/docs/getting-started/products/ylockers/yprisma/overview.md
index 5e617d2187..9ba0ee280b 100644
--- a/docs/getting-started/products/ylockers/yprisma/overview.md
+++ b/docs/getting-started/products/ylockers/yprisma/overview.md
@@ -12,4 +12,4 @@ Please head over to the ReSupply docs to find out how to migrate.
> The Redeem PRISMA feature allows users to convert their Prisma-based tokens (PRISMA, cvxPRISMA, and yPRISMA) into a vesting allocation of RSUP tokens. This process allows Prisma token holders to convert to RSUP tokens. This can be found [here](https://resupply.fi/governance/rsup) below the Stake RSUP section. **In order to see this section you must have a wallet with Prisma, cvxPrisma, or yPrisma connected.**
-If you still need to find something from the old yPRISMA project, you can find info [here](/getting-started/products/ylockers/yprisma/overview).
+If you still need to find something from the old yPRISMA project, you can find info [here](/developers/deprecated-products/yPrisma/overview).
diff --git a/docs/getting-started/products/yvaults/overview.md b/docs/getting-started/products/yvaults/overview.md
index e9e3662f00..5da0b28ccc 100644
--- a/docs/getting-started/products/yvaults/overview.md
+++ b/docs/getting-started/products/yvaults/overview.md
@@ -12,8 +12,6 @@ Go you!
:::
-[Still Confused? Click here for an ELI-5 explainer](yvaults-faq#yvaults-eli-5)
-
## yVault Types
Over the years, Yearn has developed 3 versions of the yVault products: v1, v2, and v3. Super creative, we know!
diff --git a/docs/getting-started/products/yvaults/yvaults-faq.md b/docs/getting-started/products/yvaults/yvaults-faq.md
deleted file mode 100644
index 709aece65e..0000000000
--- a/docs/getting-started/products/yvaults/yvaults-faq.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# yVaults FAQ
-
-
-
-
-
-## yVaults ELI-5
-
-
-
-Yearn Vaults are contracts on the Ethereum blockchain—and the layer2 networks that sit atop it. They allow you to deposit cryptocurrency tokens you own and earn interest on them. When you deposit, your tokens are combined with other depositors' tokens and directed toward interest earning opportunities. How and which opportunities are chosen depends on the *Strategies* used by the vault. You receive a receipt token (aka a Vault Token) that can be used to retrieve your original deposit plus any interest earned.
-
-
-
-
-
-
-## V1, V2, V3, Juiced... Whats the difference?
-
-
-
-So many options! But don't worry, it isn't so complicated.
-
-- V3 are the newest vaults. They are probably your best bet unless you can't find what you are looking for.
-- V2 are older vaults, but are still used for Curve and Curve-based pools like Velodrome and Aerodrome.
-- V1 vaults are the OG and not supported so you shouldn't even see them anywhere. If you do, or if you need to access funds deposited during DeFi summer, hop in the [discord](https://discord.gg/yearn) and let us know.
-- Juiced Vaults are (now deprecated) vaults built to use Ajna, which is a lending and borrowing protocol. They have their own [frontend](https://juiced.yearn.fi/) and [docs](https://docs.juiced.app/) so check those out. One thing to be aware of is that since Ajna is a lending platform, you may not be able to withdraw funds immediately if there is high borrowing demand.
-
-
-
-
-
-
-
-## What is Gimme?
-
-
-
-[Gimme](https://gimme.mom/) is a (now deprecated) easy-to-use frontend focused on making Yearn super simple. It currently supports yVaults on Polygon and Base and will roll out other L2s soon. You can easily zap right into Yearn's single asset V3 vaults and start earning fast!
-
-
-
-
-
-
-
-## How Do Vault Tokens Work?
-
-
-
-yVault Tokens are like a deposit receipt. They represent a user's share of the yVault that they are participating in.
-
-**For example**, if you deposit YFI in a yVault you will receive yvYFI in return. yvYFI would be the yVault Token.
-
-If your yVault generates profit, the share price of your yVault tokens will increase. This happens because more underlying tokens are in the yVault to redeem upon withdrawal.
-
-
-
-
-Once a user's assets are withdrawn from the yVault, their yVault Token will be burned. yVault Tokens are [ERC-20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/), meaning they can be transferred and traded as any other common Ethereum token.
-
-The vault tokens have evolved between v1, v2, and v3, here are a couple of main differences:
-
-### V1 yVault Tokens
-
-- Each vault contract can use only 1 yield strategy contract.
-- Vault tokens are prefixed with a leading `y`, so a v1 vault for USDC gives the user yUSDC.
-
-### V2 yVault Tokens
-
-- Each vault contract can use up to 20 yield strategy contracts.
-- Vault tokens are prefixed with `yv`, so a v2 vault for USDC gives the user yvUSDC.
-
-### V3 yVault Tokens
-
-- All V3 vaults are [ERC-4626](https://ethereum.org/en/developers/docs/standards/tokens/erc-4626/) compliant.
-- Vaults can be either [multi-strategy](/developers/v3/overview#definitions) or [single-strategy (Tokenized Strategy)](/developers/v3/overview#definitions).
-- Multi-strategy vaults tokens are prefixed with `yv` and appended with a ["category"](/developers/v3/Integrating_v3#category), so a v3 vault for USDC with a category type of `1` gives the user `yvUSDC-1`.
-- Single strategy vaults are prefixed with `ys`, so a v3 single strategy vault gives the user `ysUSDC`.
-
-
-
-:::tip
-
-Didn't find what you are looking for? Check out additional frequently asked questions and troubleshooting [here](/getting-started/guides/user-faq)
-
-:::
diff --git a/sidebars/sidebarsDeveloperDocs.js b/sidebars/sidebarsDeveloperDocs.js
index e57d57c849..faf19f2c7b 100644
--- a/sidebars/sidebarsDeveloperDocs.js
+++ b/sidebars/sidebarsDeveloperDocs.js
@@ -76,6 +76,7 @@ export default {
items: [
'v2/getting-started',
'v2/DEPLOYMENT',
+ 'v2/CONTRACTS_REVIEW',
'v2/vault-factory',
'v2/SPECIFICATION',
'v2/OPERATIONS',
diff --git a/sidebars/sidebarsPartners.js b/sidebars/sidebarsPartners.js
deleted file mode 100644
index dba68cd974..0000000000
--- a/sidebars/sidebarsPartners.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = {
- mySidebar: [
- 'introduction',
- 'integration_guide',
- {
- type: 'category',
- label: 'Templates',
- items: [,
- 'partner-tracker',
- ],
- },
- 'submit_pr',
- 'yvtokens-as-collateral',
- ],
-}
diff --git a/sidebars/sidebarsSecurity.js b/sidebars/sidebarsSecurity.js
deleted file mode 100644
index be8277c777..0000000000
--- a/sidebars/sidebarsSecurity.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- mySidebar: ['index', 'multisig', 'testing'],
-}
diff --git a/sidebars/sidebarsUserDocs.js b/sidebars/sidebarsUserDocs.js
index d6bf124a59..f01968f5bb 100644
--- a/sidebars/sidebarsUserDocs.js
+++ b/sidebars/sidebarsUserDocs.js
@@ -72,14 +72,15 @@ module.exports = {
],
},
{
- type: 'doc',
- id: 'products/yvaults/yBold',
+ type: 'category',
label: 'yBOLD',
- },
- {
- type: 'doc',
- id: 'products/yvaults/yvaults-faq',
- label: 'yVaults FAQ',
+ link: {
+ type: 'doc',
+ id: 'products/yvaults/yBold',
+ },
+ items: [
+ 'products/yvaults/vault-tokens',
+ ],
},
{
type: 'link',