> For the complete documentation index, see [llms.txt](https://docs.tetu.io/tetu-io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tetu.io/tetu-io/technical/updates/tetu.io-contracts-update-1.3.0.md).

# Tetu.io contracts update 1.3.0

<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.&#x20;

The Github workflow now is running on Fantom by default.&#x20;

It reduced run tests time from 90min to 17 minutes.&#x20;

Unfortunately, we should disable coverage reporting for infrastructure and strategies.&#x20;

![](https://316135650-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Me8Xn_pJtAjktHi3oBg%2Fuploads%2FlYXFpaUmeUxcloRFfRxZ%2Fimage.png?alt=media\&token=d803d54b-662d-49b7-ac34-5a0c25a22403)

Tests still run but on Codcove you will see only base contracts.&#x20;

For full coverage report need to edit `.solcover.js` and `run npm run coverage`

## Base Contracts

### Bookkeeper 1.1.1 -> 1.1.2

* Adjusted revert messages
* Allow call registerFundKeeperEarned() for strategies
* registerPpfsChange() deprecated, this metric useless

### Controller 1.1.0 -> 1.2.0

* Add pure reward consumers - they excluded from reward vesting mechanic. It needs for TetuSwap pairs and partnerships

### FeeRewardForwarder -> ForwarderV2

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

### VaultController 1.1.0 -> 1.2.0

* Add toInvest, rebalance and disableLocks settings

### Folding strategies

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)

### StrategyBase

* 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

### New strategies:

* AAVE
* Curve
* DinoPool
* Geist
* SpookySwap
* TetuSwap (for internal purposes)

### SmartVault 1.3.1 -> 1.5.1

* 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

## Infrastructure Contracts

### LiquidityBalancer 1.0.0 -> 1.1.0

* Revert messages adjusting
* Add moveLiquidity() function for migration process
* Improve adding liquidity

### PriceCalculator 1.2.1 -> 1.3.1

* Add Curve tokens price calculation

### AutoRewarder 1.0.0 -> 1.1.1

* Make contract proxy
* Create function for storing info off-chain
* Some fixes

### RewardCalculator 1.0.0 - 1.4.1

* As a result of many changes make a decision to calculate profitability based on earned TETU as the clearest and simple process.

## TetuSwap

The first version of contracts

* TetuSwap pair
* TetuSwap factory
* TetuSwap router
* TetuSwap library
* Some internal contracts
