@pendle/core-v2 1.0.0-mainnet → 1.0.0-testnet

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 (552) hide show
  1. package/README.md +28 -0
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +4 -0
  17. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +592 -0
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  38. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  40. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  42. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  47. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +4 -0
  52. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.json +10 -0
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +4 -0
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +1075 -0
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +4 -0
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +1257 -0
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +4 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +1244 -0
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +4 -0
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +1218 -0
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +4 -0
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +1192 -0
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +10 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +133 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.json +10 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +4 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +40 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +4 -0
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +322 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.json +1171 -0
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +4 -0
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +10 -0
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +4 -0
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.json +133 -0
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/GMXPreviewHelper.sol/GMXPreviewHelper.dbg.json +4 -0
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/GMXPreviewHelper.sol/GMXPreviewHelper.json +50 -0
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  99. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  102. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  104. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  106. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
  107. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
  108. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
  109. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
  110. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
  111. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
  112. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
  113. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
  114. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  118. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +182 -5
  122. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  123. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +4 -0
  125. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.json +10 -0
  126. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +4 -0
  127. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.json +24 -0
  128. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +4 -0
  129. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.json +133 -0
  130. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +4 -0
  131. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.json +328 -0
  132. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +4 -0
  133. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.json +467 -0
  134. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +4 -0
  135. package/build/artifacts/contracts/interfaces/{IPFeeDistributorFactory.sol/IPFeeDistributorFactory.json → Balancer/IGauge.sol/IGauge.json} +18 -33
  136. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +4 -0
  137. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.json +30 -0
  138. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +4 -0
  139. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.json +398 -0
  140. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +4 -0
  141. package/build/artifacts/contracts/{router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json → interfaces/Balancer/IRateProvider.sol/IRateProvider.json} +5 -5
  142. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +4 -0
  143. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.json +278 -0
  144. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.json +18 -0
  146. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
  149. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
  150. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
  151. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +43 -0
  152. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
  153. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json +165 -0
  154. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
  155. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
  156. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +4 -0
  157. package/build/artifacts/contracts/{LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.json → interfaces/IApeStaking.sol/IApeStaking.json} +70 -52
  158. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
  160. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
  161. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
  162. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
  163. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
  167. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
  169. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
  171. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
  173. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  174. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
  175. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
  177. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +43 -32
  181. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
  182. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
  183. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  185. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  189. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
  190. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
  191. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  192. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  193. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  194. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  196. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  197. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  198. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  199. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  200. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  201. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +42 -28
  202. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +4 -0
  203. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +322 -0
  204. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +4 -0
  205. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +47 -0
  206. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  207. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +257 -100
  208. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  209. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
  210. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  211. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
  212. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  213. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
  214. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  215. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
  216. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  217. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +338 -45
  218. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  219. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
  220. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
  221. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
  222. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  223. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
  224. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  225. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  226. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  227. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  228. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  229. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  230. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  231. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  232. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  233. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
  234. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
  235. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
  236. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +97 -0
  237. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
  238. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
  239. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  240. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +10 -0
  241. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  242. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  243. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  244. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +388 -0
  245. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  246. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.json +101 -0
  247. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  248. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
  249. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +7 -9
  250. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +224 -0
  251. package/contracts/core/BulkSeller/BulkSeller.sol +1 -1
  252. package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +1 -3
  253. package/contracts/core/StandardizedYield/StEthHelper.sol +71 -0
  254. package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +197 -0
  255. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol +170 -0
  256. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol +162 -0
  257. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +134 -0
  258. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +154 -0
  259. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +289 -0
  260. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +618 -0
  261. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol +68 -0
  262. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +322 -0
  263. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +390 -0
  264. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +329 -0
  265. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +30 -0
  266. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +189 -0
  267. package/contracts/core/StandardizedYield/implementations/GMX/GMXPreviewHelper.sol +142 -0
  268. package/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol +244 -0
  269. package/contracts/core/StandardizedYield/implementations/GMX/README.md +61 -0
  270. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
  271. package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
  272. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
  273. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
  274. package/contracts/core/libraries/ArrayLib.sol +12 -0
  275. package/contracts/core/libraries/Errors.sol +20 -2
  276. package/contracts/core/libraries/TokenHelper.sol +10 -0
  277. package/contracts/interfaces/Balancer/IAsset.sol +4 -0
  278. package/contracts/interfaces/Balancer/IBalancerFees.sol +6 -0
  279. package/contracts/interfaces/Balancer/IBalancerStablePreview.sol +22 -0
  280. package/contracts/interfaces/Balancer/IBasePool.sol +30 -0
  281. package/contracts/interfaces/Balancer/IComposableStable.sol +39 -0
  282. package/contracts/interfaces/Balancer/IGauge.sol +10 -0
  283. package/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol +6 -0
  284. package/contracts/interfaces/Balancer/IMetaStablePool.sol +31 -0
  285. package/contracts/interfaces/Balancer/IRateProvider.sol +6 -0
  286. package/contracts/interfaces/Balancer/IVault.sol +78 -0
  287. package/contracts/interfaces/ConvexCurve/IRewards.sol +5 -0
  288. package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
  289. package/contracts/interfaces/GMX/IGlpManager.sol +8 -0
  290. package/contracts/interfaces/GMX/IRewardRouterV2.sol +35 -0
  291. package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
  292. package/contracts/interfaces/IApeStaking.sol +30 -0
  293. package/contracts/interfaces/IDiamondCut.sol +36 -0
  294. package/contracts/interfaces/IDiamondLoupe.sol +38 -0
  295. package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
  296. package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
  297. package/contracts/interfaces/IPActionMisc.sol +20 -3
  298. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  299. package/contracts/interfaces/IPActionSwapYT.sol +28 -4
  300. package/contracts/interfaces/IPAllAction.sol +5 -3
  301. package/contracts/interfaces/IPFeeDistributor.sol +12 -10
  302. package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
  303. package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
  304. package/contracts/offchain-helpers/MarketMathStatic.sol +196 -88
  305. package/contracts/offchain-helpers/Multicall2.sol +103 -0
  306. package/contracts/offchain-helpers/PendleMulticall.sol +26 -0
  307. package/contracts/offchain-helpers/RouterStatic.sol +94 -72
  308. package/contracts/router/ActionAddRemoveLiq.sol +116 -6
  309. package/contracts/router/ActionMintRedeem.sol +12 -202
  310. package/contracts/router/ActionMisc.sol +45 -19
  311. package/contracts/router/ActionSwapPT.sol +0 -5
  312. package/contracts/router/ActionSwapYT.sol +98 -13
  313. package/contracts/router/PendleRouter.sol +211 -72
  314. package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
  315. package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
  316. package/contracts/router/base/CallbackHelper.sol +137 -44
  317. package/contracts/router/base/MarketApproxLib.sol +227 -350
  318. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
  319. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
  320. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +30 -0
  321. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +63 -0
  322. package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +214 -0
  323. package/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol +147 -0
  324. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +17 -0
  325. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol +191 -0
  326. package/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol +30 -0
  327. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +42 -0
  328. package/deployments/43113-core.json +30 -0
  329. package/deployments/43113-markets/APE-30-MARCH.json +10 -0
  330. package/deployments/43113-markets/USDC-FEB-2ND.json +10 -0
  331. package/deployments/43113-markets/USDC-FEB-4TH.json +10 -0
  332. package/deployments/43113-markets/WETH-FEB-2ND.json +11 -0
  333. package/deployments/43113-markets/WETH-FEB-4TH.json +11 -0
  334. package/deployments/43113-offchain-helper.json +4 -0
  335. package/deployments/43113-testenv.json +22 -0
  336. package/deployments/80001-core.json +29 -0
  337. package/deployments/80001-markets/GLP-DEC-8TH.json +10 -0
  338. package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
  339. package/deployments/80001-markets/USDC-FEB-4TH.json +10 -0
  340. package/deployments/80001-markets/WETH-FEB-4TH.json +11 -0
  341. package/deployments/80001-offchain-helper.json +4 -0
  342. package/deployments/80001-testenv.json +22 -0
  343. package/package.json +6 -6
  344. package/typechain-types/ActionAddRemoveLiq.ts +203 -23
  345. package/typechain-types/ActionBaseCallback.ts +115 -0
  346. package/typechain-types/ActionMintRedeem.ts +29 -230
  347. package/typechain-types/ActionMisc.ts +78 -27
  348. package/typechain-types/ActionSwapPT.ts +26 -31
  349. package/typechain-types/ActionSwapYT.ts +202 -21
  350. package/typechain-types/BribeDistributor.ts +363 -0
  351. package/typechain-types/ComposableStablePreview.ts +217 -0
  352. package/typechain-types/DistributorBase.ts +363 -0
  353. package/typechain-types/FeeDistributor.ts +416 -0
  354. package/typechain-types/GMXPreviewHelper.ts +121 -0
  355. package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
  356. package/typechain-types/IAggregationExecutor.ts +182 -0
  357. package/typechain-types/IApeStaking.ts +305 -0
  358. package/typechain-types/IBalancerFees.ts +89 -0
  359. package/typechain-types/IBalancerStablePreview.ts +217 -0
  360. package/typechain-types/IBasePool.ts +482 -0
  361. package/typechain-types/IComposableStable.ts +730 -0
  362. package/typechain-types/IDiamondCut.ts +152 -0
  363. package/typechain-types/IDiamondLoupe.ts +190 -0
  364. package/typechain-types/IExecutorHelperEthereum1.ts +643 -0
  365. package/typechain-types/IGMXVault.ts +494 -0
  366. package/typechain-types/IGauge.ts +160 -0
  367. package/typechain-types/IGlpManager.ts +115 -0
  368. package/typechain-types/IHashflow.ts +159 -0
  369. package/typechain-types/IKyberSwapAggregationRouterHelper.ts +109 -0
  370. package/typechain-types/ILiquidityGaugeFactory.ts +99 -0
  371. package/typechain-types/IMetaAggregationRouter.ts +213 -0
  372. package/typechain-types/IMetaAggregationRouterV2.ts +221 -0
  373. package/typechain-types/IMetaStablePool.ts +619 -0
  374. package/typechain-types/IMultihopRouterEthereum.ts +209 -0
  375. package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
  376. package/typechain-types/IPActionMintRedeem.ts +29 -211
  377. package/typechain-types/IPActionMisc.ts +78 -27
  378. package/typechain-types/IPActionSwapPT.ts +26 -12
  379. package/typechain-types/IPActionSwapYT.ts +168 -12
  380. package/typechain-types/IPAllAction.ts +445 -227
  381. package/typechain-types/IPFeeDistributor.ts +61 -78
  382. package/typechain-types/IPFeeDistributorFactory.ts +53 -139
  383. package/typechain-types/IPInterestManagerYTV2.ts +117 -0
  384. package/typechain-types/IPSwapAggregator.ts +126 -0
  385. package/typechain-types/IPYieldTokenV2.ts +901 -0
  386. package/typechain-types/IRateProvider.ts +81 -0
  387. package/typechain-types/IRewardRouterV2.ts +303 -0
  388. package/typechain-types/IRewards.ts +35 -5
  389. package/typechain-types/ISwapAggregator.ts +124 -0
  390. package/typechain-types/IVault.ts +410 -0
  391. package/typechain-types/IVaultPriceFeed.ts +114 -0
  392. package/typechain-types/InterestManagerYTV2.ts +157 -0
  393. package/typechain-types/MarketMathStatic.ts +49 -0
  394. package/typechain-types/MetaStableMath.ts +113 -0
  395. package/typechain-types/MetaStablePreview.ts +501 -0
  396. package/typechain-types/Multicall2.ts +437 -0
  397. package/typechain-types/PendleApeStakingSY.ts +1135 -0
  398. package/typechain-types/PendleAura3EthSY.ts +1600 -0
  399. package/typechain-types/PendleAuraBalancerStableLPSY.ts +1523 -0
  400. package/typechain-types/PendleAuraCbethWstethSY.ts +1587 -0
  401. package/typechain-types/PendleAuraWethRethSY.ts +1549 -0
  402. package/typechain-types/PendleAuraWethWstethSY.ts +1523 -0
  403. package/typechain-types/PendleFeeDistributor.ts +409 -117
  404. package/typechain-types/PendleGlpSY.ts +1463 -0
  405. package/typechain-types/PendleMulticall.ts +110 -0
  406. package/typechain-types/PendlePrincipalTokenV2.ts +614 -0
  407. package/typechain-types/PendleRouter.ts +109 -131
  408. package/typechain-types/PendleSwapAggregator.ts +167 -0
  409. package/typechain-types/PendleYieldContractFactoryV2.ts +801 -0
  410. package/typechain-types/PendleYieldTokenV2.ts +1298 -0
  411. package/typechain-types/RouterStatic.ts +132 -69
  412. package/typechain-types/SAPE.ts +1395 -0
  413. package/typechain-types/SYBaseAutoCompound.ts +1203 -0
  414. package/typechain-types/StEthHelper.ts +107 -0
  415. package/typechain-types/StablePreviewBase.ts +217 -0
  416. package/typechain-types/SwapAggregator.ts +406 -0
  417. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
  418. package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
  419. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  420. package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
  421. package/typechain-types/factories/ActionMisc__factory.ts +56 -17
  422. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  423. package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
  424. package/typechain-types/factories/ActionSwapYT__factory.ts +341 -48
  425. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  426. package/typechain-types/factories/BribeDistributor__factory.ts +303 -0
  427. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  428. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  429. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  430. package/typechain-types/factories/ComposableStablePreview__factory.ts +190 -0
  431. package/typechain-types/factories/DistributorBase__factory.ts +249 -0
  432. package/typechain-types/factories/Errors__factory.ts +181 -4
  433. package/typechain-types/factories/FeeDistributor__factory.ts +339 -0
  434. package/typechain-types/factories/GMXPreviewHelper__factory.ts +65 -0
  435. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
  436. package/typechain-types/factories/IAggregationExecutor__factory.ts +84 -0
  437. package/typechain-types/factories/IApeStaking__factory.ts +161 -0
  438. package/typechain-types/factories/IBalancerFees__factory.ts +36 -0
  439. package/typechain-types/factories/IBalancerStablePreview__factory.ts +152 -0
  440. package/typechain-types/factories/IBasePool__factory.ts +340 -0
  441. package/typechain-types/factories/IComposableStable__factory.ts +482 -0
  442. package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
  443. package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
  444. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +407 -0
  445. package/typechain-types/factories/IGMXVault__factory.ts +320 -0
  446. package/typechain-types/factories/IGauge__factory.ts +70 -0
  447. package/typechain-types/factories/IGlpManager__factory.ts +55 -0
  448. package/typechain-types/factories/IHashflow__factory.ts +113 -0
  449. package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +56 -0
  450. package/typechain-types/factories/ILiquidityGaugeFactory__factory.ts +49 -0
  451. package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +234 -0
  452. package/typechain-types/factories/IMetaAggregationRouter__factory.ts +202 -0
  453. package/typechain-types/factories/IMetaStablePool__factory.ts +413 -0
  454. package/typechain-types/factories/IMultihopRouterEthereum__factory.ts +155 -0
  455. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
  456. package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
  457. package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
  458. package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
  459. package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
  460. package/typechain-types/factories/IPAllAction__factory.ts +675 -241
  461. package/typechain-types/factories/IPFeeDistributorFactory__factory.ts +25 -34
  462. package/typechain-types/factories/IPFeeDistributor__factory.ts +42 -31
  463. package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
  464. package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
  465. package/typechain-types/factories/IPYieldTokenV2__factory.ts +694 -0
  466. package/typechain-types/factories/IRateProvider__factory.ts +36 -0
  467. package/typechain-types/factories/IRewardRouterV2__factory.ts +180 -0
  468. package/typechain-types/factories/IRewards__factory.ts +18 -0
  469. package/typechain-types/factories/ISwapAggregator__factory.ts +66 -0
  470. package/typechain-types/factories/IVaultPriceFeed__factory.ts +60 -0
  471. package/typechain-types/factories/IVault__factory.ts +287 -0
  472. package/typechain-types/factories/InterestManagerYTV2__factory.ts +81 -0
  473. package/typechain-types/factories/MarketMathStatic__factory.ts +41 -27
  474. package/typechain-types/factories/MetaStableMath__factory.ts +93 -0
  475. package/typechain-types/factories/MetaStablePreview__factory.ts +375 -0
  476. package/typechain-types/factories/Multicall2__factory.ts +372 -0
  477. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  478. package/typechain-types/factories/PendleApeStakingSY__factory.ts +981 -0
  479. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1326 -0
  480. package/typechain-types/factories/PendleAuraBalancerStableLPSY__factory.ts +1190 -0
  481. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1317 -0
  482. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1291 -0
  483. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1265 -0
  484. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  485. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  486. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
  487. package/typechain-types/factories/PendleFeeDistributor__factory.ts +341 -66
  488. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  489. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  490. package/typechain-types/factories/PendleGlpSY__factory.ts +1249 -0
  491. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  492. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  493. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  494. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  495. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  496. package/typechain-types/factories/PendleMulticall__factory.ts +100 -0
  497. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +564 -0
  498. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  499. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  500. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  501. package/typechain-types/factories/PendleRouter__factory.ts +75 -74
  502. package/typechain-types/factories/PendleSwapAggregator__factory.ts +154 -0
  503. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  504. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  505. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +674 -0
  506. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  507. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1109 -0
  508. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  509. package/typechain-types/factories/RouterStatic__factory.ts +186 -41
  510. package/typechain-types/factories/SAPE__factory.ts +1142 -0
  511. package/typechain-types/factories/SYBaseAutoCompound__factory.ts +942 -0
  512. package/typechain-types/factories/StEthHelper__factory.ts +62 -0
  513. package/typechain-types/factories/StablePreviewBase__factory.ts +148 -0
  514. package/typechain-types/factories/SwapAggregator__factory.ts +309 -0
  515. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  516. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  517. package/typechain-types/hardhat.d.ts +383 -86
  518. package/typechain-types/index.ts +90 -24
  519. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +0 -4
  520. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +0 -4
  521. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +0 -310
  522. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +0 -4
  523. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +0 -389
  524. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
  525. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.json +0 -190
  526. package/build/artifacts/contracts/interfaces/IPFeeDistributorFactory.sol/IPFeeDistributorFactory.dbg.json +0 -4
  527. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  528. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
  529. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  530. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
  531. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  532. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  533. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  534. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  535. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +0 -4
  536. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.json +0 -136
  537. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  538. package/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol +0 -159
  539. package/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol +0 -99
  540. package/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol +0 -70
  541. package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
  542. package/contracts/interfaces/IPFeeDistributorFactory.sol +0 -14
  543. package/contracts/router/ActionSwapPTYT.sol +0 -108
  544. package/contracts/router/kyberswap/AggregationRouterHelper.sol +0 -317
  545. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  546. package/contracts/router/kyberswap/IMultihopRouter.sol +0 -139
  547. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
  548. package/deployments/1-core.json +0 -29
  549. package/deployments/1-markets/FRAXUSDC-CURVELP-MARCH30.json +0 -11
  550. package/deployments/1-markets/LOOKS-STAKING-MARCH30.json +0 -10
  551. package/deployments/1-markets/STETH-JUNE29.json +0 -10
  552. package/deployments/1-markets/STETH-MARCH30.json +0 -10
@@ -11,11 +11,6 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
11
11
  using Math for uint256;
12
12
  using Math for int256;
13
13
 
14
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
15
- constructor(address _kyberScalingLib)
16
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
17
- {}
18
-
19
14
  /**
20
15
  * @notice swaps input token for SY-mintable tokens (if needed), then mints SY from such
21
16
  * @param input data for input token, see {`./kyberswap/KyberSwapHelper.sol`}
@@ -61,7 +56,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
61
56
  address SY = IPYieldToken(YT).SY();
62
57
 
63
58
  uint256 netSyToMint = _mintSyFromToken(YT, SY, 0, input);
64
- netPyOut = _mintPyFromSy(receiver, YT, netSyToMint, minPyOut, false);
59
+ netPyOut = _mintPyFromSy(receiver, SY, YT, netSyToMint, minPyOut, false);
65
60
 
66
61
  emit MintPyFromToken(msg.sender, input.tokenIn, YT, receiver, input.netTokenIn, netPyOut);
67
62
  }
@@ -96,7 +91,7 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
96
91
  uint256 netSyIn,
97
92
  uint256 minPyOut
98
93
  ) external returns (uint256 netPyOut) {
99
- netPyOut = _mintPyFromSy(receiver, YT, netSyIn, minPyOut, true);
94
+ netPyOut = _mintPyFromSy(receiver, IPYieldToken(YT).SY(), YT, netSyIn, minPyOut, true);
100
95
  emit MintPyFromSy(msg.sender, receiver, YT, netSyIn, netPyOut);
101
96
  }
102
97
 
@@ -121,204 +116,19 @@ contract ActionMintRedeem is IPActionMintRedeem, ActionBaseMintRedeem {
121
116
  address[] calldata sys,
122
117
  address[] calldata yts,
123
118
  address[] calldata markets
124
- )
125
- external
126
- returns (
127
- uint256[][] memory syRewards,
128
- uint256[] memory ytInterests,
129
- uint256[][] memory ytRewards,
130
- uint256[][] memory marketRewards
131
- )
132
- {
133
- syRewards = new uint256[][](sys.length);
134
- for (uint256 i = 0; i < sys.length; ++i) {
135
- syRewards[i] = IStandardizedYield(sys[i]).claimRewards(user);
136
- }
137
-
138
- ytInterests = new uint256[](yts.length);
139
- ytRewards = new uint256[][](yts.length);
140
- for (uint256 i = 0; i < yts.length; ++i) {
141
- (ytInterests[i], ytRewards[i]) = IPYieldToken(yts[i]).redeemDueInterestAndRewards(
142
- user,
143
- true,
144
- true
145
- );
146
- }
147
-
148
- marketRewards = new uint256[][](markets.length);
149
- for (uint256 i = 0; i < markets.length; ++i) {
150
- marketRewards[i] = IPMarket(markets[i]).redeemRewards(user);
151
- }
152
- emit RedeemDueInterestAndRewards(
153
- user,
154
- sys,
155
- yts,
156
- markets,
157
- syRewards,
158
- ytInterests,
159
- ytRewards,
160
- marketRewards
161
- );
162
- }
163
-
164
- struct RouterTokenAmounts {
165
- address[] tokens;
166
- uint256[] amounts;
167
- }
168
-
169
- /**
170
- * @notice A function to:
171
- - Redeem all of caller's due interest and rewards in SYs, YTs, and markets
172
- - Redeem SYs themselves
173
- - Finally swaps all resulting tokens to `dataSwap.outputToken`
174
- * @return netTokenOut total token output amount, will not be lower than `dataSwap.minTokenOut`
175
- * @return amountsSwapped the amounts swapped for each token defined in `dataSwap.tokens`
176
- */
177
- function redeemDueInterestAndRewardsThenSwapAll(
178
- address[] calldata sys,
179
- RouterYtRedeemStruct calldata dataYT,
180
- address[] calldata markets,
181
- RouterSwapAllStruct calldata dataSwap
182
- ) external returns (uint256 netTokenOut, uint256[] memory amountsSwapped) {
183
- if (dataSwap.tokens.length != dataSwap.kybercalls.length)
184
- revert Errors.ArrayLengthMismatch();
185
-
186
- if (dataYT.tokenRedeemSys.length != dataYT.syAddrs.length)
187
- revert Errors.ArrayLengthMismatch();
188
-
189
- RouterTokenAmounts memory tokensOut = _newRouterTokenAmounts(dataSwap.tokens);
190
- RouterTokenAmounts memory sysOut = _newRouterTokenAmounts(dataYT.syAddrs);
191
-
192
- // redeem SY
193
- for (uint256 i = 0; i < sys.length; ++i) {
194
- IStandardizedYield SY = IStandardizedYield(sys[i]);
195
-
196
- address[] memory rewardTokens = SY.getRewardTokens();
197
- uint256[] memory rewardAmounts = SY.claimRewards(msg.sender);
198
- _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
199
- }
200
-
201
- // redeem YT
202
- for (uint256 i = 0; i < dataYT.yts.length; ++i) {
203
- IPYieldToken YT = IPYieldToken(dataYT.yts[i]);
204
-
205
- (uint256 interestAmount, uint256[] memory rewardAmounts) = YT
206
- .redeemDueInterestAndRewards(msg.sender, true, true);
207
-
208
- address syAddr = YT.SY();
209
- address[] memory rewardTokens = YT.getRewardTokens();
210
-
211
- _addTokenAmount(sysOut, syAddr, interestAmount);
212
- _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
213
- }
214
-
215
- // redeem market
216
- for (uint256 i = 0; i < markets.length; ++i) {
217
- IPMarket market = IPMarket(markets[i]);
218
-
219
- address[] memory rewardTokens = market.getRewardTokens();
220
- uint256[] memory rewardAmounts = market.redeemRewards(msg.sender);
221
- _addTokenAmounts(tokensOut, rewardTokens, rewardAmounts);
222
- }
223
-
224
- // guaranteed no ETH, all rewards are ERC20
225
- for (uint256 i = 0; i < tokensOut.tokens.length; ++i) {
226
- _transferFrom(
227
- IERC20(tokensOut.tokens[i]),
228
- msg.sender,
229
- address(this),
230
- tokensOut.amounts[i]
231
- );
232
- }
233
- _redeemAllSys(sysOut, dataYT.bulks, dataYT.tokenRedeemSys, tokensOut);
234
-
235
- // now swap all to outputToken
236
- netTokenOut = _swapAllToOutputToken(tokensOut, dataSwap);
237
-
238
- if (netTokenOut < dataSwap.minTokenOut)
239
- revert Errors.RouterInsufficientTokenOut(netTokenOut, dataSwap.minTokenOut);
240
-
241
- amountsSwapped = tokensOut.amounts;
242
-
243
- emit RedeemDueInterestAndRewardsThenSwapAll(
244
- msg.sender,
245
- sys,
246
- dataYT.yts,
247
- markets,
248
- dataSwap.outputToken,
249
- netTokenOut
250
- );
251
- }
252
-
253
- function _newRouterTokenAmounts(address[] memory tokens)
254
- internal
255
- pure
256
- returns (RouterTokenAmounts memory)
257
- {
258
- return RouterTokenAmounts(tokens, new uint256[](tokens.length));
259
- }
260
-
261
- /// @dev pull SYs from users & redeem them, then add to tokensOut
262
- function _redeemAllSys(
263
- RouterTokenAmounts memory sys,
264
- address[] calldata bulks,
265
- address[] calldata tokenRedeemSys,
266
- RouterTokenAmounts memory tokensOut
267
- ) internal {
268
- for (uint256 i = 0; i < sys.tokens.length; ++i) {
269
- if (sys.amounts[i] == 0) continue;
270
-
271
- TokenOutput memory output = _wrapTokenOutput(tokenRedeemSys[i], 1, bulks[i]);
272
- uint256 amountOut = _redeemSyToToken(
273
- address(this),
274
- sys.tokens[i],
275
- sys.amounts[i],
276
- output,
277
- true
278
- );
279
-
280
- _addTokenAmount(tokensOut, tokenRedeemSys[i], amountOut);
281
- }
282
- }
283
-
284
- function _swapAllToOutputToken(
285
- RouterTokenAmounts memory tokens,
286
- RouterSwapAllStruct memory dataSwap
287
- ) internal returns (uint256 netTokenOut) {
288
- for (uint256 i = 0; i < tokens.tokens.length; ++i) {
289
- if (tokens.amounts[i] == 0) continue;
290
- _kyberswap(
291
- tokens.tokens[i],
292
- tokens.amounts[i],
293
- dataSwap.kyberRouter,
294
- dataSwap.kybercalls[i]
295
- );
296
- }
297
- netTokenOut = _selfBalance(dataSwap.outputToken);
298
- _transferOut(dataSwap.outputToken, msg.sender, netTokenOut);
299
- }
119
+ ) external {
120
+ unchecked {
121
+ for (uint256 i = 0; i < sys.length; ++i) {
122
+ IStandardizedYield(sys[i]).claimRewards(user);
123
+ }
300
124
 
301
- function _addTokenAmount(
302
- RouterTokenAmounts memory data,
303
- address token,
304
- uint256 amount
305
- ) internal pure {
306
- for (uint256 j = 0; j < data.tokens.length; j++) {
307
- if (data.tokens[j] == token) {
308
- data.amounts[j] += amount;
309
- return;
125
+ for (uint256 i = 0; i < yts.length; ++i) {
126
+ IPYieldToken(yts[i]).redeemDueInterestAndRewards(user, true, true);
310
127
  }
311
- }
312
- revert("token not found");
313
- }
314
128
 
315
- function _addTokenAmounts(
316
- RouterTokenAmounts memory data,
317
- address[] memory tokens,
318
- uint256[] memory amounts
319
- ) internal pure {
320
- for (uint256 i = 0; i < tokens.length; i++) {
321
- _addTokenAmount(data, tokens[i], amounts[i]);
129
+ for (uint256 i = 0; i < markets.length; ++i) {
130
+ IPMarket(markets[i]).redeemRewards(user);
131
+ }
322
132
  }
323
133
  }
324
134
  }
@@ -1,25 +1,51 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.17;
3
3
 
4
- import "../interfaces/IPMarket.sol";
5
4
  import "../interfaces/IPActionMisc.sol";
6
- import "../core/libraries/Errors.sol";
7
-
8
- contract ActionMisc is IPActionMisc {
9
- using Math for uint256;
10
-
11
- function consult(address market, uint32 secondsAgo)
12
- external
13
- view
14
- returns (uint96 lnImpliedRateMean)
15
- {
16
- if (secondsAgo == 0) revert Errors.RouterTimeRangeZero();
17
- uint32[] memory secondsAgos = new uint32[](2);
18
- secondsAgos[0] = secondsAgo;
19
- secondsAgos[1] = 0;
20
- uint216[] memory lnImpliedRateCumulatives = IPMarket(market).observe(secondsAgos);
21
- return
22
- (uint256(lnImpliedRateCumulatives[1] - lnImpliedRateCumulatives[0]) / secondsAgo)
23
- .Uint96();
5
+ import "../core/libraries/TokenHelper.sol";
6
+
7
+ contract ActionMisc is IPActionMisc, TokenHelper {
8
+ function approveInf(MultiApproval[] calldata arr) external {
9
+ for (uint256 i = 0; i < arr.length; ) {
10
+ MultiApproval calldata ele = arr[i];
11
+ for (uint256 j = 0; j < ele.tokens.length; ) {
12
+ _safeApproveInf(ele.tokens[j], ele.spender);
13
+ unchecked {
14
+ j++;
15
+ }
16
+ }
17
+ unchecked {
18
+ i++;
19
+ }
20
+ }
21
+ }
22
+
23
+ function batchExec(Call3[] calldata calls) external payable returns (Result[] memory res) {
24
+ uint256 length = calls.length;
25
+
26
+ res = new Result[](length);
27
+
28
+ Call3 calldata calli;
29
+
30
+ for (uint256 i = 0; i < length; ) {
31
+ calli = calls[i];
32
+
33
+ // delegatecall to itself, it turns allowing invoking functions from other actions
34
+ (bool success, bytes memory result) = address(this).delegatecall(calli.callData);
35
+
36
+ if (!success && !calli.allowFailure) {
37
+ assembly {
38
+ // We use Yul's revert() to bubble up errors from the target contract.
39
+ revert(add(32, result), mload(result))
40
+ }
41
+ }
42
+
43
+ res[i].success = success;
44
+ res[i].returnData = result;
45
+
46
+ unchecked {
47
+ ++i;
48
+ }
49
+ }
24
50
  }
25
51
  }
@@ -15,11 +15,6 @@ contract ActionSwapPT is IPActionSwapPT, ActionBaseMintRedeem {
15
15
  using Math for int256;
16
16
  using PYIndexLib for IPYieldToken;
17
17
 
18
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
19
- constructor(address _kyberScalingLib)
20
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
21
- {}
22
-
23
18
  /**
24
19
  * @notice swaps exact amount of PT for SY
25
20
  * @param exactPtIn will always consume this exact amount of PT for as much SY as possible
@@ -7,8 +7,10 @@ import "../interfaces/IPActionSwapYT.sol";
7
7
  import "../interfaces/IPMarket.sol";
8
8
  import "../core/libraries/Errors.sol";
9
9
 
10
+ import "./base/ActionBaseCallback.sol";
11
+
10
12
  /// @dev All swap actions will revert if market is expired
11
- contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
13
+ contract ActionSwapYT is ActionBaseCallback, IPActionSwapYT, ActionBaseMintRedeem {
12
14
  using Math for uint256;
13
15
  using Math for int256;
14
16
  using MarketMathCore for MarketState;
@@ -16,10 +18,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
16
18
  using MarketApproxPtOutLib for MarketState;
17
19
  using PYIndexLib for IPYieldToken;
18
20
 
19
- /// @dev since this contract will be proxied, it must not contains non-immutable variables
20
- constructor(address _kyberScalingLib)
21
- ActionBaseMintRedeem(_kyberScalingLib) //solhint-disable-next-line no-empty-blocks
22
- {}
21
+ constructor(address _marketFactory) ActionBaseCallback(_marketFactory) {}
23
22
 
24
23
  /**
25
24
  * @notice swap exact SY to YT with the help of flashswaps & YT tokenization / redemption
@@ -38,7 +37,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
38
37
  address market,
39
38
  uint256 exactSyIn,
40
39
  uint256 minYtOut,
41
- ApproxParams memory guessYtOut
40
+ ApproxParams calldata guessYtOut
42
41
  ) external returns (uint256 netYtOut, uint256 netSyFee) {
43
42
  (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
44
43
 
@@ -105,7 +104,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
105
104
  (, netSyFee) = IPMarket(market).swapExactPtForSy(
106
105
  address(YT),
107
106
  exactYtOut, // exactPtIn = exactYtOut
108
- _encodeSwapSyForExactYt(msg.sender, receiver, maxSyIn)
107
+ _encodeSwapSyForExactYt(msg.sender, receiver, maxSyIn, SY, YT)
109
108
  );
110
109
 
111
110
  netSyIn = preSyBalance - SY.balanceOf(msg.sender);
@@ -129,7 +128,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
129
128
  address market,
130
129
  uint256 exactSyOut,
131
130
  uint256 maxYtIn,
132
- ApproxParams memory guessYtIn
131
+ ApproxParams calldata guessYtIn
133
132
  ) external returns (uint256 netYtIn, uint256 netSyFee) {
134
133
  MarketState memory state = IPMarket(market).readState(address(this));
135
134
  (, , IPYieldToken YT) = IPMarket(market).readTokens();
@@ -148,7 +147,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
148
147
  (, netSyFee) = IPMarket(market).swapSyForExactPt(
149
148
  address(YT),
150
149
  netYtIn, // exactPtOut = netYtIn
151
- _encodeSwapYtForSy(receiver, exactSyOut)
150
+ _encodeSwapYtForSy(receiver, exactSyOut, YT)
152
151
  );
153
152
 
154
153
  emit SwapYtAndSy(msg.sender, market, receiver, netYtIn.neg(), exactSyOut.Int());
@@ -163,7 +162,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
163
162
  address receiver,
164
163
  address market,
165
164
  uint256 minYtOut,
166
- ApproxParams memory guessYtOut,
165
+ ApproxParams calldata guessYtOut,
167
166
  TokenInput calldata input
168
167
  ) external payable returns (uint256 netYtOut, uint256 netSyFee) {
169
168
  (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
@@ -227,13 +226,99 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
227
226
  );
228
227
  }
229
228
 
229
+ /**
230
+ * @notice swap exact PT to YT with the help of flashswaps & YT tokenization / redemption
231
+ * @dev inner working of this function:
232
+ - `exactPtIn` PT is transferred to market contract
233
+ - `market.swapExactPtForSy` is called, which will transfer SY directly to YT contract & callback is invoked.
234
+ Note that we will owe PT, the amount before is not sufficient
235
+ - in callback, all SY in YT contract is used to mint PT + YT, with PT used to pay the rest of the loan, and YT
236
+ transferred to the receiver
237
+ * @param exactPtIn will always consume this amount of PT for as much YT as possible
238
+ * @param guessTotalPtToSwap approximation data for PT used for the PT-to-SY flashswap
239
+ * @dev this function works in conjunction with ActionCallback
240
+ */
241
+ function swapExactPtForYt(
242
+ address receiver,
243
+ address market,
244
+ uint256 exactPtIn,
245
+ uint256 minYtOut,
246
+ ApproxParams calldata guessTotalPtToSwap
247
+ ) external returns (uint256 netYtOut, uint256 netSyFee) {
248
+ (, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
249
+ MarketState memory state = IPMarket(market).readState(address(this));
250
+
251
+ _transferFrom(IERC20(PT), msg.sender, market, exactPtIn);
252
+
253
+ uint256 totalPtToSwap;
254
+ (netYtOut, totalPtToSwap, netSyFee) = state.approxSwapExactPtForYt(
255
+ YT.newIndex(),
256
+ exactPtIn,
257
+ block.timestamp,
258
+ guessTotalPtToSwap
259
+ );
260
+
261
+ if (netYtOut < minYtOut) revert Errors.RouterInsufficientYtOut(netYtOut, minYtOut);
262
+
263
+ IPMarket(market).swapExactPtForSy(
264
+ address(YT),
265
+ totalPtToSwap,
266
+ _encodeSwapExactPtForYt(receiver, exactPtIn, minYtOut, YT)
267
+ );
268
+
269
+ emit SwapPtAndYt(msg.sender, market, receiver, exactPtIn.neg(), netYtOut.Int());
270
+ }
271
+
272
+ /**
273
+ * @notice swap exact YT to PT with the help of flashswaps & YT tokenization / redemption
274
+ * @dev inner working of this function:
275
+ - `exactYtIn` YT is transferred to yield contract
276
+ - `market.swapSyForExactPt` is called, which will transfer PT directly to this contract & callback is invoked.
277
+ Note that we now owe SY
278
+ - in callback, a portion of PT + YT is used to redeem SY, which is then used to payback the loan. The rest of
279
+ of the PT is transferred to `receiver`
280
+ * @param exactYtIn will always consume this amount of YT for as much PT as possible
281
+ * @param guessTotalPtFromSwap approximation data for PT output of the SY-to-PT flashswap
282
+ * @dev this function works in conjunction with ActionCallback
283
+ */
284
+ function swapExactYtForPt(
285
+ address receiver,
286
+ address market,
287
+ uint256 exactYtIn,
288
+ uint256 minPtOut,
289
+ ApproxParams calldata guessTotalPtFromSwap
290
+ ) external returns (uint256 netPtOut, uint256 netSyFee) {
291
+ (, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
292
+ MarketState memory state = IPMarket(market).readState(address(this));
293
+
294
+ _transferFrom(IERC20(YT), msg.sender, address(YT), exactYtIn);
295
+
296
+ uint256 totalPtFromSwap;
297
+ (netPtOut, totalPtFromSwap, netSyFee) = state.approxSwapExactYtForPt(
298
+ YT.newIndex(),
299
+ exactYtIn,
300
+ block.timestamp,
301
+ guessTotalPtFromSwap
302
+ );
303
+
304
+ if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
305
+
306
+ IPMarket(market).swapSyForExactPt(
307
+ address(this),
308
+ totalPtFromSwap,
309
+ _encodeSwapExactYtForPt(receiver, exactYtIn, minPtOut, PT, YT)
310
+ );
311
+
312
+ emit SwapPtAndYt(msg.sender, market, receiver, netPtOut.Int(), exactYtIn.neg());
313
+ }
314
+
230
315
  function _swapExactSyForYt(
231
316
  address receiver,
232
317
  address market,
233
318
  IPYieldToken YT,
234
319
  uint256 exactSyIn,
235
320
  uint256 minYtOut,
236
- ApproxParams memory guessYtOut
321
+ ApproxParams calldata guessYtOut
237
322
  ) internal returns (uint256 netYtOut, uint256 netSyFee) {
238
323
  MarketState memory state = IPMarket(market).readState(address(this));
239
324
 
@@ -250,7 +335,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
250
335
  (, netSyFee) = IPMarket(market).swapExactPtForSy(
251
336
  address(YT),
252
337
  netYtOut, // exactPtIn = netYtOut
253
- _encodeSwapExactSyForYt(receiver, minYtOut)
338
+ _encodeSwapExactSyForYt(receiver, minYtOut, YT)
254
339
  );
255
340
  }
256
341
 
@@ -267,7 +352,7 @@ contract ActionSwapYT is IPActionSwapYT, ActionBaseMintRedeem, CallbackHelper {
267
352
  (, netSyFee) = IPMarket(market).swapSyForExactPt(
268
353
  address(YT),
269
354
  exactYtIn, // exactPtOut = exactYtIn
270
- _encodeSwapYtForSy(receiver, minSyOut)
355
+ _encodeSwapYtForSy(receiver, minSyOut, YT)
271
356
  );
272
357
 
273
358
  netSyOut = SY.balanceOf(receiver) - preSyBalance;