@pendle/core-v2 0.20.1-testnet → 0.21.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 (334) 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/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +34 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  40. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  45. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.json +141 -0
  49. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.json +141 -0
  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 +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +143 -2
  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 +143 -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 +143 -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 +143 -2
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.json +141 -0
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +143 -2
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +143 -2
  93. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  94. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  95. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  97. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  99. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  101. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +39 -2
  103. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +4 -0
  104. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.json +10 -0
  105. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +4 -0
  106. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.json +24 -0
  107. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +4 -0
  108. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.json +133 -0
  109. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +4 -0
  110. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.json +328 -0
  111. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +4 -0
  112. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.json +467 -0
  113. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +4 -0
  114. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.json +61 -0
  115. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +4 -0
  116. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.json +30 -0
  117. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +4 -0
  118. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.json +398 -0
  119. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +4 -0
  120. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.json +24 -0
  121. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +4 -0
  122. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.json +278 -0
  123. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.json +18 -0
  125. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +19 -0
  135. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  138. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  139. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  140. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  141. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
  142. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +4 -0
  143. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +322 -0
  144. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +4 -0
  145. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +47 -0
  146. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  147. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +2 -2
  148. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  149. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  150. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  151. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  152. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  153. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  154. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  155. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  156. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  157. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  158. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  159. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  160. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  161. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  162. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  163. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  164. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  165. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  166. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  167. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  168. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  169. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
  170. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +2 -2
  171. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +1 -1
  172. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  173. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  174. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +10 -0
  175. package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  176. package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  177. package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  178. package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +388 -0
  179. package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  180. package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.json +101 -0
  181. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +4 -0
  182. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json +183 -0
  183. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  184. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
  185. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +7 -9
  186. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +10 -0
  187. package/contracts/core/StandardizedYield/SYBase.sol +23 -5
  188. package/contracts/core/StandardizedYield/StEthHelper.sol +71 -0
  189. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol +170 -0
  190. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol +162 -0
  191. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +134 -0
  192. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +154 -0
  193. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +289 -0
  194. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +618 -0
  195. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol +68 -0
  196. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +322 -0
  197. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +390 -0
  198. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +329 -0
  199. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +30 -0
  200. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +189 -0
  201. package/contracts/core/libraries/ArrayLib.sol +6 -3
  202. package/contracts/core/libraries/Errors.sol +4 -0
  203. package/contracts/interfaces/Balancer/IAsset.sol +4 -0
  204. package/contracts/interfaces/Balancer/IBalancerFees.sol +6 -0
  205. package/contracts/interfaces/Balancer/IBalancerStablePreview.sol +22 -0
  206. package/contracts/interfaces/Balancer/IBasePool.sol +30 -0
  207. package/contracts/interfaces/Balancer/IComposableStable.sol +39 -0
  208. package/contracts/interfaces/Balancer/IGauge.sol +10 -0
  209. package/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol +6 -0
  210. package/contracts/interfaces/Balancer/IMetaStablePool.sol +31 -0
  211. package/contracts/interfaces/Balancer/IRateProvider.sol +6 -0
  212. package/contracts/interfaces/Balancer/IVault.sol +78 -0
  213. package/contracts/interfaces/ConvexCurve/IRewards.sol +5 -0
  214. package/contracts/interfaces/IApeStaking.sol +1 -1
  215. package/contracts/interfaces/IPFeeDistributor.sol +2 -0
  216. package/contracts/offchain-helpers/Multicall2.sol +103 -0
  217. package/contracts/offchain-helpers/PendleMulticall.sol +26 -0
  218. package/contracts/router/kyberswap/AggregationRouterHelper.sol +193 -205
  219. package/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol +147 -0
  220. package/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol +17 -0
  221. package/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol +191 -0
  222. package/contracts/router/kyberswap/interfaces/IHashflow.sol +30 -0
  223. package/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol +33 -0
  224. package/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol +42 -0
  225. package/deployments/43113-helper.json +2 -1
  226. package/deployments/80001-helper.json +2 -1
  227. package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
  228. package/package.json +6 -6
  229. package/typechain-types/GMXPreviewHelper.ts +134 -0
  230. package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
  231. package/typechain-types/IAggregationExecutor.ts +182 -0
  232. package/typechain-types/IExecutorHelperEthereum1.ts +643 -0
  233. package/typechain-types/IGMXVault.ts +494 -0
  234. package/typechain-types/IGlpManager.ts +115 -0
  235. package/typechain-types/IHashflow.ts +159 -0
  236. package/typechain-types/IKyberSwapAggregationRouterHelper.ts +109 -0
  237. package/typechain-types/IMetaAggregationRouter.ts +213 -0
  238. package/typechain-types/IMetaAggregationRouterV2.ts +221 -0
  239. package/typechain-types/IPFeeDistributor.ts +18 -0
  240. package/typechain-types/IPYieldTokenV2.ts +915 -0
  241. package/typechain-types/IRewardRouterV2.ts +303 -0
  242. package/typechain-types/IRewards.ts +35 -5
  243. package/typechain-types/ISwapAggregator.ts +124 -0
  244. package/typechain-types/IVaultPriceFeed.ts +114 -0
  245. package/typechain-types/InterestManagerYTV2.ts +124 -0
  246. package/typechain-types/PendleAura3EthSY.ts +0 -39
  247. package/typechain-types/PendleAuraCbethWstethSY.ts +0 -39
  248. package/typechain-types/PendleAuraWethWstethSY.ts +0 -39
  249. package/typechain-types/PendleConvexLPSY.ts +204 -0
  250. package/typechain-types/PendleCurveFraxUsdcSY.ts +204 -0
  251. package/typechain-types/PendleCurveUsdd3CrvSY.ts +204 -0
  252. package/typechain-types/PendleFeeDistributor.ts +37 -0
  253. package/typechain-types/PendleGlpSY.ts +1449 -0
  254. package/typechain-types/PendleLooksStakingSY.ts +204 -0
  255. package/typechain-types/PendleMulticall.ts +110 -0
  256. package/typechain-types/PendlePrincipalTokenV2.ts +614 -0
  257. package/typechain-types/PendleQiTokenSY.ts +204 -0
  258. package/typechain-types/PendleWstEthSY.ts +204 -0
  259. package/typechain-types/PendleYieldContractFactoryV2.ts +801 -0
  260. package/typechain-types/PendleYieldTokenV2.ts +1304 -0
  261. package/typechain-types/SAPE.ts +204 -0
  262. package/typechain-types/SYBase.ts +204 -0
  263. package/typechain-types/SYBaseWithRewards.ts +204 -0
  264. package/typechain-types/SwapAggregator.ts +406 -0
  265. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  266. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  267. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  268. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  269. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  270. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  271. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  272. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  273. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  274. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  275. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  276. package/typechain-types/factories/Errors__factory.ts +38 -1
  277. package/typechain-types/factories/GMXPreviewHelper__factory.ts +78 -0
  278. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
  279. package/typechain-types/factories/IAggregationExecutor__factory.ts +84 -0
  280. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +407 -0
  281. package/typechain-types/factories/IGMXVault__factory.ts +320 -0
  282. package/typechain-types/factories/IGlpManager__factory.ts +55 -0
  283. package/typechain-types/factories/IHashflow__factory.ts +113 -0
  284. package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +56 -0
  285. package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +234 -0
  286. package/typechain-types/factories/IMetaAggregationRouter__factory.ts +202 -0
  287. package/typechain-types/factories/IPFeeDistributor__factory.ts +19 -0
  288. package/typechain-types/factories/IPYieldTokenV2__factory.ts +702 -0
  289. package/typechain-types/factories/IRewardRouterV2__factory.ts +180 -0
  290. package/typechain-types/factories/IRewards__factory.ts +18 -0
  291. package/typechain-types/factories/ISwapAggregator__factory.ts +66 -0
  292. package/typechain-types/factories/IVaultPriceFeed__factory.ts +60 -0
  293. package/typechain-types/factories/InterestManagerYTV2__factory.ts +63 -0
  294. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  295. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  296. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -40
  297. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -40
  298. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -40
  299. package/typechain-types/factories/PendleConvexLPSY__factory.ts +141 -0
  300. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +142 -1
  301. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +142 -1
  302. package/typechain-types/factories/PendleFeeDistributor__factory.ts +33 -1
  303. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  304. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  305. package/typechain-types/factories/PendleGlpSY__factory.ts +1255 -0
  306. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +142 -1
  307. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  308. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  309. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  310. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  311. package/typechain-types/factories/PendleMulticall__factory.ts +100 -0
  312. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +564 -0
  313. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  314. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  315. package/typechain-types/factories/PendleQiTokenSY__factory.ts +142 -1
  316. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  317. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  318. package/typechain-types/factories/PendleWstEthSY__factory.ts +142 -1
  319. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +674 -0
  320. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  321. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1122 -0
  322. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  323. package/typechain-types/factories/RouterStatic__factory.ts +1 -1
  324. package/typechain-types/factories/SAPE__factory.ts +142 -1
  325. package/typechain-types/factories/SYBaseWithRewards__factory.ts +141 -0
  326. package/typechain-types/factories/SYBase__factory.ts +141 -0
  327. package/typechain-types/factories/SwapAggregator__factory.ts +309 -0
  328. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  329. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  330. package/typechain-types/hardhat.d.ts +103 -13
  331. package/typechain-types/index.ts +24 -4
  332. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.dbg.json +0 -4
  333. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.json +0 -136
  334. package/contracts/router/kyberswap/IMultihopRouterEthereum.sol +0 -141
@@ -0,0 +1,39 @@
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
+ }
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,6 @@
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
+ }
@@ -0,0 +1,31 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./IBasePool.sol";
5
+
6
+ interface IMetaStablePool is IBasePool {
7
+ function getLastInvariant()
8
+ external
9
+ view
10
+ returns (uint256 lastInvariant, uint256 lastInvariantAmp);
11
+
12
+ function getAmplificationParameter()
13
+ external
14
+ view
15
+ returns (
16
+ uint256 value,
17
+ bool isUpdating,
18
+ uint256 precision
19
+ );
20
+
21
+ function getSwapFeePercentage() external view returns (uint256);
22
+
23
+ function getPriceRateCache(IERC20 token)
24
+ external
25
+ view
26
+ returns (
27
+ uint256 rate,
28
+ uint256 duration,
29
+ uint256 expires
30
+ );
31
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ interface IRateProvider {
5
+ function getRate() external view returns (uint256);
6
+ }
@@ -0,0 +1,78 @@
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 "./IAsset.sol";
6
+
7
+ interface IVault {
8
+ struct JoinPoolRequest {
9
+ address[] assets;
10
+ uint256[] maxAmountsIn;
11
+ bytes userData;
12
+ bool fromInternalBalance;
13
+ }
14
+
15
+ function joinPool(
16
+ bytes32 poolId,
17
+ address sender,
18
+ address recipient,
19
+ JoinPoolRequest memory request
20
+ ) external payable;
21
+
22
+ struct ExitPoolRequest {
23
+ address[] assets;
24
+ uint256[] minAmountsOut;
25
+ bytes userData;
26
+ bool toInternalBalance;
27
+ }
28
+
29
+ function exitPool(
30
+ bytes32 poolId,
31
+ address sender,
32
+ address payable recipient,
33
+ ExitPoolRequest memory request
34
+ ) external;
35
+
36
+ enum SwapKind {
37
+ GIVEN_IN,
38
+ GIVEN_OUT
39
+ }
40
+
41
+ struct SingleSwap {
42
+ bytes32 poolId;
43
+ SwapKind kind;
44
+ IAsset assetIn;
45
+ IAsset assetOut;
46
+ uint256 amount;
47
+ bytes userData;
48
+ }
49
+
50
+ struct FundManagement {
51
+ address sender;
52
+ bool fromInternalBalance;
53
+ address payable recipient;
54
+ bool toInternalBalance;
55
+ }
56
+
57
+ function swap(
58
+ SingleSwap memory singleSwap,
59
+ FundManagement memory funds,
60
+ uint256 limit,
61
+ uint256 deadline
62
+ ) external payable returns (uint256);
63
+
64
+ function getPoolTokens(bytes32 poolId)
65
+ external
66
+ view
67
+ returns (
68
+ IERC20[] memory tokens,
69
+ uint256[] memory balances,
70
+ uint256 lastChangeBlock
71
+ );
72
+
73
+ function WETH() external view returns (IERC20);
74
+
75
+ function getPool(bytes32 poolId) external view returns (address, uint8);
76
+
77
+ function getProtocolFeesCollector() external view returns (address);
78
+ }
@@ -14,6 +14,11 @@ interface IRewards {
14
14
 
15
15
  function exit(address) external;
16
16
 
17
+ function getReward(
18
+ address, /*_account*/
19
+ bool /*_claimExtras*/
20
+ ) external;
21
+
17
22
  function getReward() external;
18
23
 
19
24
  function queueNewRewards(uint256) external;
@@ -24,7 +24,7 @@ interface IApeStaking {
24
24
  external
25
25
  view
26
26
  returns (uint256 stakedAmount, int256 rewardsDebt);
27
-
27
+
28
28
  // for SDK
29
29
  function pools(uint256 id) external view returns (uint48, uint16, uint96 totalStaked, uint96);
30
30
  }
@@ -6,6 +6,8 @@ interface IPFeeDistributor {
6
6
 
7
7
  event ClaimReward(address indexed pool, address indexed user, uint256 wTime, uint256 amount);
8
8
 
9
+ event PoolAdded(address indexed pool, uint256 indexed startWeek);
10
+
9
11
  struct UserInfo {
10
12
  uint128 firstUnclaimedWeek;
11
13
  uint128 iter;
@@ -0,0 +1,103 @@
1
+ pragma solidity >=0.5.0;
2
+ pragma experimental ABIEncoderV2;
3
+
4
+ /// @title Multicall2 - Aggregate results from multiple read-only function calls
5
+ /// @author Michael Elliot <mike@makerdao.com>
6
+ /// @author Joshua Levine <joshua@makerdao.com>
7
+ /// @author Nick Johnson <arachnid@notdot.net>
8
+
9
+ contract Multicall2 {
10
+ struct Call {
11
+ address target;
12
+ bytes callData;
13
+ }
14
+ struct Result {
15
+ bool success;
16
+ bytes returnData;
17
+ }
18
+
19
+ function aggregate(Call[] memory calls)
20
+ public
21
+ returns (uint256 blockNumber, bytes[] memory returnData)
22
+ {
23
+ blockNumber = block.number;
24
+ returnData = new bytes[](calls.length);
25
+ for (uint256 i = 0; i < calls.length; i++) {
26
+ (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
27
+ require(success, "Multicall aggregate: call failed");
28
+ returnData[i] = ret;
29
+ }
30
+ }
31
+
32
+ function blockAndAggregate(Call[] memory calls)
33
+ public
34
+ returns (
35
+ uint256 blockNumber,
36
+ bytes32 blockHash,
37
+ Result[] memory returnData
38
+ )
39
+ {
40
+ (blockNumber, blockHash, returnData) = tryBlockAndAggregate(true, calls);
41
+ }
42
+
43
+ function getBlockHash(uint256 blockNumber) public view returns (bytes32 blockHash) {
44
+ blockHash = blockhash(blockNumber);
45
+ }
46
+
47
+ function getBlockNumber() public view returns (uint256 blockNumber) {
48
+ blockNumber = block.number;
49
+ }
50
+
51
+ function getCurrentBlockCoinbase() public view returns (address coinbase) {
52
+ coinbase = block.coinbase;
53
+ }
54
+
55
+ function getCurrentBlockDifficulty() public view returns (uint256 difficulty) {
56
+ difficulty = block.difficulty;
57
+ }
58
+
59
+ function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) {
60
+ gaslimit = block.gaslimit;
61
+ }
62
+
63
+ function getCurrentBlockTimestamp() public view returns (uint256 timestamp) {
64
+ timestamp = block.timestamp;
65
+ }
66
+
67
+ function getEthBalance(address addr) public view returns (uint256 balance) {
68
+ balance = addr.balance;
69
+ }
70
+
71
+ function getLastBlockHash() public view returns (bytes32 blockHash) {
72
+ blockHash = blockhash(block.number - 1);
73
+ }
74
+
75
+ function tryAggregate(bool requireSuccess, Call[] memory calls)
76
+ public
77
+ returns (Result[] memory returnData)
78
+ {
79
+ returnData = new Result[](calls.length);
80
+ for (uint256 i = 0; i < calls.length; i++) {
81
+ (bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
82
+
83
+ if (requireSuccess) {
84
+ require(success, "Multicall2 aggregate: call failed");
85
+ }
86
+
87
+ returnData[i] = Result(success, ret);
88
+ }
89
+ }
90
+
91
+ function tryBlockAndAggregate(bool requireSuccess, Call[] memory calls)
92
+ public
93
+ returns (
94
+ uint256 blockNumber,
95
+ bytes32 blockHash,
96
+ Result[] memory returnData
97
+ )
98
+ {
99
+ blockNumber = block.number;
100
+ blockHash = blockhash(block.number);
101
+ returnData = tryAggregate(requireSuccess, calls);
102
+ }
103
+ }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity 0.8.17;
3
+
4
+ /// @title PendleMulticall - A more gas-efficient version of Multicall3 (~700 gas saved for each call)
5
+ /// @author UncleGrandpa925 <longvh@pendle.finance>
6
+ contract PendleMulticall {
7
+ error MulticallFailed(uint256 index);
8
+
9
+ struct Call {
10
+ address target;
11
+ bytes callData;
12
+ }
13
+
14
+ function aggregate(Call[] calldata calls) external payable {
15
+ uint256 length = calls.length;
16
+ Call calldata call;
17
+ for (uint256 i = 0; i < length; ) {
18
+ call = calls[i];
19
+ (bool success, ) = call.target.call(call.callData);
20
+ if (!success) revert MulticallFailed(i);
21
+ unchecked {
22
+ ++i;
23
+ }
24
+ }
25
+ }
26
+ }