Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Smart contract update progress is compiled in this section.
Important updates regarding the development of the protocol can also be obtained from Tetu's weekly AMAs. To watch the AMAs, access the Tetu channel.
The goal of the update adds reward boost functionality and prepare contracts for the Zapping solution.
Contract addresses:
new announcer logic - 0x12e4a470Ed725a0450D543C41006DA678809B2b8
new controller logic - 0x2B2105f79d91196091502476d7F00d482d223Db3
vault controller - 0xC5b3aF6FB4b2ff14642e337F41B86C9494f70b43
new vaultLogic - 0x52646dfb3E1D540D85DC32223A220a6F9c7eD759
Changes https://github.com/tetu-io/tetu-contracts/compare/release-1.0.0...release-1.1.0
Added announce function for single uint256 variables
Added announce function for stopping vaults
Fixed minor bug for the clear announces function. Now clear announce don't change array ordering and opHash code for multiple announces can be fetched normally.
The clear function is now able to call for DAO address.
Moved changeVaultsStatuses, addRewardTokens, removeRewardTokens functions to VaultController. The reason - space in the controller ended.
Added VaultController address functionality
Added recipient address for controllerTokenMove function - require for moving tokens from disabled vaults directly to NotifyHelper
Similar contract as Controller.
Will contain governance functions specified for vaults.
Old non-time-locked functions: changeVaultsStatuses, addRewardTokens, removeRewardTokens
New time-locked function: setRewardBoostDuration, setRewardRatioWithoutBoost, stopVault
Boost Reward functionality added.
Functions: changeActivityStatus, addRewardToken, removeRewardToken now able to call only from VaultController.
Added to function: notifyTargetRewardAmount additional overflow checking.
Added stop function. This action will move all reward tokens to the controller contract.
Added new contracts ZapContract and MultiSwap
More details in Tetu Zap Solution
https://github.com/tetu-io/tetu-contracts/compare/release-1.2.0...release-1.3.0
These changes were made since version 1.2.0 and deployed during October-November 2021
Big work was made for adoption contracts and tests for multi-chain.
The Github workflow now is running on Fantom by default.
It reduced run tests time from 90min to 17 minutes.
Unfortunately, we should disable coverage reporting for infrastructure and strategies.
Tests still run but on Codcove you will see only base contracts.
For full coverage report need to edit .solcover.js
and run npm run coverage
Adjusted revert messages
Allow call registerFundKeeperEarned() for strategies
registerPpfsChange() deprecated, this metric useless
Add pure reward consumers - they excluded from reward vesting mechanic. It needs for TetuSwap pairs and partnerships
Build from scratch a new forwarder contract with new liquidation logic.
Now we are doing fewer steps for distribution and able to liquidate fewer rewards without uniswap errors
Routes managing now clear and simple
Old contract removed
Add toInvest, rebalance and disableLocks settings
Create a new base contract with universal logic for any folding implementation.
Now we are able to build new folding strategies fast and use universal tests to keep safety on the highest possible level
Iron strategy was refactored accordingly but was not deployed (and I guess will not)
Add the possibility to pause a strategy without withdrawing funds.
Add additional check on withdrawing process - now we will not able to withdraw to vault less than 90% of the expected amount
Add silent liquidation process for Autocompound strategies - we have very little rewards for distributing and are not able to liquidate it in the most cases
Add universal autocompound functions for single tokens and uniswap-like LP tokens
AAVE
Curve
DinoPool
Geist
SpookySwap
TetuSwap (for internal purposes)
Revert messages removed/adjusted for keep contract size in 24kb
updateReward modifier/function was optimized
Add toInvest settings - we should keep some amount in vaults for cheaper swaps
Add disableLock() for disabling not initiated lock mechanic
Call invest() in doHardWork()
Allow moving locked tokens from controller
Revert messages adjusting
Add moveLiquidity() function for migration process
Improve adding liquidity
Add Curve tokens price calculation
Make contract proxy
Create function for storing info off-chain
Some fixes
As a result of many changes make a decision to calculate profitability based on earned TETU as the clearest and simple process.
The first version of contracts
TetuSwap pair
TetuSwap factory
TetuSwap router
TetuSwap library
Some internal contracts
These changes were made since version 1.1.0 and deployed during September-October 2021
The most sensitive upgrade for vaults is a milestone for upping the version.
Compatability for old strategies saved, mass strategy update not require.
Strategies now have an additional interface for computing KPI. All third-party interfaces were moved. The logic for computation weekly rewards moved to RewardCalculator
Added ArrayLib
Added AutoRewarder and RewardCalculator
Infrastructure folders rearranged
New strategies: Curve / Iron Lending / Cafe / Cosmic / Dino / Hermes / Iron Swap
The first version of TetuPawnshop contract
Added logic for register rewards distribution process. This logic requires for KPI calculation
Gas optimized removing from arrays regarding auditors recommendation
Check controller when register vault+strategy pair
Made contract able to deploy with Proxy. Added storage
Adjust revert messages
Added logic for split PS profit to TETU liquidity
Changed notifing vaults with function notifyRewardWithoutPeriodChange
Added simple public function for liquidating assets
Adjusted liquidation process for able to handle independent amounts
Added changePpfsDecreasePermissions for able to work with folding strategies
Revert messages improved
Lock mechanic for DiamondVault
Settings for allow ppfsDecrease for HardWork
Register reward distribution in Bookkeeper
Added logic for DiamondVault distribution
These changes were made since version 1.3.0 and deployed during November-December 2021
The main work was about Fantom launch adjustments.
Added new event logs.
Optimized contract size - removed modificators.
Mint function now has predefined recipients.
Preparation for Gelato usage for AMB strategies rebalances.
Totaly new logic for creating routes for the liquidation process.
Added logic for deposit fee.
Optimized contract size - removed modificators.
Added protection mode.
Reentrance lock protection for deposit/withdraw
Create autocompound logic with adjustable percent.
The more flexible way to collect and liquidate profit.
Optimized redeem process.
KLIMA
DinoV2
AAVE-MAI-BALANCER
Scream
QuickSwap Dual farming
VESQ
OpenZappelin contracts moved to local files
Added necessary time-locks and events
These changes were made since version 1.5.0 and deployed during March-April 2022
Huge changes were made for moving OpenZappeling contracts to a local directory and implementing ControllableV2 for base contracts. These changes were needed for cheaper gas usage on ethereum.
A solution for managing contracts slots directly using byte32
Added additional protection. Now able to set implementation only with Controllable inheritance.
The same controllable protection.
Adopted for ControllableV2
Adopted for ControllableV2. Removed SafeMath.
Replace OZ lib with a local file.
Adopted for ControllableV2.
Adopted for ControllableV2. OZ libs moved to local. Implemented temporally shortcut for BAL liquidation through Balancer pool.
Adopted for ControllableV2. OZ libs moved to local.
Adopted for ControllableV2. OZ libs moved to local.
Added setBuyBackRatio
OZ libs moved to local. Removed SafeMath.
Minor changes for all strategies - moved OZ libs to local, rename some variables, removed SafeMath. Changed buyback ratio for some strategies.
A new solution for cross-chain farming ve tokens.
A solution for decompound supply profit for market.xyz
Moved all contracts to proxies. Fixed some issues.
Strategy for farming any assets on QiDAO. A part of AMB logic (without AAVE pipe)
These changes were made since version 1.4.0 and deployed during January-February 2022
Added sorting functions
Registration vault and strategy logic was changed. Now we check them on Controller instead of internal Bookkeeper arrays for reducing gas cost.
Reward distribution logic was improved for properly register StrategySplitter snapshots
New base component. Gas usage optimised. Compatable with V1 slots but some functions removed, require properly changes on child contracts.
Contract size optimized. Was removed all modifiers and replaced to functions calls.
Added StrategySplitter governance function addStrategiesToSplitter()
Slippage now is a changable variable.
Added minimal amount for processing for reducing gas cost of doHardWork actions
Migrated from Controllabel to ControllableV2
Created VaultLib, moved some static logic to the lib. Properly changed functions for using the library.
Optimisation for reducing gas cost.
Name and Symbol can be overriden. However it will be not reflect on polygonscan :(
Added a logic for
call doHardWork on invest actions
ability to always call invest on deposit actions
Removed SafeMath library.
All strategies doHardWork() now able to call directly (from HardWorkers EOAs) without using vault or controller. It needs for more flexible managing this process from off-chain scrips.
Removed deprecated interfaces
Added manual actions for HardWorkers
Now we are not investing assets and not rebalance during doHardWork for reducing gas usage. These actions moved to off-chain script and calls when it is really necessary.
Created ProxyStrategyBase for using with proxy strategies
New middle layer solution. Using between Vault and multiple strategies.
For vault the splitter is a strategy, for sub-strategies the splitter is a vault.
Contains partially functionality from vault and strategy for properly emulating behavior.
Alpaca
Beethoven
Impermax
Qi staking
Self farm strategy
Nacho
Tomb
Added balancer tokens price determination
Now we are able to exclude some platforms from calculation.
Distribution period changed to 7 days
Removed deprecated functions
Optimised reward calculation process.
Added sync() call for each swap call
These changes were made since version 1.6.0 and deployed during April-May 2022
We moved all strategies to dedicated repositories:
https://github.com/tetu-io/tetu-contracts/compare/release-1.6.0...release-1.7.0
Added function claimFor(). It requires approval for the caller.
Few minor changes in PriceCalculator, Autorewarder.
New contract DepositHelper as a central entry point for all vaults.