Skip to content

Latest commit

 

History

History
727 lines (601 loc) · 26 KB

File metadata and controls

727 lines (601 loc) · 26 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

Added

  • add getOracleAddresses to SiloLens

[3.9.0] - 2025-07-03

Added

  • silo-core: Silo hook deployment (#1453)
  • silo-core: GaugeHookReceiver with Ownable 1-step transfer (#1447)
  • silo-core: Manual liquidation helper accepts native tokens (#1439)
  • silo-core: Allow multiple instances of liquidation helper (#1436)
  • new markets:
    • silo-core: wmetaS/wS market on Sonic (#1437)
    • silo-core: Anon/USDC.e market on Sonic (#1438)
    • silo-core: yUSD/USDC Silo on Arbitrum (#1446)
    • silo-core: sACRED/USDC market on Avalanche (#1452)
    • silo-core: USDf/USDC market on mainnet (#1442)

Fixed

  • silo-core: fix leverage bug with swap abusing debt share token receive allowance and ERC-20 approval (#1434)

[3.8.0] - 2025-06-26

Added

  • silo-core: Ethereum mainnet deployment
  • silo-core: Avalanche deployment
  • silo-vaults: Avalanche deployment
  • silo-oracles: Avalanche deployment
  • silo-oracles: Wrapped Pendle LP tokens price providers
  • silo-oracles: WrappedMetaVaultOracleAdapter
  • silo-oracles: ERC4626Oracle with hardcoded quote token
  • silo-oracles: ERC4626OracleWithUnderlying
  • silo-oracles: Oracle scaler factory mainnet deployment
  • silo-oracles: PT oracles deployments
  • silo-oracles: Adjust PT oracles for different decimals case
  • silo-core: SiloIncentivesControllerFactory deployment
  • silo-core: SiloHookV1 deployment
  • silo-core: SiloVerifier for the Pendle LPT markets
  • silo-core: SiloRouterV2 deployment with Pendle LP tokens wrap/unwrap support
  • silo-core: leverage live deployment for sonic, mainnet
  • silo-core: certora rules for leverage debt token approvals
  • silo-core: protect permit in leverage from frontrun
  • new markets:
    • silo-core: PT-stS-18DEC2025 wS market on Sonic
    • silo-core: xUSD scUSD Silo on Sonic
    • silo-core: sUSDX USDC Silo on Arbitrum
    • silo-core: ARB USDC Silo on Arbitrum
    • silo-core: WBTC USDC Silo on Arbitrum
    • silo-core: sUSDf/USDC mainnet market
    • silo-core: PT-sUSDf-25SEP2025/USDC mainnet market
    • silo-core: wmetaUSD/USDC Sonic market
    • silo-core: USR/USD market on mainnet
    • silo-core: ezETH/WETH mainnet market
    • silo-core: weETH WETH Silo on mainnet
    • silo-core: LPT-sUSDE-25SEP2025/USD mainnet market
    • silo-core: LPT-sUSDE-31JUL2025/USD mainnet market
    • silo-core: LPT-eUSDe-14AUG25/USD mainnet market
    • silo-core: PT-eUSDE-14AUG2025/USDC mainnet market
    • silo-core: PT-cUSDO-20NOV2025/USDC mainnet market
    • silo-core: PT-sUSDE-25SEP2025/USDC mainnet market
    • silo-core: PT-USDS-14AUG2025/USDC mainnet market
    • silo-core: PT-eUSDE-14AUG2025/USDf mainnet market
    • silo-core: WBTC/USDC market on mainnet
    • silo-core: RLP/USDC market on mainnet
    • silo-core: wsrUSD/USDC mainnet market
    • silo-core: USR/USDC mainnet market redeployment
    • silo-core: wstUSR/USD mainnet market
    • silo-core: PT-USDe 25 Sep 2025 / USDC mainnet market
    • silo-core: mMEV/USDC mainnet market
    • silo-core: PT-USR-4SEP2025/USDC mainnet market
    • silo-core: PT-wstUSR-25SEP2025/USDC mainnet market
    • silo-core: PT-RLP-4SEP2025/USDC mainnet market
    • silo-core: WAVAX/USDC avalanche market
    • silo-core: sdeUSD/USDC avalanche market
    • silo-core: deUSD/USDC avalanche market
    • silo-core: BTC.b/WAVAX Avalanche market
    • silo-core: ggAVAX/WAVAX Avalanche market
    • silo-core: sBUIDL/USDC Avalanche market
    • silo-core: sAVAX/WAVAX Avalanche market
    • silo-core: scBTC/scUSD sonic market
    • silo-core: savBTC/WBTC.b avalanche market
    • silo-core: AUSD/USDC avalanche market
    • silo-core: savUSD/USDC avalanche market
    • silo-core: wsrUSD/USDC sonic market
    • silo-core: wmetaUSD/scUSD sonic market

Removed

  • silo-oracles: remove heartbeat check from DIA oracle
  • silo-oracles: remove heartbeat check from Chainlink oracle
  • Removed ve-silo and proposals

[3.7.0] - 2025-06-10

Added

  • silo-core: Ethereum deployment
  • silo-vaults: Ethereum deployment
  • silo-oracles: DIA price provider deployments
  • x-silo: XSilo and Stream
  • x-silo: production deployment
  • silo-vaults: fixed decimals offset
  • silo-core: enigma invariant suite core
  • new markets:
    • silo-core: PT-Silo-46-scUSD-14AUG2025 USDC.e market on Sonic
    • silo-core: PT-aSonUSDC-14AUG2025 USDC.e Silo on Sonic
    • silo-core: PT-Silo-20-USDC.e-17JUL2025 USDC.e new market on Sonic
    • silo-core: WBTC USDC new market on Arbitrum
    • silo-core: wstETH WETH new market on Arbitrum
    • silo-core: kBTC USDT0 Silo on Ink
    • silo-core: kBTC WETH Silo on Ink
    • silo-core: ezETH WETH market on Arbitrum
    • silo-core: WBTC WETH market on Arbitrum
    • silo-core: ARB WETH market on Arbitrum
    • silo-core: ETH+ WETH market on Arbitrum
    • silo-core: PEAS USDC on Arbitrum
    • silo-core: GRAIL USDC market on Arbitrum
    • silo-core: PT-wstkscUSD-18DEC2025 USDC.e market on Sonic
    • silo-core: PT-wOS-18DEC2025 wS silo on Sonic
    • silo-core: PT-wstkscETH-18DEC2025 WETH market on Sonic
    • silo-core: yUSD USDC.e silo on Sonic
    • silo-core: OS scUSD market on Sonic
    • silo-core: xUSD USDC.e market on Sonic

[3.6.0] - 2025-05-19

#Added

  • certora specs for the Silo Vaults
  • silo-core: incentive program name conversion
  • silo-core: liquidation helper deployment ink
  • silo-oracles: revert on zero price in DIA
  • silo-oracles: pyth deployment
  • SiloIncentivesController and SiloVaultDeployer deployment
  • new markets:
    • silo-core: WETH USDC market on Arbitrum
    • silo-core: sUSDX USDC new market Arbitrum
    • silo-core: ARB USDC new market on Arbitrum
    • silo-core: WETH USDT market on Ink

[3.5.0] - 2025-05-15

  • silo-core: fix maxBorrow, see explanation in code, method maxBorrowValueToAssetsAndShares()
  • silo-core: Silo implementation redeploy
  • silo-core: SiloLens isTokenAddress fn check code size
  • silo-core: wstkscUSD USDC.e new market
  • silo-core: wOS wS borrowable new market
  • silo-core: EURC.e USDC.e new market

[3.4.0] - 2025-05-09

  • silo-core: prioritize DAO fee to ensure it is not zero-out by precision error
  • silo-core: count for fractions when calculate maxBorrow
  • silo-core: underestimate maxWithdraw to count for interest fractions
  • silo-core: fix maxRedeem for dust
  • silo-core: proper name conversion in the getProgramName fn
  • silo-core: silo lens getter for programs names
  • silo-core: Incentives controller for ws in beS / wS Silo
  • silo-vaults: helper contract to deploy claiming logics
  • x-silo: Silo Token V2
  • sonic deployment: silo-core, silo-oracles
  • arbitrum deployment: silo-core, silo-oracles, silo-vaults
  • optimism deployment: silo-core, silo-oracles, silo-vaults
  • ink deployment: silo-core, silo-oracles, silo-vaults

[3.3.0] - 2025-05-01

  • silo-vaults: SiloIncentivesControllerCLDeployer helper contract to deploy claiming logics
  • silo-core: moved hooks into silo-core/contracts/hooks

[3.2.0] - 2025-04-30

  • Revert "silo-vaults: deployment sonic 1 min timelock"
  • silo-core: silo lens getter for programs names

[3.1.0-rc.3] - 2025-04-23

  • silo-vaults: deployment sonic 1 min timelock

[3.1.0] - 2025-04-23

  • silo-vaults: deployment sonic
  • silo-core: SiloDeployer hook and config reorg
  • silo-core: InterestRateModelV2Factory reorg protection
  • silo-oracles: factories reorg protection

[3.1.0-rc.2] - 2025-04-18

  • silo-vaults: deployment min timelock 1 day

[3.1.0-rc.1] - 2025-04-18

  • silo-vaults: deployment min timelock 1 min

[3.0.0] - 2025-04-17

  • silo-vaults: Silo Vaults Deployer
  • silo-vaults: Incentives claiming logics trusted factories
  • silo-vaults: Deflation attack
  • silo-vaults: Wrong calculation of toSupply which is supplied to a market will lead to less supply for some markets
  • silo-vaults: Fee not Accrued In Transfer Functions Leads to Reward Loss
  • silo-vaults: Supply function doesn't account for market maxDeposit when providing assets to it
  • silo-vaults: SiloVault.sol :: Markets with assets that revert on zero approvals cannot be removed
  • silo-vaults: SiloVault.maxDeposit and SiloVault.maxMint don't comply with ERC4626
  • silo-vaults: L-01 Factories using CREATE opcode create contracts vulnerable to reorgs
  • silo-vaults: Improvement: exact approvals on deposit
  • silo-vaults: Improvement: Incentives module owner is the silo vault owner (Ownable2Step removed)
  • silo-vaults: Changed permissions: setArbitraryLossThreshold fn and syncBalanceTracker fn only guardian
  • silo-vaults: Acceptable loss configuration
  • silo-vaults: internal balances sync
  • silo-vaults: syncBalanceTracker fn require valid override input
  • silo-vaults: approval on deposit
  • silo-vaults: create2 factories
  • silo-vaults: Incentives module owner is the silo vault owner
  • silo-core: [M-01] catch when fee transfer is not successful
  • silo-core: address as programId on immediate rewards distribution
  • silo-core: store fraction of interest and fraction of fees
  • silo-core: add reentrancy protection for liquidation call
  • silo-core: PT-aSonUSDC-14AUG2025 / scUSD market
  • silo-core: PT-wstkscETH/scETH market
  • silo-core: sfrxUSD / scUSD new market
  • silo-core: WBTC / USDC Silo
  • silo-core: x33 asset adapter
  • silo-core: x33 new Silo
  • silo-core: add bulk methods for APR in SiloLens
  • silo-core: ERC4626 price provider update
  • silo-core: SiloFactory initial silo id 100
  • silo-core: restore current router deployments
  • silo-core: DebtShareToken with receive approval on mint
  • bump: solidity to 0.8.29

[2.1.0] - 2025-04-16

Fixed

[2.0.1] - 2025-03-19

Fixed

[2.0.0] - 2025-03-19

Added

Changed

Fixed

Updated

Removed

[1.9.0] - 2025-02-28

Added

  • add method getUsersHealth to SiloLens

[1.8.0] - 2025-02-25

Added

  • SiloLens redeployment

[1.7.0] - 2025-02-26

Added

  • LBTC / scBTC market on Sonic
  • LBTC / WBTC market on Sonic

[1.6.0] - 2025-02-25

Added

  • SiloRouter deployment

[1.5.0] - 2025-02-19

Added

  • SiloLens deployment

[1.4.0] - 2025-02-18

Added

  • Router with multicall

[1.3.5] - 2025-02-07

Updated

  • stS/S market with 18 decimals share token on Sonic

[1.3.4] - 2025-02-07

Updated

  • deploy new LiquidationHelper

[1.3.3] - 2025-02-06

Updated

  • adjustment for coverage to work

[1.3.2] - 2025-02-04

Added

  • Anon/USDC.e market sonic

[1.3.1] - 2025-02-04

Added

  • wstkscETH/ETH market sonic

[1.3.0] - 2025-02-04

Added

  • wanS/S market sonic

[1.2.0] - 2025-02-03

Added

  • silo-coracle: silo virtual asset name and symbol
  • silo-core: add flag that informs about full liquidation
  • silo lens redeployment
  • silo-oracles: ERC4626 price oracle
  • silo-oracles: Pyth aggregator factory
  • silo-oracles: OracleScaler to normalize amounts for 18 decimal
  • silo-core: manual liquidation helper
  • wS/USDC.e borrowable S market sonic
  • woS/S market sonic
  • wstkscUSD/USDC.e market sonic

[1.1.0] - 2025-01-27

Added

  • solvBTC.BNN/solvBTC market sonic
  • wS/scUSD market sonic
  • Redeployment SiloDeployer
  • silo-core: use underlying token decimals in collateral share token
  • silo-oracles: invert flag

[1.0.0] - 2025-01-20

Added

  • add rescue function to incentive controller

Updated

  • allow to restart incentive program after some time and ensure rewards are not calculated for a "gap"
  • ensure claim rewards reset state after claiming

[0.20.0] - 2025-01-10

Updated

  • Redeployment market for Sonic: stS/S
  • Redeployment SiloRouter
  • Redeployment GaugeHookReceiver with updated event and reduced contract size

[0.19.0] - 2025-01-08

Added

  • Redeployment market for Sonic: stS/S
  • Redeployment GaugeHookReceiver
  • Extended LiquidationCall event
  • silo vaults catch 63/64 gas attack

[0.18.0] - 2025-01-07

Added

  • Sonic and Arbitrum deployments
  • new market for Sonic: stS/S
  • Silo Incentives controller
  • Silo vaults incentives module and incentives claiming logic
  • Renaming of 'MetaMorpho' to 'SiloVaults'
  • Extended LiquidationCall event

[0.17.3] - 2024-12-20

Fixed

  • allow LiquidationHelper to accept ETH

[0.17.2] - 2024-12-16

Added

  • new markets for v0.17: wstETH/WETH, gmETH/WETH, solvBTC/wBTC, ETHPlus/WETH

[0.17.1] - 2024-12-14

Updated

  • redeployment of silo-vault with MIN_TIMELOCK set to 1 minute for QA purposes

[0.17.0] - 2024-12-14

Updated

  • redeployment of whole protocol

[0.16.0] - 2024-12-12

Added

  • add support for custom oracle setup

[0.15.1] - 2024-12-03

Added

  • add initial setup for IRM params: ri and Tcrit

Fixed

  • fix maxBorrow estimation

[0.15.0] - 2024-12-02

Added

  • PublicAllocator contract for vaults
  • add reentrancy for withdrawFees

Fixed

  • ensure transition deposit not fail when user insolvent

[0.14.0] - 2024-11-25

Added

  • Vault functionality based on MetaMorpho
    • MetaMorpho was adjusted to work with ERC4626 standard
    • Concept of Idle market needs to be replaced with additional vault. By default, in Silo IdleVault is used.

[0.13.0] - 2024-11-19

Added

  • LiquidationHelper and Tower

[0.12.1] - 2024-11-04

Added

  • LICENSE

Changed

  • modified license for some solidity files

Fixed

  • SiloLens redeployment

[0.12.0] - 2024-11-01

Added

  • solvBTC/wBTC market Arbitrum
  • gmETH/WETH market Arbitrum
  • wstETH/WETH market Arbitrum
  • ETH+/WETH market Arbitrum
  • SiloRouter with preview methods instead of convertToAssets

[0.11.0] - 2024-10-30

Changed

  • dao fee can be set based on range

[0.10.1] - 2024-10-29

Added

  • optimism deployment

[0.10.0] - 2024-10-28

Changed

  • make target LTV after liquidation configurable

[0.9.1] - 2024-10-25

Fixed

  • SiloRouter with convertToAssets

[0.9.0] - 2024-10-23

Changed

  • allow for forced transfer of debt
  • use transient storage for reentrancy flag

Fixed

  • remove unchecked math from some places
  • exclude protected assets from flashloan

Removed

  • remove leverageSameAsset
  • remove self liquidation
  • remove decimals from value calculations

[0.8.0] - 2024-09-13

Design changes:

  • The liquidation module was transformed into a hook receiver.
  • Silo is now a share collateral token and implements share token functionality. So, now we have collateral share token (silo), protected share token (customized ERC-20), debt share token (customized ERC-20).
  • Removed ‘bool sameAsset’ from the silo and introduced separate methods for work with the same asset.
  • Removed ordered configs from the SiloConfig and introduced a collateral silo concept.
  • Removed ‘leverage’ functionality from the Silo.borrow fn.
  • Removed InterestRateModelV2.connect and added InterestRateModelV2.initialize. Now each silo has a different irm that is a minimal proxy and is cloned during the silo deployment like other components

[0.7.0] - 2024-06-03

Added

  • Refactoring of the hooks' actions and hooks inputs
  • Reentrancy bug fix in flashLoan fn
  • Rounding error bug fix in maxWithdraw fn
  • Overflow bug fix on maxWithdraw fn
  • ERC20Permit for share token
  • Added delegate call into the callOnBehalfOfSilo fn
  • Other minor fixes and improvements

[0.6.2] - 2024-05-15

Added

  • deployment with mocked CCIP and tokens for Arbitrum and Optimism

[0.6.1] - 2024-05-14

Fixed

  • apply fixes for certora report

[0.6.0] - 2024-05-06

Added

  • deposit to any silo without restrictions
  • borrow same token
    • liquidation for same token can be done with sToken without reverting
    • case observed on full liquidation: when we empty out silo, there is dust left (no shares)

Changed

  • standard reentrancy guard was replaced by cross Silo reentrancy check

Fixed

  • fix issue with wrong configs in isSolvent after debt share transfer

[0.5.0] - 2024-03-12

Added

  • SiloLens deploy

[0.4.0] - 2024-02-22

Added

  • add returned code for IHookReceiver.afterTokenTransfer

[0.3.3] - 2024-02-21

Fixed

  • underestimate maxWithdraw

[0.3.2] - 2024-02-20

Fixed

  • fix rounding on maxRedeem
  • fix rounding on maxBorrow

[0.3.1] - 2024-02-19

Fixed

  • optimise maxWithdraw: do not run getTotalCollateralAssetsWithInterest twice

[0.3.0] - 2024-02-15

Added

  • add SiloLens to reduced Silo size

Changed

  • change visibility of total mapping to public
  • ensure total getters returns values with interest

Removed

  • remove getProtectedAssets()

[0.2.0] - 2024-02-13

Added

  • Arbitrum and Optimism deployments

[0.1.7] - 2024-02-12

Fixed

  • fix maxBorrowShares by using -1, same solution as we have for maxBorrow

[0.1.6] - 2024-02-12

Fixed

  • fix max redeem: include interest for collateral assets

[0.1.5] - 2024-02-08

Fixed

  • accrue interest on both silos for borrow

[0.1.4] - 2024-02-08

Changed

  • improvements to silo-core, new test environments: certora, echidna

[0.1.3] - 2024-02-07

Fixed

  • SiloStdLib.flashFee fn revert if _amount is 0

[0.1.2] - 2024-01-31

Fixed

  • ensure we can not deposit shares with 0 assets

[0.1.1] - 2024-01-30

Fixed

  • ensure we can not borrow shares with 0 assets

[0.1.0] - 2024-01-03

  • code after first audit + develop changes

[0.0.36] - 2023-12-27

Fixed

  • issue-320 TOB-SILO2-19: max* functions return incorrect values: underestimate maxBorrow more, to cover big amounts

[0.0.35] - 2023-12-27

Fixed

  • issue-320 TOB-SILO2-19: max* functions return incorrect values: add liquidity limit when user has no debt

[0.0.34] - 2023-12-22

Fixed

  • TOB-SILO2-10: Incorrect rounding direction in preview functions

[0.0.33] - 2023-12-22

Fixed

  • TOB-SILO2-13: replaced leverageNonReentrant with nonReentrant, removed nonReentrant from the flashLoan fn

[0.0.32] - 2023-12-22

Fixed

  • issue-320 TOB-SILO2-19: max* functions return incorrect values

[0.0.31] - 2023-12-18

Fixed

  • issue-319 TOB-SILO2-18: Minimum acceptable LTV is not enforced for full liquidation

[0.0.30] - 2023-12-18

Fixed

  • issue-286 TOB-SILO2-3: Flash Loans cannot be performed through the SiloRouter contract

[0.0.29] - 2023-12-18

Fixed

  • issue-322 Repay reentrancy attack can drain all Silo assets

[0.0.28] - 2023-12-18

Fixed

  • issue-321 Deposit reentrancy attack allows users to steal assets

[0.0.27] - 2023-12-15

Fixed

  • issue-255: UniswapV3Oracle contract implementation is left uninitialized

[0.0.26] - 2023-12-15

Fixed

[0.0.25] - 2023-12-15

Fixed

  • TOB-SILO2-16: Minting zero collateral shares can inflate share calculation

[0.0.24] - 2023-12-15

Fixed

[0.0.23] - 2023-12-15

Fixed

  • TOB-SILO2-12: Risk of deprecated Chainlink oracles locking user funds

[0.0.22] - 2023-12-15

Fixed

  • TOB-SILO2-10: Incorrect rounding direction in preview functions

[0.0.21] - 2023-12-12

Fixed

  • TOB-SILO2-13: Users can borrow from and deposit to the same silo vault to farm rewards

[0.0.20] - 2023-12-11

Fixed

EVM version changed to paris

[0.0.19] - 2023-12-01

Fixed

  • TOB-SILO2-9: fix avoiding paying the flash loan fee

[0.0.18] - 2023-12-01

Fixed

  • TOB-SILO2-7: fix fee distribution
  • TOB-SILO2-8: fix fee transfer

[0.0.17] - 2023-11-29

Added

  • TOB-SILO2-4: add 2-step ownership for SiloFactory and GaugeHookReceiver

[0.0.16] - 2023-11-28

Fixed

  • TOB-SILO2-6: ensure no one can initialise GaugeHookReceiver and SiloFactory

[0.0.15] - 2023-11-28

Fixed

  • TOB-SILO2-1: ensure silo factory initialization can not be front-run

[0.0.14] - 2023-11-28

Fixed

  • tob-silo2-5: fix deposit limit

[0.0.13] - 2023-11-21

Fixed

  • fix ASSET_DATA_OVERFLOW_LIMIT in IRM model

[0.0.11] - 2023-11-14

Fixed

[0.0.10] - 2023-11-14

Fixed

[0.0.9] - 2023-11-13

Fixed

[0.0.8] - 2023-11-13

Fixed

[0.0.7] - 2023-11-10

Fixed

[0.0.6] - 2023-11-10

Fixed

[0.0.5] - 2023-11-10

Fixed

[0.0.4] - 2023-11-10

Fixed

[0.0.3] - 2023-10-26

Added

  • silo-core for audit

[0.0.2] - 2023-10-18

Added

  • silo-oracles for audit

[0.0.1] - 2023-10-06

Added

  • ve-silo for audit