@pendle/core-v2 0.21.0-testnet → 1.0.1-mainnet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  9. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +4 -0
  10. package/build/artifacts/contracts/{interfaces/IApeStaking.sol/IApeStaking.json → LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.json} +52 -70
  11. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +4 -0
  12. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +310 -0
  13. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +4 -0
  14. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +389 -0
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  40. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  42. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  44. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  49. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  66. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  68. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  70. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  72. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  74. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +5 -134
  76. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.json +0 -18
  78. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +32 -43
  87. package/build/artifacts/contracts/interfaces/IPFeeDistributorFactory.sol/IPFeeDistributorFactory.dbg.json +4 -0
  88. package/build/artifacts/contracts/interfaces/{Balancer/IGauge.sol/IGauge.json → IPFeeDistributorFactory.sol/IPFeeDistributorFactory.json} +33 -18
  89. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  92. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  93. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  94. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  95. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -42
  96. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  97. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +100 -73
  98. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  99. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  100. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  101. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  102. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  103. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  104. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  105. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  106. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  107. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  108. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  109. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  110. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  111. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  112. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  113. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  114. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  115. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  117. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  118. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  119. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
  120. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +2 -2
  121. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +1 -1
  122. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +4 -0
  123. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.json +136 -0
  124. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  125. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +9 -7
  126. package/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol +159 -0
  127. package/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol +99 -0
  128. package/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol +70 -0
  129. package/contracts/core/BulkSeller/BulkSeller.sol +1 -1
  130. package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +3 -1
  131. package/contracts/core/libraries/ArrayLib.sol +0 -12
  132. package/contracts/core/libraries/Errors.sol +2 -15
  133. package/contracts/interfaces/ConvexCurve/IRewards.sol +0 -5
  134. package/contracts/interfaces/IPFeeDistributor.sol +10 -12
  135. package/contracts/interfaces/IPFeeDistributorFactory.sol +14 -0
  136. package/contracts/offchain-helpers/MarketMathStatic.sol +1 -1
  137. package/contracts/router/kyberswap/AggregationRouterHelper.sol +192 -194
  138. package/contracts/router/kyberswap/IMultihopRouter.sol +139 -0
  139. package/deployments/1-core.json +29 -0
  140. package/deployments/1-markets/FRAXUSDC-CURVELP-MARCH30.json +11 -0
  141. package/deployments/1-markets/LOOKS-STAKING-MARCH30.json +10 -0
  142. package/deployments/1-markets/STETH-JUNE29.json +10 -0
  143. package/deployments/1-markets/STETH-MARCH30.json +10 -0
  144. package/package.json +6 -6
  145. package/typechain-types/IApeStaking.ts +0 -31
  146. package/typechain-types/IPFeeDistributor.ts +78 -61
  147. package/typechain-types/IPFeeDistributorFactory.ts +139 -53
  148. package/typechain-types/IRewards.ts +5 -35
  149. package/typechain-types/MarketMathStatic.ts +0 -49
  150. package/typechain-types/PendleApeStakingSY.ts +204 -88
  151. package/typechain-types/PendleFeeDistributor.ts +117 -409
  152. package/typechain-types/RouterStatic.ts +49 -0
  153. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  154. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  155. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  156. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  157. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  158. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  159. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  160. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  161. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  162. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  163. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  164. package/typechain-types/factories/Errors__factory.ts +4 -133
  165. package/typechain-types/factories/IApeStaking__factory.ts +0 -34
  166. package/typechain-types/factories/IPFeeDistributorFactory__factory.ts +34 -25
  167. package/typechain-types/factories/IPFeeDistributor__factory.ts +31 -42
  168. package/typechain-types/factories/IRewards__factory.ts +0 -18
  169. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -41
  170. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  171. package/typechain-types/factories/PendleApeStakingSY__factory.ts +141 -57
  172. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  173. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  174. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
  175. package/typechain-types/factories/PendleFeeDistributor__factory.ts +66 -341
  176. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  177. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  178. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  179. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  180. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  181. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  182. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  183. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  184. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  185. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  186. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  187. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  188. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  189. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  190. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  191. package/typechain-types/factories/RouterStatic__factory.ts +41 -18
  192. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  193. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  194. package/typechain-types/hardhat.d.ts +40 -301
  195. package/typechain-types/index.ts +10 -68
  196. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +0 -4
  197. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +0 -592
  198. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +0 -4
  199. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.json +0 -10
  200. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +0 -4
  201. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +0 -1075
  202. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +0 -4
  203. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +0 -1257
  204. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +0 -4
  205. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +0 -1244
  206. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +0 -4
  207. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +0 -1218
  208. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +0 -4
  209. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +0 -1192
  210. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +0 -4
  211. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +0 -10
  212. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +0 -4
  213. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +0 -133
  214. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +0 -4
  215. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.json +0 -10
  216. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +0 -4
  217. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +0 -40
  218. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +0 -4
  219. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +0 -322
  220. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +0 -4
  221. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.json +0 -1171
  222. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +0 -4
  223. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +0 -10
  224. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +0 -4
  225. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.json +0 -133
  226. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +0 -4
  227. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.json +0 -10
  228. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +0 -4
  229. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.json +0 -24
  230. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +0 -4
  231. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.json +0 -133
  232. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +0 -4
  233. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.json +0 -328
  234. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +0 -4
  235. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.json +0 -467
  236. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +0 -4
  237. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +0 -4
  238. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.json +0 -30
  239. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +0 -4
  240. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.json +0 -398
  241. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +0 -4
  242. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.json +0 -24
  243. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +0 -4
  244. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.json +0 -278
  245. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +0 -4
  246. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +0 -4
  247. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +0 -322
  248. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +0 -4
  249. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +0 -47
  250. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
  251. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +0 -10
  252. package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  253. package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +0 -65
  254. package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
  255. package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +0 -388
  256. package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
  257. package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.json +0 -101
  258. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +0 -4
  259. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json +0 -183
  260. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  261. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +0 -215
  262. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +0 -224
  263. package/contracts/core/StandardizedYield/StEthHelper.sol +0 -71
  264. package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +0 -197
  265. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol +0 -170
  266. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol +0 -162
  267. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +0 -134
  268. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +0 -154
  269. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +0 -289
  270. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +0 -618
  271. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol +0 -68
  272. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +0 -322
  273. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +0 -390
  274. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +0 -329
  275. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +0 -30
  276. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +0 -189
  277. package/contracts/interfaces/Balancer/IAsset.sol +0 -4
  278. package/contracts/interfaces/Balancer/IBalancerFees.sol +0 -6
  279. package/contracts/interfaces/Balancer/IBalancerStablePreview.sol +0 -22
  280. package/contracts/interfaces/Balancer/IBasePool.sol +0 -30
  281. package/contracts/interfaces/Balancer/IComposableStable.sol +0 -39
  282. package/contracts/interfaces/Balancer/IGauge.sol +0 -10
  283. package/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol +0 -6
  284. package/contracts/interfaces/Balancer/IMetaStablePool.sol +0 -31
  285. package/contracts/interfaces/Balancer/IRateProvider.sol +0 -6
  286. package/contracts/interfaces/Balancer/IVault.sol +0 -78
  287. package/contracts/interfaces/IApeStaking.sol +0 -30
  288. package/contracts/offchain-helpers/Multicall2.sol +0 -103
  289. package/contracts/offchain-helpers/PendleMulticall.sol +0 -26
  290. package/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol +0 -147
  291. package/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol +0 -17
  292. package/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol +0 -191
  293. package/contracts/router/kyberswap/interfaces/IHashflow.sol +0 -30
  294. package/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol +0 -33
  295. package/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol +0 -42
  296. package/deployments/43113-core.json +0 -29
  297. package/deployments/43113-helper.json +0 -4
  298. package/deployments/43113-markets/APE-30-MARCH.json +0 -10
  299. package/deployments/43113-markets/USDC-FEB-2ND.json +0 -10
  300. package/deployments/43113-markets/USDC-FEB-4TH.json +0 -10
  301. package/deployments/43113-markets/WETH-FEB-2ND.json +0 -11
  302. package/deployments/43113-markets/WETH-FEB-4TH.json +0 -11
  303. package/deployments/43113-testenv.json +0 -22
  304. package/deployments/80001-core.json +0 -28
  305. package/deployments/80001-helper.json +0 -4
  306. package/deployments/80001-markets/USDC-DEC-8TH.json +0 -10
  307. package/deployments/80001-markets/USDC-FEB-4TH.json +0 -10
  308. package/deployments/80001-markets/WETH-FEB-4TH.json +0 -11
  309. package/deployments/80001-testenv.json +0 -22
  310. package/typechain-types/BribeDistributor.ts +0 -363
  311. package/typechain-types/ComposableStablePreview.ts +0 -217
  312. package/typechain-types/DistributorBase.ts +0 -363
  313. package/typechain-types/FeeDistributor.ts +0 -416
  314. package/typechain-types/GMXPreviewHelper.ts +0 -134
  315. package/typechain-types/I1inchAggregationRouterV5.ts +0 -257
  316. package/typechain-types/IAggregationExecutor.ts +0 -182
  317. package/typechain-types/IBalancerFees.ts +0 -89
  318. package/typechain-types/IBalancerStablePreview.ts +0 -217
  319. package/typechain-types/IBasePool.ts +0 -482
  320. package/typechain-types/IComposableStable.ts +0 -730
  321. package/typechain-types/IExecutorHelperEthereum1.ts +0 -643
  322. package/typechain-types/IGMXVault.ts +0 -494
  323. package/typechain-types/IGauge.ts +0 -160
  324. package/typechain-types/IGlpManager.ts +0 -115
  325. package/typechain-types/IHashflow.ts +0 -159
  326. package/typechain-types/IKyberSwapAggregationRouterHelper.ts +0 -109
  327. package/typechain-types/ILiquidityGaugeFactory.ts +0 -99
  328. package/typechain-types/IMetaAggregationRouter.ts +0 -213
  329. package/typechain-types/IMetaAggregationRouterV2.ts +0 -221
  330. package/typechain-types/IMetaStablePool.ts +0 -619
  331. package/typechain-types/IMultihopRouterEthereum.ts +0 -209
  332. package/typechain-types/IPYieldTokenV2.ts +0 -915
  333. package/typechain-types/IRateProvider.ts +0 -81
  334. package/typechain-types/IRewardRouterV2.ts +0 -303
  335. package/typechain-types/ISwapAggregator.ts +0 -124
  336. package/typechain-types/IVault.ts +0 -410
  337. package/typechain-types/IVaultPriceFeed.ts +0 -114
  338. package/typechain-types/InterestManagerYTV2.ts +0 -124
  339. package/typechain-types/MetaStableMath.ts +0 -113
  340. package/typechain-types/MetaStablePreview.ts +0 -501
  341. package/typechain-types/Multicall2.ts +0 -437
  342. package/typechain-types/PendleAura3EthSY.ts +0 -1600
  343. package/typechain-types/PendleAuraBalancerStableLPSY.ts +0 -1523
  344. package/typechain-types/PendleAuraCbethWstethSY.ts +0 -1587
  345. package/typechain-types/PendleAuraWethRethSY.ts +0 -1549
  346. package/typechain-types/PendleAuraWethWstethSY.ts +0 -1523
  347. package/typechain-types/PendleGlpSY.ts +0 -1449
  348. package/typechain-types/PendleMulticall.ts +0 -110
  349. package/typechain-types/PendlePrincipalTokenV2.ts +0 -614
  350. package/typechain-types/PendleYieldContractFactoryV2.ts +0 -801
  351. package/typechain-types/PendleYieldTokenV2.ts +0 -1304
  352. package/typechain-types/SAPE.ts +0 -1395
  353. package/typechain-types/StEthHelper.ts +0 -107
  354. package/typechain-types/StablePreviewBase.ts +0 -217
  355. package/typechain-types/SwapAggregator.ts +0 -406
  356. package/typechain-types/factories/BribeDistributor__factory.ts +0 -303
  357. package/typechain-types/factories/ComposableStablePreview__factory.ts +0 -190
  358. package/typechain-types/factories/DistributorBase__factory.ts +0 -249
  359. package/typechain-types/factories/FeeDistributor__factory.ts +0 -339
  360. package/typechain-types/factories/GMXPreviewHelper__factory.ts +0 -78
  361. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +0 -179
  362. package/typechain-types/factories/IAggregationExecutor__factory.ts +0 -84
  363. package/typechain-types/factories/IBalancerFees__factory.ts +0 -36
  364. package/typechain-types/factories/IBalancerStablePreview__factory.ts +0 -152
  365. package/typechain-types/factories/IBasePool__factory.ts +0 -340
  366. package/typechain-types/factories/IComposableStable__factory.ts +0 -482
  367. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +0 -407
  368. package/typechain-types/factories/IGMXVault__factory.ts +0 -320
  369. package/typechain-types/factories/IGauge__factory.ts +0 -70
  370. package/typechain-types/factories/IGlpManager__factory.ts +0 -55
  371. package/typechain-types/factories/IHashflow__factory.ts +0 -113
  372. package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +0 -56
  373. package/typechain-types/factories/ILiquidityGaugeFactory__factory.ts +0 -49
  374. package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +0 -234
  375. package/typechain-types/factories/IMetaAggregationRouter__factory.ts +0 -202
  376. package/typechain-types/factories/IMetaStablePool__factory.ts +0 -413
  377. package/typechain-types/factories/IMultihopRouterEthereum__factory.ts +0 -155
  378. package/typechain-types/factories/IPYieldTokenV2__factory.ts +0 -702
  379. package/typechain-types/factories/IRateProvider__factory.ts +0 -36
  380. package/typechain-types/factories/IRewardRouterV2__factory.ts +0 -180
  381. package/typechain-types/factories/ISwapAggregator__factory.ts +0 -66
  382. package/typechain-types/factories/IVaultPriceFeed__factory.ts +0 -60
  383. package/typechain-types/factories/IVault__factory.ts +0 -287
  384. package/typechain-types/factories/InterestManagerYTV2__factory.ts +0 -63
  385. package/typechain-types/factories/MetaStableMath__factory.ts +0 -93
  386. package/typechain-types/factories/MetaStablePreview__factory.ts +0 -375
  387. package/typechain-types/factories/Multicall2__factory.ts +0 -372
  388. package/typechain-types/factories/PendleAura3EthSY__factory.ts +0 -1326
  389. package/typechain-types/factories/PendleAuraBalancerStableLPSY__factory.ts +0 -1190
  390. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +0 -1317
  391. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +0 -1291
  392. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +0 -1265
  393. package/typechain-types/factories/PendleGlpSY__factory.ts +0 -1255
  394. package/typechain-types/factories/PendleMulticall__factory.ts +0 -100
  395. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +0 -564
  396. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +0 -674
  397. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +0 -1122
  398. package/typechain-types/factories/SAPE__factory.ts +0 -1142
  399. package/typechain-types/factories/StEthHelper__factory.ts +0 -62
  400. package/typechain-types/factories/StablePreviewBase__factory.ts +0 -148
  401. package/typechain-types/factories/SwapAggregator__factory.ts +0 -309
@@ -1,618 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
- import "../../../../../../interfaces/Balancer/IComposableStable.sol";
6
-
7
- import "../FixedPoint.sol";
8
- import "./ComposableStableMath.sol";
9
- import "../StablePoolUserData.sol";
10
-
11
- import "../StablePreviewBase.sol";
12
-
13
- contract ComposableStablePreview is StablePreviewBase {
14
- using ComposableStableMath for uint256;
15
- using StablePoolUserData for bytes;
16
- using FixedPoint for uint256;
17
-
18
- struct ImmutableData {
19
- address[] poolTokens;
20
- address[] rateProviders;
21
- uint256[] rawScalingFactors;
22
- bool[] isExemptFromYieldProtocolFee;
23
- //
24
- address LP;
25
- bool noTokensExempt;
26
- bool allTokensExempt;
27
- uint256 bptIndex;
28
- uint256 totalTokens;
29
- }
30
-
31
- struct TokenRateCache {
32
- uint256 currentRate;
33
- uint256 oldRate;
34
- }
35
-
36
- function onJoinPool(
37
- bytes32 poolId,
38
- address sender,
39
- address recipient,
40
- uint256[] memory balances,
41
- uint256 lastChangeBlock,
42
- uint256 protocolSwapFeePercentage,
43
- bytes memory userData,
44
- bytes memory poolImmutableData
45
- ) internal view override returns (uint256 bptAmountOut) {
46
- ImmutableData memory imd = abi.decode(poolImmutableData, (ImmutableData));
47
-
48
- TokenRateCache[] memory caches = _beforeSwapJoinExit(imd);
49
-
50
- uint256[] memory scalingFactors = _scalingFactors(imd, caches);
51
-
52
- // skip totalSupply == 0 case
53
-
54
- _upscaleArray(balances, scalingFactors);
55
- (bptAmountOut, ) = _onJoinPool(
56
- poolId,
57
- sender,
58
- recipient,
59
- balances,
60
- lastChangeBlock,
61
- protocolSwapFeePercentage,
62
- scalingFactors,
63
- userData,
64
- imd,
65
- caches
66
- );
67
-
68
- // skip _mintPoolTokens, _downscaleUpArray
69
-
70
- // we return bptAmountOut instead of minting
71
- }
72
-
73
- function onExitPool(
74
- bytes32 poolId,
75
- address sender,
76
- address recipient,
77
- uint256[] memory balances,
78
- uint256 lastChangeBlock,
79
- uint256 protocolSwapFeePercentage,
80
- bytes memory userData,
81
- bytes memory poolImmutableData
82
- ) internal view override returns (uint256 amountTokenOut) {
83
- ImmutableData memory imd = abi.decode(poolImmutableData, (ImmutableData));
84
-
85
- uint256 bptAmountIn;
86
- uint256[] memory amountsOut;
87
-
88
- // skip recovery mode
89
-
90
- TokenRateCache[] memory caches = _beforeSwapJoinExit(imd);
91
-
92
- uint256[] memory scalingFactors = _scalingFactors(imd, caches);
93
- _upscaleArray(balances, scalingFactors);
94
-
95
- (bptAmountIn, amountsOut) = _onExitPool(
96
- poolId,
97
- sender,
98
- recipient,
99
- balances,
100
- lastChangeBlock,
101
- protocolSwapFeePercentage, // assume no recovery mode
102
- scalingFactors,
103
- userData,
104
- imd,
105
- caches
106
- );
107
-
108
- _downscaleDownArray(amountsOut, scalingFactors);
109
-
110
- // skip burnPoolTokens
111
-
112
- for (uint256 i = 0; i < amountsOut.length; i++) {
113
- if (amountsOut[i] > 0) return amountsOut[i];
114
- }
115
- }
116
-
117
- function _onJoinPool(
118
- bytes32,
119
- address,
120
- address,
121
- uint256[] memory registeredBalances,
122
- uint256,
123
- uint256,
124
- uint256[] memory scalingFactors,
125
- bytes memory userData,
126
- ImmutableData memory imd,
127
- TokenRateCache[] memory caches
128
- ) internal view returns (uint256, uint256[] memory) {
129
- return _onJoinExitPool(true, registeredBalances, scalingFactors, userData, imd, caches);
130
- }
131
-
132
- function _onExitPool(
133
- bytes32,
134
- address,
135
- address,
136
- uint256[] memory registeredBalances,
137
- uint256,
138
- uint256,
139
- uint256[] memory scalingFactors,
140
- bytes memory userData,
141
- ImmutableData memory imd,
142
- TokenRateCache[] memory caches
143
- ) internal view returns (uint256, uint256[] memory) {
144
- return _onJoinExitPool(false, registeredBalances, scalingFactors, userData, imd, caches);
145
- }
146
-
147
- /**
148
- * @return bptAmount
149
- * @return amountsDelta this will not contain bpt item since it will be discarded on the upper level
150
- */
151
- function _onJoinExitPool(
152
- bool isJoin,
153
- uint256[] memory registeredBalances,
154
- uint256[] memory scalingFactors,
155
- bytes memory userData,
156
- ImmutableData memory imd,
157
- TokenRateCache[] memory caches
158
- ) internal view returns (uint256 bptAmount, uint256[] memory amountsDelta) {
159
- (
160
- uint256 preJoinExitSupply,
161
- uint256[] memory balances,
162
- uint256 currentAmp,
163
- uint256 preJoinExitInvariant
164
- ) = _beforeJoinExit(registeredBalances, imd, caches);
165
-
166
- function(
167
- uint256[] memory,
168
- uint256,
169
- uint256,
170
- uint256,
171
- uint256[] memory,
172
- bytes memory,
173
- ImmutableData memory
174
- ) internal view returns (uint256, uint256[] memory) _doJoinOrExit = (
175
- isJoin ? _doJoin : _doExit
176
- );
177
-
178
- (bptAmount, amountsDelta) = _doJoinOrExit(
179
- balances,
180
- currentAmp,
181
- preJoinExitSupply,
182
- preJoinExitInvariant,
183
- scalingFactors,
184
- userData,
185
- imd
186
- );
187
- amountsDelta = _addBptItem(amountsDelta, 0, imd);
188
-
189
- // _mutateAmounts
190
-
191
- // skip _updateInvariantAfterJoinExit here
192
- }
193
-
194
- function _addBptItem(
195
- uint256[] memory amounts,
196
- uint256 bptAmount,
197
- ImmutableData memory imd
198
- ) internal pure returns (uint256[] memory registeredTokenAmounts) {
199
- registeredTokenAmounts = new uint256[](amounts.length + 1);
200
- for (uint256 i = 0; i < registeredTokenAmounts.length; i++) {
201
- registeredTokenAmounts[i] = i == imd.bptIndex
202
- ? bptAmount
203
- : amounts[i < imd.bptIndex ? i : i - 1];
204
- }
205
- }
206
-
207
- function _doJoin(
208
- uint256[] memory balances,
209
- uint256 currentAmp,
210
- uint256 preJoinExitSupply,
211
- uint256 preJoinExitInvariant,
212
- uint256[] memory scalingFactors,
213
- bytes memory userData,
214
- ImmutableData memory imd
215
- ) internal view returns (uint256, uint256[] memory) {
216
- // this is always true given Pendle SY context
217
- return
218
- _joinExactTokensInForBPTOut(
219
- preJoinExitSupply,
220
- preJoinExitInvariant,
221
- currentAmp,
222
- balances,
223
- scalingFactors,
224
- userData,
225
- imd
226
- );
227
- }
228
-
229
- function _joinExactTokensInForBPTOut(
230
- uint256 actualSupply,
231
- uint256 preJoinExitInvariant,
232
- uint256 currentAmp,
233
- uint256[] memory balances,
234
- uint256[] memory scalingFactors,
235
- bytes memory userData,
236
- ImmutableData memory imd
237
- ) private view returns (uint256, uint256[] memory) {
238
- (uint256[] memory amountsIn, ) = userData.exactTokensInForBptOut();
239
-
240
- // The user-provided amountsIn is unscaled, so we address that.
241
- _upscaleArray(amountsIn, _dropBptItem(imd, scalingFactors));
242
-
243
- uint256 bptAmountOut = currentAmp._calcBptOutGivenExactTokensIn(
244
- balances,
245
- amountsIn,
246
- actualSupply,
247
- preJoinExitInvariant,
248
- IBasePool(imd.LP).getSwapFeePercentage()
249
- );
250
- return (bptAmountOut, amountsIn);
251
- }
252
-
253
- function _doExit(
254
- uint256[] memory balances,
255
- uint256 currentAmp,
256
- uint256 preJoinExitSupply,
257
- uint256 preJoinExitInvariant,
258
- uint256[] memory, /*scalingFactors*/
259
- bytes memory userData,
260
- ImmutableData memory imd
261
- ) internal view returns (uint256, uint256[] memory) {
262
- // this is always true given Pendle SY context
263
- return
264
- _exitExactBPTInForTokenOut(
265
- preJoinExitSupply,
266
- preJoinExitInvariant,
267
- currentAmp,
268
- balances,
269
- userData,
270
- imd
271
- );
272
- }
273
-
274
- function _exitExactBPTInForTokenOut(
275
- uint256 actualSupply,
276
- uint256 preJoinExitInvariant,
277
- uint256 currentAmp,
278
- uint256[] memory balances,
279
- bytes memory userData,
280
- ImmutableData memory imd
281
- ) private view returns (uint256, uint256[] memory) {
282
- (uint256 bptAmountIn, uint256 tokenIndex) = userData.exactBptInForTokenOut();
283
-
284
- uint256[] memory amountsOut = new uint256[](balances.length);
285
-
286
- amountsOut[tokenIndex] = currentAmp._calcTokenOutGivenExactBptIn(
287
- balances,
288
- tokenIndex,
289
- bptAmountIn,
290
- actualSupply,
291
- preJoinExitInvariant,
292
- IBasePool(imd.LP).getSwapFeePercentage()
293
- );
294
-
295
- return (bptAmountIn, amountsOut);
296
- }
297
-
298
- function _beforeJoinExit(
299
- uint256[] memory registeredBalances,
300
- ImmutableData memory imd,
301
- TokenRateCache[] memory caches
302
- )
303
- internal
304
- view
305
- returns (
306
- uint256,
307
- uint256[] memory,
308
- uint256,
309
- uint256
310
- )
311
- {
312
- (uint256 lastJoinExitAmp, uint256 lastPostJoinExitInvariant) = IComposableStable(imd.LP)
313
- .getLastJoinExitData();
314
-
315
- (
316
- uint256 preJoinExitSupply,
317
- uint256[] memory balances,
318
- uint256 oldAmpPreJoinExitInvariant
319
- ) = _payProtocolFeesBeforeJoinExit(
320
- registeredBalances,
321
- lastJoinExitAmp,
322
- lastPostJoinExitInvariant,
323
- imd,
324
- caches
325
- );
326
-
327
- (uint256 currentAmp, , ) = IComposableStable(imd.LP).getAmplificationParameter();
328
- uint256 preJoinExitInvariant = currentAmp == lastJoinExitAmp
329
- ? oldAmpPreJoinExitInvariant
330
- : currentAmp._calculateInvariant(balances);
331
-
332
- return (preJoinExitSupply, balances, currentAmp, preJoinExitInvariant);
333
- }
334
-
335
- function _payProtocolFeesBeforeJoinExit(
336
- uint256[] memory registeredBalances,
337
- uint256 lastJoinExitAmp,
338
- uint256 lastPostJoinExitInvariant,
339
- ImmutableData memory imd,
340
- TokenRateCache[] memory caches
341
- )
342
- internal
343
- view
344
- returns (
345
- uint256,
346
- uint256[] memory,
347
- uint256
348
- )
349
- {
350
- (uint256 virtualSupply, uint256[] memory balances) = _dropBptItemFromBalances(
351
- imd,
352
- registeredBalances
353
- );
354
-
355
- (
356
- uint256 expectedProtocolOwnershipPercentage,
357
- uint256 currentInvariantWithLastJoinExitAmp
358
- ) = _getProtocolPoolOwnershipPercentage(
359
- balances,
360
- lastJoinExitAmp,
361
- lastPostJoinExitInvariant,
362
- imd,
363
- caches
364
- );
365
-
366
- uint256 protocolFeeAmount = _calculateAdjustedProtocolFeeAmount(
367
- virtualSupply,
368
- expectedProtocolOwnershipPercentage
369
- );
370
-
371
- // skip _payProtocolFee, which will make the LP balance from this point onwards to be off
372
-
373
- return (virtualSupply + protocolFeeAmount, balances, currentInvariantWithLastJoinExitAmp);
374
- }
375
-
376
- function _getProtocolPoolOwnershipPercentage(
377
- uint256[] memory balances,
378
- uint256 lastJoinExitAmp,
379
- uint256 lastPostJoinExitInvariant,
380
- ImmutableData memory imd,
381
- TokenRateCache[] memory caches
382
- ) internal view returns (uint256, uint256) {
383
- (
384
- uint256 swapFeeGrowthInvariant,
385
- uint256 totalNonExemptGrowthInvariant,
386
- uint256 totalGrowthInvariant
387
- ) = _getGrowthInvariants(balances, lastJoinExitAmp, imd, caches);
388
-
389
- uint256 swapFeeGrowthInvariantDelta = (swapFeeGrowthInvariant > lastPostJoinExitInvariant)
390
- ? swapFeeGrowthInvariant - lastPostJoinExitInvariant
391
- : 0;
392
- uint256 nonExemptYieldGrowthInvariantDelta = (totalNonExemptGrowthInvariant >
393
- swapFeeGrowthInvariant)
394
- ? totalNonExemptGrowthInvariant - swapFeeGrowthInvariant
395
- : 0;
396
-
397
- uint256 protocolSwapFeePercentage = swapFeeGrowthInvariantDelta
398
- .divDown(totalGrowthInvariant)
399
- .mulDown(
400
- IComposableStable(imd.LP).getProtocolFeePercentageCache(0) // ProtocolFeeType.SWAP // can't get better
401
- );
402
-
403
- uint256 protocolYieldPercentage = nonExemptYieldGrowthInvariantDelta
404
- .divDown(totalGrowthInvariant)
405
- .mulDown(
406
- IComposableStable(imd.LP).getProtocolFeePercentageCache(2) // ProtocolFeeType.YIELD // can't get better
407
- );
408
-
409
- // These percentages can then be simply added to compute the total protocol Pool ownership percentage.
410
- // This is naturally bounded above by FixedPoint.ONE so this addition cannot overflow.
411
- return (protocolSwapFeePercentage + protocolYieldPercentage, totalGrowthInvariant);
412
- }
413
-
414
- function _getGrowthInvariants(
415
- uint256[] memory balances,
416
- uint256 lastJoinExitAmp,
417
- ImmutableData memory imd,
418
- TokenRateCache[] memory caches
419
- )
420
- internal
421
- pure
422
- returns (
423
- uint256 swapFeeGrowthInvariant,
424
- uint256 totalNonExemptGrowthInvariant,
425
- uint256 totalGrowthInvariant
426
- )
427
- {
428
- swapFeeGrowthInvariant = lastJoinExitAmp._calculateInvariant(
429
- _getAdjustedBalances(balances, true, imd, caches)
430
- );
431
-
432
- if (imd.noTokensExempt) {
433
- totalNonExemptGrowthInvariant = lastJoinExitAmp._calculateInvariant(balances);
434
- totalGrowthInvariant = totalNonExemptGrowthInvariant;
435
- } else if (imd.allTokensExempt) {
436
- totalNonExemptGrowthInvariant = swapFeeGrowthInvariant;
437
- totalGrowthInvariant = lastJoinExitAmp._calculateInvariant(balances);
438
- } else {
439
- totalNonExemptGrowthInvariant = lastJoinExitAmp._calculateInvariant(
440
- _getAdjustedBalances(balances, false, imd, caches)
441
- );
442
-
443
- totalGrowthInvariant = lastJoinExitAmp._calculateInvariant(balances);
444
- }
445
- }
446
-
447
- function _getAdjustedBalances(
448
- uint256[] memory balances,
449
- bool ignoreExemptFlags,
450
- ImmutableData memory imd,
451
- TokenRateCache[] memory tokenRateCaches
452
- ) internal pure returns (uint256[] memory) {
453
- uint256 totalTokensWithoutBpt = balances.length;
454
- uint256[] memory adjustedBalances = new uint256[](totalTokensWithoutBpt);
455
-
456
- for (uint256 i = 0; i < totalTokensWithoutBpt; ++i) {
457
- uint256 skipBptIndex = i >= imd.bptIndex ? i + 1 : i;
458
- adjustedBalances[i] = _isTokenExemptFromYieldProtocolFee(imd, skipBptIndex) ||
459
- (ignoreExemptFlags && _hasRateProvider(imd, skipBptIndex))
460
- ? _adjustedBalance(balances[i], tokenRateCaches[skipBptIndex])
461
- : balances[i];
462
- }
463
-
464
- return adjustedBalances;
465
- }
466
-
467
- function _adjustedBalance(uint256 balance, TokenRateCache memory cache)
468
- private
469
- pure
470
- returns (uint256)
471
- {
472
- return (balance * cache.oldRate) / cache.currentRate;
473
- }
474
-
475
- function _calculateAdjustedProtocolFeeAmount(uint256 supply, uint256 basePercentage)
476
- internal
477
- pure
478
- returns (uint256)
479
- {
480
- return supply.mulDown(basePercentage).divDown(basePercentage.complement());
481
- }
482
-
483
- function _dropBptItemFromBalances(
484
- ImmutableData memory imd,
485
- uint256[] memory registeredBalances
486
- ) internal view returns (uint256, uint256[] memory) {
487
- return (
488
- _getVirtualSupply(imd, registeredBalances[imd.bptIndex]),
489
- _dropBptItem(imd, registeredBalances)
490
- );
491
- }
492
-
493
- function _dropBptItem(ImmutableData memory imd, uint256[] memory amounts)
494
- internal
495
- pure
496
- returns (uint256[] memory)
497
- {
498
- uint256[] memory amountsWithoutBpt = new uint256[](amounts.length - 1);
499
- for (uint256 i = 0; i < amountsWithoutBpt.length; i++) {
500
- amountsWithoutBpt[i] = amounts[i < imd.bptIndex ? i : i + 1];
501
- }
502
-
503
- return amountsWithoutBpt;
504
- }
505
-
506
- function _getVirtualSupply(ImmutableData memory imd, uint256 bptBalance)
507
- internal
508
- view
509
- returns (uint256)
510
- {
511
- return (IERC20(imd.LP).totalSupply()).sub(bptBalance);
512
- }
513
-
514
- function _beforeSwapJoinExit(ImmutableData memory imd)
515
- internal
516
- view
517
- returns (TokenRateCache[] memory tokenRateCaches)
518
- {
519
- return _cacheTokenRatesIfNecessary(imd);
520
- }
521
-
522
- function _cacheTokenRatesIfNecessary(ImmutableData memory imd)
523
- internal
524
- view
525
- returns (TokenRateCache[] memory tokenRateCaches)
526
- {
527
- tokenRateCaches = new TokenRateCache[](imd.totalTokens);
528
-
529
- for (uint256 i = 0; i < imd.totalTokens; ++i) {
530
- tokenRateCaches[i] = _cacheTokenRateIfNecessary(i, imd);
531
- }
532
- }
533
-
534
- /**
535
- * @dev Caches the rate for a token if necessary. It ignores the call if there is no provider set.
536
- */
537
- function _cacheTokenRateIfNecessary(uint256 index, ImmutableData memory imd)
538
- internal
539
- view
540
- returns (TokenRateCache memory res)
541
- {
542
- if (index == imd.bptIndex || !_hasRateProvider(imd, index)) return res;
543
-
544
- uint256 expires;
545
- (res.currentRate, res.oldRate, , expires) = IComposableStable(imd.LP).getTokenRateCache(
546
- IERC20(imd.poolTokens[index])
547
- );
548
-
549
- if (block.timestamp > expires) {
550
- res.currentRate = IRateProvider(imd.rateProviders[index]).getRate();
551
- }
552
- }
553
-
554
- function _scalingFactors(ImmutableData memory imd, TokenRateCache[] memory caches)
555
- internal
556
- view
557
- virtual
558
- returns (uint256[] memory)
559
- {
560
- // There is no need to check the arrays length since both are based on `_getTotalTokens`
561
- uint256[] memory scalingFactors = new uint256[](imd.totalTokens);
562
-
563
- for (uint256 i = 0; i < imd.totalTokens; ++i) {
564
- scalingFactors[i] = imd.rawScalingFactors[i].mulDown(_getTokenRate(caches, i));
565
- }
566
-
567
- return scalingFactors;
568
- }
569
-
570
- function _getTokenRate(TokenRateCache[] memory caches, uint256 index)
571
- internal
572
- view
573
- virtual
574
- returns (uint256)
575
- {
576
- return caches[index].currentRate == 0 ? FixedPoint.ONE : caches[index].currentRate;
577
- }
578
-
579
- /*///////////////////////////////////////////////////////////////
580
- Helpers functions
581
- //////////////////////////////////////////////////////////////*/
582
-
583
- function _upscaleArray(uint256[] memory amounts, uint256[] memory scalingFactors)
584
- internal
585
- pure
586
- {
587
- uint256 length = amounts.length;
588
- for (uint256 i = 0; i < length; ++i) {
589
- amounts[i] = FixedPoint.mulDown(amounts[i], scalingFactors[i]);
590
- }
591
- }
592
-
593
- function _downscaleDownArray(uint256[] memory amounts, uint256[] memory scalingFactors)
594
- internal
595
- pure
596
- {
597
- uint256 length = amounts.length;
598
- for (uint256 i = 0; i < length; ++i) {
599
- amounts[i] = FixedPoint.divDown(amounts[i], scalingFactors[i]);
600
- }
601
- }
602
-
603
- function _hasRateProvider(ImmutableData memory imd, uint256 index)
604
- internal
605
- pure
606
- returns (bool)
607
- {
608
- return address(imd.rateProviders[index]) != address(0);
609
- }
610
-
611
- function _isTokenExemptFromYieldProtocolFee(ImmutableData memory imd, uint256 index)
612
- internal
613
- pure
614
- returns (bool)
615
- {
616
- return imd.isExemptFromYieldProtocolFee[index];
617
- }
618
- }
@@ -1,68 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity ^0.8.17;
3
-
4
- /* solhint-disable private-vars-leading-underscore */
5
-
6
- /**
7
- * @dev forked from https://etherscan.io/token/0x8e85e97ed19c0fa13b2549309965291fbbc0048b#code
8
- * with omitted overflow checks given solidity version
9
- */
10
-
11
- library FixedPoint {
12
- uint256 internal constant ONE = 1e18; // 18 decimal places
13
- uint256 internal constant TWO = 2 * ONE;
14
- uint256 internal constant FOUR = 4 * ONE;
15
-
16
- function add(uint256 a, uint256 b) internal pure returns (uint256) {
17
- return a + b;
18
- }
19
-
20
- function sub(uint256 a, uint256 b) internal pure returns (uint256) {
21
- return a - b;
22
- }
23
-
24
- function mulDown(uint256 a, uint256 b) internal pure returns (uint256) {
25
- return (a * b) / ONE;
26
- }
27
-
28
- function mulUp(uint256 a, uint256 b) internal pure returns (uint256) {
29
- uint256 product = a * b;
30
- if (product == 0) {
31
- return 0;
32
- } else {
33
- unchecked {
34
- return ((product - 1) / ONE) + 1;
35
- }
36
- }
37
- }
38
-
39
- function divDown(uint256 a, uint256 b) internal pure returns (uint256) {
40
- require(b != 0, "Zero division");
41
-
42
- if (a == 0) {
43
- return 0;
44
- } else {
45
- uint256 aInflated = a * ONE;
46
- return aInflated / b;
47
- }
48
- }
49
-
50
- function divUp(uint256 a, uint256 b) internal pure returns (uint256) {
51
- require(b != 0, "Zero division");
52
-
53
- if (a == 0) {
54
- return 0;
55
- } else {
56
- uint256 aInflated = a * ONE;
57
- unchecked {
58
- return ((aInflated - 1) / b) + 1;
59
- }
60
- }
61
- }
62
-
63
- function complement(uint256 x) internal pure returns (uint256) {
64
- unchecked {
65
- return (x < ONE) ? (ONE - x) : 0;
66
- }
67
- }
68
- }