@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,329 +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
-
6
- import "../../../../../interfaces/Balancer/IVault.sol";
7
- import "../../../../../interfaces/Balancer/IRateProvider.sol";
8
- import "../../../../../interfaces/Balancer/IBasePool.sol";
9
- import "../../../../../interfaces/Balancer/IBalancerStablePreview.sol";
10
- import "../../../../../interfaces/ConvexCurve/IBooster.sol";
11
- import "../../../../../interfaces/ConvexCurve/IRewards.sol";
12
-
13
- import "./StablePoolUserData.sol";
14
- import "../../../../libraries/ArrayLib.sol";
15
- import "../../../SYBaseWithRewards.sol";
16
-
17
- abstract contract PendleAuraBalancerStableLPSY is SYBaseWithRewards {
18
- using ArrayLib for address[];
19
-
20
- address public constant BAL_TOKEN = 0xba100000625a3754423978a60c9317c58a424e3D;
21
- address public constant AURA_TOKEN = 0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF;
22
- address public constant AURA_BOOSTER = 0xA57b8d98dAE62B26Ec3bcC4a365338157060B234;
23
- address public constant BALANCER_VAULT = 0xBA12222222228d8Ba445958a75a0704d566BF2C8;
24
-
25
- address public immutable balLp;
26
- bytes32 public immutable balPoolId;
27
-
28
- uint256 public immutable auraPid;
29
- address public immutable auraRewardManager;
30
-
31
- IBalancerStablePreview public immutable previewHelper;
32
-
33
- address[] public extraRewards;
34
-
35
- constructor(
36
- string memory _name,
37
- string memory _symbol,
38
- address _balLp,
39
- uint256 _auraPid,
40
- IBalancerStablePreview _previewHelper
41
- ) SYBaseWithRewards(_name, _symbol, _balLp) {
42
- balPoolId = IBasePool(_balLp).getPoolId();
43
- auraPid = _auraPid;
44
-
45
- (balLp, auraRewardManager) = _getPoolInfo(_auraPid);
46
- if (balLp != _balLp) revert Errors.SYBalancerInvalidPid();
47
-
48
- _safeApproveInf(_balLp, AURA_BOOSTER);
49
-
50
- address[] memory tokens = _getPoolTokenAddresses();
51
- for (uint256 i = 0; i < tokens.length; ++i) {
52
- _safeApproveInf(tokens[i], BALANCER_VAULT);
53
- }
54
-
55
- previewHelper = _previewHelper;
56
- }
57
-
58
- function _getPoolInfo(uint256 _auraPid)
59
- internal
60
- view
61
- returns (address _auraLp, address _auraRewardManager)
62
- {
63
- if (_auraPid > IBooster(AURA_BOOSTER).poolLength()) revert Errors.SYBalancerInvalidPid();
64
- (_auraLp, , , _auraRewardManager, , ) = IBooster(AURA_BOOSTER).poolInfo(_auraPid);
65
- }
66
-
67
- /*///////////////////////////////////////////////////////////////
68
- DEPOSIT/REDEEM USING BASE TOKENS
69
- //////////////////////////////////////////////////////////////*/
70
-
71
- /**
72
- * @notice Either wraps LP, or also joins pool using exact tokenIn
73
- */
74
- function _deposit(address tokenIn, uint256 amount)
75
- internal
76
- virtual
77
- override
78
- returns (uint256 amountSharesOut)
79
- {
80
- if (tokenIn == balLp) {
81
- amountSharesOut = amount;
82
- } else {
83
- amountSharesOut = _depositToBalancer(tokenIn, amount);
84
- }
85
- IBooster(AURA_BOOSTER).deposit(auraPid, amountSharesOut, true);
86
- }
87
-
88
- /**
89
- * @notice Either unwraps LP, or also exits pool using exact LP for only `tokenOut`
90
- */
91
- function _redeem(
92
- address receiver,
93
- address tokenOut,
94
- uint256 amountSharesToRedeem
95
- ) internal virtual override returns (uint256 amountTokenOut) {
96
- IRewards(auraRewardManager).withdrawAndUnwrap(amountSharesToRedeem, false);
97
-
98
- if (tokenOut == balLp) {
99
- amountTokenOut = amountSharesToRedeem;
100
- _transferOut(tokenOut, receiver, amountTokenOut);
101
- } else {
102
- amountTokenOut = _redeemFromBalancer(receiver, tokenOut, amountSharesToRedeem);
103
- }
104
- }
105
-
106
- function exchangeRate() external view override returns (uint256) {
107
- return IRateProvider(balLp).getRate();
108
- }
109
-
110
- /*///////////////////////////////////////////////////////////////
111
- BALANCER-RELATED FUNCTIONS
112
- //////////////////////////////////////////////////////////////*/
113
-
114
- function _depositToBalancer(address tokenIn, uint256 amountTokenToDeposit)
115
- internal
116
- virtual
117
- returns (uint256)
118
- {
119
- IVault.JoinPoolRequest memory request = _assembleJoinRequest(
120
- tokenIn,
121
- amountTokenToDeposit
122
- );
123
- IVault(BALANCER_VAULT).joinPool(balPoolId, address(this), address(this), request);
124
-
125
- // amount shares out = amount LP received
126
- return _selfBalance(balLp);
127
- }
128
-
129
- function _assembleJoinRequest(address tokenIn, uint256 amountTokenToDeposit)
130
- internal
131
- view
132
- virtual
133
- returns (IVault.JoinPoolRequest memory request)
134
- {
135
- // max amounts in
136
- address[] memory assets = _getPoolTokenAddresses();
137
-
138
- uint256 amountsLength = _getBPTIndex() < type(uint256).max
139
- ? assets.length - 1
140
- : assets.length;
141
-
142
- uint256[] memory amountsIn = new uint256[](amountsLength);
143
- uint256[] memory maxAmountsIn = new uint256[](assets.length);
144
-
145
- uint256 index = assets.find(tokenIn);
146
- uint256 indexSkipBPT = index > _getBPTIndex() ? index - 1 : index;
147
- maxAmountsIn[index] = amountsIn[indexSkipBPT] = amountTokenToDeposit;
148
-
149
- // encode user data
150
- StablePoolUserData.JoinKind joinKind = StablePoolUserData
151
- .JoinKind
152
- .EXACT_TOKENS_IN_FOR_BPT_OUT;
153
- uint256 minimumBPT = 0;
154
-
155
- bytes memory userData = abi.encode(joinKind, amountsIn, minimumBPT);
156
-
157
- // assemble joinpoolrequest
158
- request = IVault.JoinPoolRequest(assets, maxAmountsIn, userData, false);
159
- }
160
-
161
- function _redeemFromBalancer(
162
- address receiver,
163
- address tokenOut,
164
- uint256 amountLpToRedeem
165
- ) internal virtual returns (uint256) {
166
- uint256 balanceBefore = IERC20(tokenOut).balanceOf(receiver);
167
-
168
- IVault.ExitPoolRequest memory request = _assembleExitRequest(tokenOut, amountLpToRedeem);
169
- IVault(BALANCER_VAULT).exitPool(balPoolId, address(this), payable(receiver), request);
170
-
171
- // calculate amount of tokens out
172
- uint256 balanceAfter = IERC20(tokenOut).balanceOf(receiver);
173
- return balanceAfter - balanceBefore;
174
- }
175
-
176
- function _assembleExitRequest(address tokenOut, uint256 amountLpToRedeem)
177
- internal
178
- view
179
- virtual
180
- returns (IVault.ExitPoolRequest memory request)
181
- {
182
- address[] memory assets = _getPoolTokenAddresses();
183
- uint256[] memory minAmountsOut = new uint256[](assets.length);
184
-
185
- // encode user data
186
- StablePoolUserData.ExitKind exitKind = StablePoolUserData
187
- .ExitKind
188
- .EXACT_BPT_IN_FOR_ONE_TOKEN_OUT;
189
- uint256 bptAmountIn = amountLpToRedeem;
190
- uint256 exitTokenIndex = assets.find(tokenOut);
191
-
192
- // must drop BPT index as well
193
- exitTokenIndex = _getBPTIndex() < exitTokenIndex ? exitTokenIndex - 1 : exitTokenIndex;
194
-
195
- bytes memory userData = abi.encode(exitKind, bptAmountIn, exitTokenIndex);
196
-
197
- // assemble exitpoolrequest
198
- request = IVault.ExitPoolRequest(assets, minAmountsOut, userData, false);
199
- }
200
-
201
- /// @dev this should return tokens in the same order as `IVault.getPoolTokens()`
202
- function _getPoolTokenAddresses() internal view virtual returns (address[] memory res);
203
-
204
- /// @dev should be overriden if and only if BPT is one of the pool tokens
205
- function _getBPTIndex() internal view virtual returns (uint256) {
206
- return type(uint256).max;
207
- }
208
-
209
- /*///////////////////////////////////////////////////////////////
210
- PREVIEW FUNCTIONS
211
- //////////////////////////////////////////////////////////////*/
212
-
213
- function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
214
- internal
215
- view
216
- virtual
217
- override
218
- returns (uint256 amountSharesOut)
219
- {
220
- if (tokenIn == balLp) {
221
- amountSharesOut = amountTokenToDeposit;
222
- } else {
223
- IVault.JoinPoolRequest memory request = _assembleJoinRequest(
224
- tokenIn,
225
- amountTokenToDeposit
226
- );
227
- amountSharesOut = previewHelper.joinPoolPreview(
228
- balPoolId,
229
- address(this),
230
- address(this),
231
- request,
232
- _getImmutablePoolData()
233
- );
234
- }
235
- }
236
-
237
- function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
238
- internal
239
- view
240
- virtual
241
- override
242
- returns (uint256 amountTokenOut)
243
- {
244
- if (tokenOut == balLp) {
245
- amountTokenOut = amountSharesToRedeem;
246
- } else {
247
- IVault.ExitPoolRequest memory request = _assembleExitRequest(
248
- tokenOut,
249
- amountSharesToRedeem
250
- );
251
-
252
- amountTokenOut = previewHelper.exitPoolPreview(
253
- balPoolId,
254
- address(this),
255
- address(this),
256
- request,
257
- _getImmutablePoolData()
258
- );
259
- }
260
- }
261
-
262
- function _getImmutablePoolData() internal view virtual returns (bytes memory);
263
-
264
- /*///////////////////////////////////////////////////////////////
265
- REWARDS-RELATED
266
- //////////////////////////////////////////////////////////////*/
267
-
268
- /// @notice allows owner to add new reward tokens in in case Aura does so with their pools
269
- function addRewardTokens(address token) external virtual onlyOwner {
270
- if (token == BAL_TOKEN || token == AURA_TOKEN || extraRewards.contains(token))
271
- revert Errors.SYInvalidRewardToken(token);
272
-
273
- uint256 nRewardsAura = IRewards(auraRewardManager).extraRewardsLength();
274
- for (uint256 i = 0; i < nRewardsAura; i++) {
275
- if (token == IRewards(IRewards(auraRewardManager).extraRewards(i)).rewardToken()) {
276
- extraRewards.push(token);
277
- return;
278
- }
279
- }
280
-
281
- revert Errors.SYInvalidRewardToken(token);
282
- }
283
-
284
- function extraRewardsLength() external view virtual returns (uint256) {
285
- return extraRewards.length;
286
- }
287
-
288
- function _getRewardTokens() internal view virtual override returns (address[] memory res) {
289
- uint256 extraRewardsLen = extraRewards.length;
290
- res = new address[](2 + extraRewardsLen);
291
- res[0] = BAL_TOKEN;
292
- res[1] = AURA_TOKEN;
293
- for (uint256 i = 0; i < extraRewardsLen; i++) {
294
- res[2 + i] = extraRewards[i];
295
- }
296
- }
297
-
298
- /// @dev if there is no extra rewards, we can call getReward with the 2nd arg (_claimExtra) to be false
299
- /// which helps save even more gas
300
- function _redeemExternalReward() internal virtual override {
301
- uint256 extraRewardsLen = extraRewards.length;
302
- if (extraRewardsLen == 0) IRewards(auraRewardManager).getReward(address(this), false);
303
- else IRewards(auraRewardManager).getReward(address(this), true);
304
- }
305
-
306
- /*///////////////////////////////////////////////////////////////
307
- MISC FUNCTIONS FOR METADATA
308
- //////////////////////////////////////////////////////////////*/
309
-
310
- function getTokensIn() public view virtual override returns (address[] memory res);
311
-
312
- function getTokensOut() public view virtual override returns (address[] memory res);
313
-
314
- function isValidTokenIn(address token) public view virtual override returns (bool);
315
-
316
- function isValidTokenOut(address token) public view virtual override returns (bool);
317
-
318
- function assetInfo()
319
- external
320
- view
321
- returns (
322
- AssetType assetType,
323
- address assetAddress,
324
- uint8 assetDecimals
325
- )
326
- {
327
- return (AssetType.LIQUIDITY, balLp, IERC20Metadata(balLp).decimals());
328
- }
329
- }
@@ -1,30 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity ^0.8.17;
3
-
4
- library StablePoolUserData {
5
- enum JoinKind {
6
- INIT,
7
- EXACT_TOKENS_IN_FOR_BPT_OUT,
8
- TOKEN_IN_FOR_EXACT_BPT_OUT
9
- }
10
- enum ExitKind {
11
- EXACT_BPT_IN_FOR_ONE_TOKEN_OUT,
12
- BPT_IN_FOR_EXACT_TOKENS_OUT
13
- }
14
-
15
- function exactTokensInForBptOut(bytes memory self)
16
- internal
17
- pure
18
- returns (uint256[] memory amountsIn, uint256 minBPTAmountOut)
19
- {
20
- (, amountsIn, minBPTAmountOut) = abi.decode(self, (JoinKind, uint256[], uint256));
21
- }
22
-
23
- function exactBptInForTokenOut(bytes memory self)
24
- internal
25
- pure
26
- returns (uint256 bptAmountIn, uint256 tokenIndex)
27
- {
28
- (, bptAmountIn, tokenIndex) = abi.decode(self, (ExitKind, uint256, uint256));
29
- }
30
- }
@@ -1,189 +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/IVault.sol";
6
- import "../../../../../interfaces/Balancer/IBalancerFees.sol";
7
- import "../../../../../interfaces/Balancer/IBalancerStablePreview.sol";
8
-
9
- abstract contract StablePreviewBase is IBalancerStablePreview {
10
- address internal constant BALANCER_VAULT = 0xBA12222222228d8Ba445958a75a0704d566BF2C8;
11
- address internal constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
12
- address internal constant FEE_COLLECTOR = 0xce88686553686DA562CE7Cea497CE749DA109f9F;
13
-
14
- enum PoolBalanceChangeKind {
15
- JOIN,
16
- EXIT
17
- }
18
-
19
- struct PoolBalanceChange {
20
- IAsset[] assets;
21
- uint256[] limits;
22
- bytes userData;
23
- bool useInternalBalance;
24
- }
25
-
26
- function joinPoolPreview(
27
- bytes32 poolId,
28
- address sender,
29
- address recipient,
30
- IVault.JoinPoolRequest memory request,
31
- bytes memory data
32
- ) external view returns (uint256 amountBptOut) {
33
- amountBptOut = _joinOrExit(
34
- PoolBalanceChangeKind.JOIN,
35
- poolId,
36
- sender,
37
- payable(recipient),
38
- _toPoolBalanceChange(request),
39
- data
40
- );
41
- }
42
-
43
- function exitPoolPreview(
44
- bytes32 poolId,
45
- address sender,
46
- address recipient,
47
- IVault.ExitPoolRequest memory request,
48
- bytes memory data
49
- ) external view returns (uint256 amountTokenOut) {
50
- amountTokenOut = _joinOrExit(
51
- PoolBalanceChangeKind.EXIT,
52
- poolId,
53
- sender,
54
- recipient,
55
- _toPoolBalanceChange(request),
56
- data
57
- );
58
- }
59
-
60
- function _joinOrExit(
61
- PoolBalanceChangeKind kind,
62
- bytes32 poolId,
63
- address sender,
64
- address recipient,
65
- PoolBalanceChange memory change,
66
- bytes memory data
67
- ) private view returns (uint256 amountBptOrTokensOut) {
68
- IERC20[] memory tokens = _translateToIERC20(change.assets);
69
- (uint256[] memory balances, uint256 lastChangeBlock) = _validateTokensAndGetBalances(
70
- poolId,
71
- tokens
72
- );
73
-
74
- amountBptOrTokensOut = _callPoolBalanceChange(
75
- kind,
76
- poolId,
77
- sender,
78
- recipient,
79
- change,
80
- balances,
81
- lastChangeBlock,
82
- data
83
- );
84
- }
85
-
86
- function _callPoolBalanceChange(
87
- PoolBalanceChangeKind kind,
88
- bytes32 poolId,
89
- address sender,
90
- address recipient,
91
- PoolBalanceChange memory change,
92
- uint256[] memory balances,
93
- uint256 lastChangeBlock,
94
- bytes memory data
95
- ) private view returns (uint256 amountsChanged) {
96
- if (kind == PoolBalanceChangeKind.JOIN) {
97
- amountsChanged = onJoinPool(
98
- poolId,
99
- sender,
100
- recipient,
101
- balances,
102
- lastChangeBlock,
103
- _getProtocolSwapFeePercentage(),
104
- change.userData,
105
- data
106
- );
107
- } else {
108
- amountsChanged = onExitPool(
109
- poolId,
110
- sender,
111
- recipient,
112
- balances,
113
- lastChangeBlock,
114
- _getProtocolSwapFeePercentage(),
115
- change.userData,
116
- data
117
- );
118
- }
119
- }
120
-
121
- function _getProtocolSwapFeePercentage() private view returns (uint256) {
122
- return IBalancerFees(FEE_COLLECTOR).getSwapFeePercentage();
123
- }
124
-
125
- function _validateTokensAndGetBalances(
126
- bytes32 poolId,
127
- IERC20[] memory //expectedTokens
128
- ) private view returns (uint256[] memory, uint256) {
129
- (, uint256[] memory balances, uint256 lastChangeBlock) = IVault(BALANCER_VAULT)
130
- .getPoolTokens(poolId);
131
- return (balances, lastChangeBlock);
132
- }
133
-
134
- function _translateToIERC20(IAsset[] memory assets) internal pure returns (IERC20[] memory) {
135
- IERC20[] memory tokens = new IERC20[](assets.length);
136
- for (uint256 i = 0; i < assets.length; ++i) {
137
- tokens[i] = _translateToIERC20(assets[i]);
138
- }
139
- return tokens;
140
- }
141
-
142
- function _translateToIERC20(IAsset asset) internal pure returns (IERC20) {
143
- return address(asset) == address(0) ? IERC20(WETH) : IERC20(address(asset));
144
- }
145
-
146
- function _toPoolBalanceChange(IVault.JoinPoolRequest memory request)
147
- private
148
- pure
149
- returns (PoolBalanceChange memory change)
150
- {
151
- // solhint-disable-next-line no-inline-assembly
152
- assembly {
153
- change := request
154
- }
155
- }
156
-
157
- function _toPoolBalanceChange(IVault.ExitPoolRequest memory request)
158
- private
159
- pure
160
- returns (PoolBalanceChange memory change)
161
- {
162
- // solhint-disable-next-line no-inline-assembly
163
- assembly {
164
- change := request
165
- }
166
- }
167
-
168
- function onJoinPool(
169
- bytes32 poolId,
170
- address sender,
171
- address recipient,
172
- uint256[] memory balances,
173
- uint256 lastChangeBlock,
174
- uint256 protocolSwapFeePercentage,
175
- bytes memory userData,
176
- bytes memory data
177
- ) internal view virtual returns (uint256 bptAmountOut);
178
-
179
- function onExitPool(
180
- bytes32 poolId,
181
- address sender,
182
- address recipient,
183
- uint256[] memory balances,
184
- uint256 lastChangeBlock,
185
- uint256 protocolSwapFeePercentage,
186
- bytes memory userData,
187
- bytes memory data
188
- ) internal view virtual returns (uint256 amountTokenOut);
189
- }
@@ -1,4 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- interface IAsset {}
@@ -1,6 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- interface IBalancerFees {
5
- function getSwapFeePercentage() external view returns (uint256);
6
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "./IVault.sol";
5
-
6
- interface IBalancerStablePreview {
7
- function joinPoolPreview(
8
- bytes32 poolId,
9
- address sender,
10
- address recipient,
11
- IVault.JoinPoolRequest memory request,
12
- bytes memory data
13
- ) external view returns (uint256 amountBptOut);
14
-
15
- function exitPoolPreview(
16
- bytes32 poolId,
17
- address sender,
18
- address recipient,
19
- IVault.ExitPoolRequest memory request,
20
- bytes memory data
21
- ) external view returns (uint256 amountTokenOut);
22
- }
@@ -1,30 +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
-
6
- interface IBasePool is IERC20 {
7
- function onJoinPool(
8
- bytes32 poolId,
9
- address sender,
10
- address recipient,
11
- uint256[] memory balances,
12
- uint256 lastChangeBlock,
13
- uint256 protocolSwapFeePercentage,
14
- bytes memory userData
15
- ) external returns (uint256[] memory amountsIn, uint256[] memory dueProtocolFeeAmounts);
16
-
17
- function onExitPool(
18
- bytes32 poolId,
19
- address sender,
20
- address recipient,
21
- uint256[] memory balances,
22
- uint256 lastChangeBlock,
23
- uint256 protocolSwapFeePercentage,
24
- bytes memory userData
25
- ) external returns (uint256[] memory amountsOut, uint256[] memory dueProtocolFeeAmounts);
26
-
27
- function getPoolId() external view returns (bytes32);
28
-
29
- function getSwapFeePercentage() external view returns (uint256);
30
- }
@@ -1,39 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "./IBasePool.sol";
5
- import "./IRateProvider.sol";
6
-
7
- interface IComposableStable is IBasePool {
8
- function getLastJoinExitData()
9
- external
10
- view
11
- returns (uint256 lastJoinExitAmplification, uint256 lastPostJoinExitInvariant);
12
-
13
- function getAmplificationParameter()
14
- external
15
- view
16
- returns (
17
- uint256 value,
18
- bool isUpdating,
19
- uint256 precision
20
- );
21
-
22
- function getProtocolFeePercentageCache(uint256 feeType) external view returns (uint256);
23
-
24
- function isTokenExemptFromYieldProtocolFee(IERC20 token) external view returns (bool);
25
-
26
- function getTokenRateCache(IERC20 token)
27
- external
28
- view
29
- returns (
30
- uint256 rate,
31
- uint256 oldRate,
32
- uint256 duration,
33
- uint256 expires
34
- );
35
-
36
- function getRateProviders() external view returns (IRateProvider[] memory);
37
-
38
- function getBptIndex() external view returns (uint256);
39
- }
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- interface IGauge {
5
- function claim_rewards(address _addr, address _receiver) external;
6
-
7
- function reward_count() external view returns (uint256);
8
-
9
- function reward_tokens(uint256 arg0) external view returns (address);
10
- }
@@ -1,6 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- interface ILiquidityGaugeFactory {
5
- function getPoolGauge(address poolAddress) external view returns (address);
6
- }