Skip to content

v10 RC3 ToB

Compare
Choose a tag to compare
@grandizzy grandizzy released this 06 Mar 08:46
· 207 commits to master since this release
65bcd8e

v0.10.0 Release Candidate 3

Sherlock audit fixes

  • Sherlock 116 (Pools - change function signatures): Incorrect Validation in Pool.sol#transferLPs lead to a DOS attack (#625 #659) Introduced Pool.increaseLPAllowance, Pool.decreaseLPAllowance and Pool.revokeLPAllowance to set the amount of LPs allowed for transferors
  • Sherlock 156 (Pools - change function signatures): Anyone can transfer approved LP tokens (Pools - change function signatures) (#625 #659)
    Introduced Pool.approveLpTransferors and Pool.revokeLpTransferors lender external function to allow addresses as LPs transferors
  • Sherlock 111 (Pools - change function signatures): Adversary can grief kicker by frontrunning kickAuction call with a large amount of loan (#633)
    Introduced limitIndex param to Pool.kick and Pool.kickWithDeposit functions (#633)
  • Sherlock 100 (Pools): Interest rates can be raised above the market as a griefing, disabling the pool (#644 #662)
  • Sherlock 13 (PositionManager): Memorializing an NFT position on the same bucket of a previously memorialized NFT locks redemption (#626 #656)
  • Sherlock 19 (PositionManager): Minting an NFT with a position on the same bucket as a previously minted NFT changes its deposit time (#626 #656)

Bug fixes

  • Bug fix (Pool): Revert on remove collateral if not enough LPs. Mul before div (#613)
  • Bug fix (Pool): fix reserves calculation, maintain single totalBondEscrowed accumulator (#637)
  • Bug fix (Pool): Fix deposit time logic when move quote token, account bucket bankruptcy (#623)
  • Bug fix (Pool): allow kicker to withdraw parts of claimable bonds amount (#642)
  • Bug fix (RewardsManager): Handle bankrupt buckets in RewardManager. (#630)
  • Bug fix (PositionManager): Remove transfer with permit (#654)

Improvements

  • Improvement (Pool): Remove early withdrawal penalty, implement unutilized deposit fee (#640 #658)
  • Improvement (Pool): validate user input and revert in case of noops (#636)
  • Improvement (RewardsManager): Allow move staked nft liquidity, introduced RewardsManager.moveStakedLiquidity function (#638)
  • Improvement (gas optimization): Pack BucketState struct into a single slot (#645)
  • Improvement (consistency): RewardsManager: rename lastInteractionBurnEpoch to lastClaimedEpoch (#544)
  • Events improvements (Pool, PositionManager - change events signatures):
    include indexes in MemorializePosition, RedeemPosition, MoveLiquidity events (#628)
    include current burn epoch in ReserveAuction event (#635)
  • NFT support improvements (ERC721Pool, PositionManager, RewardsManager): remove usage of safeTransferFrom and onERC721Recieved (#629)
  • Improvements (Pool - change function signatures) :
    return moved amount from Pool.moveQuoteToken function (#624)
    return alreadyTaken from Pool.auctionInfo function (#634)
    return totalInterestEarned from Pool.reservesInfo function