@pendle/core-v2 1.4.0-mainnet → 1.4.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 (765) 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/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.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 +3 -3
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  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/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +39 -0
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  33. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  40. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  42. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  44. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  49. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.dbg.json +4 -0
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.json +1192 -0
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +2 -2
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +2 -2
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +4 -0
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.json +50 -0
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +4 -0
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +974 -0
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  100. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  103. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  105. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  107. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
  108. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
  109. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
  110. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
  111. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
  112. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
  113. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
  114. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
  115. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  117. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  119. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  121. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  122. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
  123. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  125. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  128. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  129. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +50 -2
  130. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  131. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  132. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  133. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
  134. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  135. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  136. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  137. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  138. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
  139. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
  156. package/build/artifacts/contracts/interfaces/{IAToken.sol/IAToken.json → GMX/IGMXVault.sol/IGMXVault.json} +130 -74
  157. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
  158. package/build/artifacts/contracts/interfaces/{IREDACTEDStaking.sol/IREDACTEDStaking.json → GMX/IGlpManager.sol/IGlpManager.json} +24 -47
  159. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
  160. package/build/artifacts/contracts/interfaces/{IWAvax.sol/IWAvax.json → GMX/IRewardRouterV2.sol/IRewardRouterV2.json} +86 -137
  161. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
  162. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
  163. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +4 -0
  164. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.json +48 -0
  165. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
  169. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
  170. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
  171. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
  172. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  173. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.json +19 -0
  174. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  175. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
  180. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +4 -0
  181. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.json +307 -0
  182. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +4 -0
  183. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +269 -0
  184. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +4 -0
  185. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +1260 -0
  186. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  187. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
  188. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +4 -0
  189. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json +273 -0
  190. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  191. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
  192. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +4 -0
  193. package/build/artifacts/contracts/interfaces/{IPActionSwapPTYT.sol/IPActionSwapPTYT.json → IPActionStorageStatic.sol/IPActionStorageStatic.json} +70 -76
  194. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  195. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
  196. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  197. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
  198. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +4 -0
  199. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.json +40 -0
  200. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  201. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
  202. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  204. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  206. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  207. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  208. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  209. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  210. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
  211. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
  212. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  215. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +4 -0
  216. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.json +55 -0
  217. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  221. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +4 -0
  222. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2322 -0
  223. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +39 -0
  226. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  227. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  229. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
  230. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
  231. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  239. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  241. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  242. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +4 -0
  243. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +143 -0
  244. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  245. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  246. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +4 -0
  247. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +256 -0
  248. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  249. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  250. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  251. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
  252. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +1 -1
  253. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +4 -0
  254. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +30 -0
  255. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +4 -0
  256. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +307 -0
  257. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +4 -0
  258. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +333 -0
  259. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +4 -0
  260. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +1397 -0
  261. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +4 -0
  262. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +310 -0
  263. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +4 -0
  264. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +228 -0
  265. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +4 -0
  266. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +93 -0
  267. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +4 -0
  268. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.json +10 -0
  269. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  270. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
  271. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  272. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
  273. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  274. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
  275. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  276. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
  277. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  278. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +342 -44
  279. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  280. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
  281. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
  282. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
  283. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  284. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
  285. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  286. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  287. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  288. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  289. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  290. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  291. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  292. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  293. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  294. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
  295. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
  296. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +4 -0
  297. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +76 -0
  298. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +4 -0
  299. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +76 -0
  300. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  301. package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
  302. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +4 -0
  303. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json +388 -0
  304. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +4 -0
  305. package/build/artifacts/contracts/router/{kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json → swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json} +13 -8
  306. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +4 -0
  307. package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IHashflow.sol/IHashflow.json +1 -1
  308. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  309. package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
  310. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +4 -0
  311. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json +10 -0
  312. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +4 -0
  313. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +10 -0
  314. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  315. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  316. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  317. package/build/artifacts/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/ethereum}/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +30 -1
  318. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +4 -0
  319. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.json +101 -0
  320. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  321. package/build/artifacts/contracts/router/{kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json → swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json} +82 -50
  322. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +4 -0
  323. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json +10 -0
  324. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +4 -0
  325. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +10 -0
  326. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +4 -5
  327. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +3 -6
  328. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +7 -10
  329. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +8 -10
  330. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +18 -8
  331. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -5
  332. package/contracts/LiquidityMining/README.md +49 -46
  333. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +9 -14
  334. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +4 -10
  335. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +23 -36
  336. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +18 -24
  337. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +3 -4
  338. package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +20 -26
  339. package/contracts/core/BulkSeller/BulkSeller.sol +1 -5
  340. package/contracts/core/BulkSeller/BulkSellerFactory.sol +4 -5
  341. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +20 -25
  342. package/contracts/core/Market/MarketMathCore.sol +23 -69
  343. package/contracts/core/Market/OracleLib.sol +4 -4
  344. package/contracts/core/Market/PendleGauge.sol +7 -20
  345. package/contracts/core/Market/PendleMarket.sol +5 -15
  346. package/contracts/core/Market/PendleMarketFactory.sol +3 -9
  347. package/contracts/core/RewardManager/RewardManager.sol +5 -7
  348. package/contracts/core/RewardManager/RewardManagerAbstract.sol +4 -4
  349. package/contracts/core/StandardizedYield/PYIndex.sol +7 -36
  350. package/contracts/core/StandardizedYield/SYBase.sol +20 -26
  351. package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +7 -19
  352. package/contracts/core/StandardizedYield/SYUtils.sol +4 -5
  353. package/contracts/core/StandardizedYield/StEthHelper.sol +12 -16
  354. package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +14 -24
  355. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol +127 -0
  356. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +12 -20
  357. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +12 -20
  358. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +1 -5
  359. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +28 -44
  360. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +28 -47
  361. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +6 -10
  362. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +6 -10
  363. package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol +13 -22
  364. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +20 -27
  365. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +20 -27
  366. package/contracts/core/StandardizedYield/implementations/Convex/README.md +4 -4
  367. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +32 -40
  368. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +10 -12
  369. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +14 -18
  370. package/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol +32 -48
  371. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +141 -0
  372. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +214 -0
  373. package/contracts/core/StandardizedYield/implementations/GLP/README.md +63 -0
  374. package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +112 -0
  375. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +13 -23
  376. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +13 -23
  377. package/contracts/core/YieldContracts/PendleYieldToken.sol +28 -44
  378. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
  379. package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
  380. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
  381. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +471 -0
  382. package/contracts/core/erc20/PendleERC20.sol +14 -44
  383. package/contracts/core/libraries/ArrayLib.sol +20 -9
  384. package/contracts/core/libraries/BaseSplitCodeFactory.sol +5 -7
  385. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -5
  386. package/contracts/core/libraries/Errors.sol +5 -2
  387. package/contracts/core/libraries/StringLib.sol +14 -20
  388. package/contracts/core/libraries/TokenHelper.sol +11 -26
  389. package/contracts/core/libraries/math/LogExpMath.sol +2 -2
  390. package/contracts/core/libraries/math/Math.sol +3 -15
  391. package/contracts/interfaces/Balancer/IComposableStable.sol +4 -14
  392. package/contracts/interfaces/Balancer/IMetaStablePool.sol +4 -13
  393. package/contracts/interfaces/Balancer/IVault.sol +4 -6
  394. package/contracts/interfaces/ConvexCurve/IBooster.sol +4 -16
  395. package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -5
  396. package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -4
  397. package/contracts/interfaces/Curve/ICrvPool.sol +12 -11
  398. package/contracts/interfaces/Curve/ITriCrvPool.sol +4 -4
  399. package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
  400. package/contracts/interfaces/GMX/IGlpManager.sol +12 -0
  401. package/contracts/interfaces/GMX/IRewardRouterV2.sol +43 -0
  402. package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
  403. package/contracts/interfaces/IAddressProvider.sol +7 -0
  404. package/contracts/interfaces/IApeStaking.sol +3 -4
  405. package/contracts/interfaces/IDiamondCut.sol +36 -0
  406. package/contracts/interfaces/IDiamondLoupe.sol +40 -0
  407. package/contracts/interfaces/IERC4626.sol +3 -5
  408. package/contracts/interfaces/IPActionAddRemoveLiq.sol +38 -16
  409. package/contracts/interfaces/IPActionInfoStatic.sol +43 -0
  410. package/contracts/interfaces/IPActionMarketAuxStatic.sol +34 -0
  411. package/contracts/interfaces/IPActionMarketCoreStatic.sol +335 -0
  412. package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
  413. package/contracts/interfaces/IPActionMintRedeemStatic.sol +55 -0
  414. package/contracts/interfaces/IPActionMisc.sol +18 -4
  415. package/contracts/interfaces/IPActionStorageStatic.sol +24 -0
  416. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  417. package/contracts/interfaces/IPActionSwapYT.sol +28 -4
  418. package/contracts/interfaces/IPActionVePendleStatic.sol +9 -0
  419. package/contracts/interfaces/IPAllAction.sol +5 -3
  420. package/contracts/interfaces/IPBulkSellerSYCallback.sol +1 -5
  421. package/contracts/interfaces/IPFeeDistributor.sol +4 -3
  422. package/contracts/interfaces/IPGaugeController.sol +3 -9
  423. package/contracts/interfaces/IPInterestManagerYT.sol +3 -4
  424. package/contracts/interfaces/IPInterestManagerYTV2.sol +11 -0
  425. package/contracts/interfaces/IPLiquidityMigrator.sol +130 -0
  426. package/contracts/interfaces/IPMarket.sol +5 -16
  427. package/contracts/interfaces/IPMarketFactory.sol +3 -8
  428. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -5
  429. package/contracts/interfaces/IPMiniDiamond.sol +12 -0
  430. package/contracts/interfaces/IPMsgReceiverApp.sol +1 -1
  431. package/contracts/interfaces/IPRouterStatic.sol +19 -0
  432. package/contracts/interfaces/IPVotingController.sol +11 -6
  433. package/contracts/interfaces/IPVotingEscrowMainchain.sol +8 -7
  434. package/contracts/interfaces/IPYieldToken.sol +4 -3
  435. package/contracts/interfaces/IPYieldTokenV2.sol +67 -0
  436. package/contracts/interfaces/IRewardManager.sol +4 -4
  437. package/contracts/interfaces/IStETH.sol +4 -3
  438. package/contracts/interfaces/IStandardizedYield.sol +10 -14
  439. package/contracts/interfaces/IStargateRouter.sol +1 -5
  440. package/contracts/offchain-helpers/AddressProvider.sol +16 -0
  441. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -1
  442. package/contracts/offchain-helpers/Broadcaster.sol +48 -0
  443. package/contracts/offchain-helpers/BulkSellerOffchain.sol +7 -11
  444. package/contracts/offchain-helpers/Multicall2.sol +14 -24
  445. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +19 -0
  446. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +122 -0
  447. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +165 -0
  448. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +780 -0
  449. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +158 -0
  450. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +76 -0
  451. package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +55 -0
  452. package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +21 -0
  453. package/contracts/router/ActionAddRemoveLiq.sol +118 -24
  454. package/contracts/router/ActionMintRedeem.sol +12 -202
  455. package/contracts/router/ActionMisc.sol +45 -19
  456. package/contracts/router/ActionSwapPT.sol +0 -5
  457. package/contracts/router/ActionSwapYT.sol +109 -13
  458. package/contracts/router/PendleRouter.sol +211 -72
  459. package/contracts/router/PendleRouterHelper.sol +315 -0
  460. package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +49 -49
  461. package/contracts/router/base/ActionBaseMintRedeem.sol +108 -64
  462. package/contracts/router/base/CallbackHelper.sol +136 -54
  463. package/contracts/router/base/MarketApproxLib.sol +243 -430
  464. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +39 -0
  465. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +68 -0
  466. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +21 -0
  467. package/contracts/router/swap-aggregator/PendleSwapArbitrum.sol +45 -0
  468. package/contracts/router/swap-aggregator/PendleSwapEthereum.sol +44 -0
  469. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol +17 -0
  470. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol +195 -0
  471. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol +10 -0
  472. package/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol +41 -0
  473. package/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol +200 -0
  474. package/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol +135 -0
  475. package/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol +17 -0
  476. package/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/ethereum}/IExecutorHelperEthereum1.sol +6 -0
  477. package/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol +30 -0
  478. package/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/ethereum}/IMetaAggregationRouterV2.sol +3 -4
  479. package/contracts/router/{kyberswap/AggregationRouterHelper.sol → swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol} +21 -137
  480. package/contracts/router/{kyberswap/ScaleDataHelperEthereum1.sol → swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol} +15 -2
  481. package/deployments/43113-core.json +31 -0
  482. package/deployments/43113-markets/APE-30-MARCH.json +10 -0
  483. package/deployments/43113-markets/USDC-FEB-2ND-2024.json +10 -0
  484. package/deployments/43113-markets/USDC-FEB-2ND.json +10 -0
  485. package/deployments/43113-markets/USDC-FEB-4TH.json +10 -0
  486. package/deployments/43113-markets/USDC-MAR-28TH.json +10 -0
  487. package/deployments/43113-markets/WETH-FEB-2ND.json +11 -0
  488. package/deployments/43113-markets/WETH-FEB-4TH.json +11 -0
  489. package/deployments/43113-offchain-helper.json +4 -0
  490. package/deployments/43113-testenv.json +22 -0
  491. package/deployments/80001-core.json +30 -0
  492. package/deployments/80001-markets/GLP-DEC-8TH.json +10 -0
  493. package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
  494. package/deployments/80001-markets/USDC-FEB-4TH.json +10 -0
  495. package/deployments/80001-markets/WETH-FEB-4TH.json +11 -0
  496. package/deployments/80001-offchain-helper.json +4 -0
  497. package/deployments/80001-testenv.json +22 -0
  498. package/package.json +10 -10
  499. package/typechain-types/ActionAddRemoveLiq.ts +203 -23
  500. package/typechain-types/ActionBaseCallback.ts +115 -0
  501. package/typechain-types/ActionInfoStatic.ts +310 -0
  502. package/typechain-types/ActionMarketAuxStatic.ts +350 -0
  503. package/typechain-types/ActionMarketCoreStatic.ts +1485 -0
  504. package/typechain-types/ActionMintRedeem.ts +29 -230
  505. package/typechain-types/ActionMintRedeemStatic.ts +461 -0
  506. package/typechain-types/ActionMisc.ts +77 -27
  507. package/typechain-types/ActionStorageStatic.ts +405 -0
  508. package/typechain-types/ActionSwapPT.ts +26 -31
  509. package/typechain-types/ActionSwapYT.ts +202 -21
  510. package/typechain-types/ActionVePendleStatic.ts +113 -0
  511. package/typechain-types/AddressProvider.ts +280 -0
  512. package/typechain-types/Broadcaster.ts +454 -0
  513. package/typechain-types/GLPPreviewHelper.ts +121 -0
  514. package/typechain-types/GMXPreviewHelper.ts +40 -0
  515. package/typechain-types/IAddressProvider.ts +123 -0
  516. package/typechain-types/IChainlinkAggregator.ts +246 -0
  517. package/typechain-types/IDiamondCut.ts +152 -0
  518. package/typechain-types/IDiamondLoupe.ts +190 -0
  519. package/typechain-types/IERC4626.ts +34 -0
  520. package/typechain-types/IExecutorHelper1.ts +643 -0
  521. package/typechain-types/IExecutorHelper2.ts +115 -0
  522. package/typechain-types/IExecutorHelperEthereum1.ts +44 -0
  523. package/typechain-types/IGlpManager.ts +50 -0
  524. package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
  525. package/typechain-types/IPActionInfoStatic.ts +310 -0
  526. package/typechain-types/IPActionMarketAuxStatic.ts +350 -0
  527. package/typechain-types/IPActionMarketCoreStatic.ts +1485 -0
  528. package/typechain-types/IPActionMintRedeem.ts +29 -211
  529. package/typechain-types/IPActionMintRedeemStatic.ts +461 -0
  530. package/typechain-types/IPActionMisc.ts +77 -27
  531. package/typechain-types/IPActionStorageStatic.ts +328 -0
  532. package/typechain-types/IPActionSwapPT.ts +26 -12
  533. package/typechain-types/IPActionSwapYT.ts +168 -12
  534. package/typechain-types/IPActionVePendleStatic.ts +113 -0
  535. package/typechain-types/IPAllAction.ts +445 -227
  536. package/typechain-types/IPInterestManagerYTV2.ts +117 -0
  537. package/typechain-types/IPLiquidityMigrator.ts +565 -0
  538. package/typechain-types/IPMiniDiamond.ts +147 -0
  539. package/typechain-types/IPMsgReceiverApp.ts +5 -5
  540. package/typechain-types/IPRouterStatic.ts +2392 -509
  541. package/typechain-types/IPSwapAggregator.ts +126 -0
  542. package/typechain-types/IPVotingController.ts +96 -0
  543. package/typechain-types/IPYieldTokenV2.ts +9 -23
  544. package/typechain-types/IRewardRouterV2.ts +60 -17
  545. package/typechain-types/IStargateLP.ts +306 -0
  546. package/typechain-types/IStargateStaking.ts +232 -0
  547. package/typechain-types/InputScalingHelper.ts +108 -0
  548. package/typechain-types/InterestManagerYTV2.ts +36 -3
  549. package/typechain-types/PendleAuraWethAnkrethSY.ts +1523 -0
  550. package/typechain-types/PendleGDaiSY.ts +1229 -0
  551. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +4 -4
  552. package/typechain-types/PendleGlpSY.ts +67 -0
  553. package/typechain-types/PendleMsgReceiverAppUpg.ts +5 -5
  554. package/typechain-types/PendlePtOracleBase.ts +139 -0
  555. package/typechain-types/PendleRouter.ts +109 -131
  556. package/typechain-types/PendleRouterHelper.ts +647 -0
  557. package/typechain-types/PendleRouterStatic.ts +57 -0
  558. package/typechain-types/PendleStargateLP.ts +1442 -0
  559. package/typechain-types/PendleSwapAggregator.ts +126 -0
  560. package/typechain-types/PendleSwapArbitrum.ts +126 -0
  561. package/typechain-types/PendleSwapEthereum.ts +126 -0
  562. package/typechain-types/PendleYieldTokenV2.ts +70 -76
  563. package/typechain-types/PtFraxUsdcOracle.ts +176 -0
  564. package/typechain-types/PtStETHOracle.ts +163 -0
  565. package/typechain-types/RouterStatic.ts +92 -0
  566. package/typechain-types/VotingControllerStorageUpg.ts +96 -0
  567. package/typechain-types/VotingEscrowPendleSidechain.ts +4 -5
  568. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
  569. package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
  570. package/typechain-types/factories/ActionInfoStatic__factory.ts +360 -0
  571. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +390 -0
  572. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1454 -0
  573. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +367 -0
  574. package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
  575. package/typechain-types/factories/ActionMisc__factory.ts +56 -17
  576. package/typechain-types/factories/ActionStorageStatic__factory.ts +281 -0
  577. package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
  578. package/typechain-types/factories/ActionSwapYT__factory.ts +356 -48
  579. package/typechain-types/factories/ActionVePendleStatic__factory.ts +155 -0
  580. package/typechain-types/factories/AddressProvider__factory.ts +196 -0
  581. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  582. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  583. package/typechain-types/factories/Broadcaster__factory.ts +311 -0
  584. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  585. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  586. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  587. package/typechain-types/factories/Errors__factory.ts +49 -1
  588. package/typechain-types/factories/GLPPreviewHelper__factory.ts +65 -0
  589. package/typechain-types/factories/GMXPreviewHelper__factory.ts +26 -0
  590. package/typechain-types/factories/IAddressProvider__factory.ts +63 -0
  591. package/typechain-types/factories/IChainlinkAggregator__factory.ts +170 -0
  592. package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
  593. package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
  594. package/typechain-types/factories/IERC4626__factory.ts +19 -0
  595. package/typechain-types/factories/IExecutorHelper1__factory.ts +403 -0
  596. package/typechain-types/factories/IExecutorHelper2__factory.ts +55 -0
  597. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +29 -0
  598. package/typechain-types/factories/IGlpManager__factory.ts +26 -0
  599. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
  600. package/typechain-types/factories/IPActionInfoStatic__factory.ts +322 -0
  601. package/typechain-types/factories/IPActionMarketAuxStatic__factory.ts +288 -0
  602. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +1279 -0
  603. package/typechain-types/factories/IPActionMintRedeemStatic__factory.ts +292 -0
  604. package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
  605. package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
  606. package/typechain-types/factories/IPActionStorageStatic__factory.ts +203 -0
  607. package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
  608. package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
  609. package/typechain-types/factories/IPActionVePendleStatic__factory.ts +59 -0
  610. package/typechain-types/factories/IPAllAction__factory.ts +675 -241
  611. package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
  612. package/typechain-types/factories/IPLiquidityMigrator__factory.ts +677 -0
  613. package/typechain-types/factories/IPMiniDiamond__factory.ts +67 -0
  614. package/typechain-types/factories/IPMsgReceiverApp__factory.ts +1 -1
  615. package/typechain-types/factories/IPRouterStatic__factory.ts +1942 -494
  616. package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
  617. package/typechain-types/factories/IPVotingController__factory.ts +39 -0
  618. package/typechain-types/factories/IPYieldTokenV2__factory.ts +6 -14
  619. package/typechain-types/factories/IRewardRouterV2__factory.ts +43 -7
  620. package/typechain-types/factories/IStargateLP__factory.ts +212 -0
  621. package/typechain-types/factories/IStargateStaking__factory.ts +145 -0
  622. package/typechain-types/factories/InputScalingHelper__factory.ts +88 -0
  623. package/typechain-types/factories/InterestManagerYTV2__factory.ts +18 -0
  624. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
  625. package/typechain-types/factories/MetaStableMath__factory.ts +1 -1
  626. package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
  627. package/typechain-types/factories/Multicall2__factory.ts +1 -1
  628. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  629. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -1
  630. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -1
  631. package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1265 -0
  632. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  633. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  634. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  635. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  636. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  637. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  638. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  639. package/typechain-types/factories/PendleGDaiSY__factory.ts +1035 -0
  640. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  641. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +2 -2
  642. package/typechain-types/factories/PendleGlpSY__factory.ts +34 -1
  643. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  644. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  645. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  646. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  647. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +1 -1
  648. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  649. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  650. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  651. package/typechain-types/factories/PendlePtOracleBase__factory.ts +78 -0
  652. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  653. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  654. package/typechain-types/factories/PendleRouterHelper__factory.ts +841 -0
  655. package/typechain-types/factories/PendleRouterStatic__factory.ts +88 -0
  656. package/typechain-types/factories/PendleRouter__factory.ts +75 -74
  657. package/typechain-types/factories/PendleStargateLP__factory.ts +1241 -0
  658. package/typechain-types/factories/PendleSwapAggregator__factory.ts +129 -0
  659. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +129 -0
  660. package/typechain-types/factories/PendleSwapEthereum__factory.ts +129 -0
  661. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  662. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  663. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  664. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  665. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +35 -48
  666. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  667. package/typechain-types/factories/PtFraxUsdcOracle__factory.ts +226 -0
  668. package/typechain-types/factories/PtStETHOracle__factory.ts +201 -0
  669. package/typechain-types/factories/RouterStatic__factory.ts +69 -1
  670. package/typechain-types/factories/SAPE__factory.ts +1 -1
  671. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +39 -0
  672. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  673. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -2
  674. package/typechain-types/hardhat.d.ts +320 -203
  675. package/typechain-types/index.ts +80 -60
  676. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +0 -4
  677. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +0 -1257
  678. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +0 -4
  679. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +0 -1244
  680. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +0 -4
  681. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +0 -10
  682. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +0 -4
  683. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +0 -133
  684. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +0 -4
  685. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +0 -4
  686. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.json +0 -87
  687. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +0 -4
  688. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.json +0 -59
  689. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +0 -4
  690. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.json +0 -34
  691. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +0 -4
  692. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +0 -162
  693. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +0 -4
  694. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +0 -87
  695. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
  696. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +0 -4
  697. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.json +0 -24
  698. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +0 -4
  699. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.json +0 -24
  700. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +0 -4
  701. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +0 -4
  702. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +0 -199
  703. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +0 -4
  704. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +0 -168
  705. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +0 -4
  706. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +0 -4
  707. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +0 -132
  708. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +0 -4
  709. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +0 -148
  710. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
  711. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +0 -285
  712. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +0 -4
  713. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +0 -2741
  714. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  715. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
  716. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  717. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
  718. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  719. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  720. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  721. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  722. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +0 -24
  723. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
  724. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +0 -10
  725. package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  726. package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
  727. package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
  728. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +0 -4
  729. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  730. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol +0 -170
  731. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol +0 -162
  732. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +0 -289
  733. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +0 -618
  734. package/contracts/interfaces/IAToken.sol +0 -44
  735. package/contracts/interfaces/IAavePool.sol +0 -41
  736. package/contracts/interfaces/IAaveRewardsController.sol +0 -32
  737. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +0 -10
  738. package/contracts/interfaces/IEulerEToken.sol +0 -60
  739. package/contracts/interfaces/IEulerMarkets.sol +0 -46
  740. package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
  741. package/contracts/interfaces/IPGovernanceManager.sol +0 -28
  742. package/contracts/interfaces/IPPermissionsV2Upg.sol +0 -28
  743. package/contracts/interfaces/IREDACTEDStaking.sol +0 -35
  744. package/contracts/interfaces/ISAvax.sol +0 -61
  745. package/contracts/interfaces/ISJoe.sol +0 -57
  746. package/contracts/interfaces/IWAvax.sol +0 -34
  747. package/contracts/interfaces/IWXBTRFLY.sol +0 -39
  748. package/contracts/interfaces/IYearnVault.sol +0 -46
  749. package/contracts/offchain-helpers/MarketMathStatic.sol +0 -557
  750. package/contracts/offchain-helpers/RouterStatic.sol +0 -903
  751. package/contracts/router/ActionSwapPTYT.sol +0 -108
  752. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  753. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
  754. package/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol +0 -17
  755. package/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol +0 -33
  756. package/deployments/1-core.json +0 -30
  757. package/deployments/1-markets/APE-JUNE-29.json +0 -8
  758. package/deployments/1-markets/BALANCER-LP-AURA-RETH-WETH-28DEC.json +0 -11
  759. package/deployments/1-markets/BALANCER-LP-AURA-WSTETH-WETH-JUN272024.json +0 -10
  760. package/deployments/1-markets/FRAXUSDC-CURVELP-MARCH30.json +0 -11
  761. package/deployments/1-markets/LOOKS-STAKING-MARCH30.json +0 -10
  762. package/deployments/1-markets/STETH-JUNE29.json +0 -10
  763. package/deployments/1-markets/STETH-MARCH30.json +0 -10
  764. package/deployments/1-offchain-helper.json +0 -4
  765. /package/contracts/router/{kyberswap/interfaces → swap-aggregator/kyberswap/arbitrum}/IHashflow.sol +0 -0
@@ -35,23 +35,6 @@ library MarketApproxPtInLib {
35
35
  using Math for int256;
36
36
  using LogExpMath for int256;
37
37
 
38
- struct ApproxParamsPtIn {
39
- uint256 guessMin;
40
- uint256 guessMax;
41
- uint256 guessOffchain;
42
- uint256 maxIteration;
43
- uint256 eps;
44
- //
45
- uint256 biggestGoodGuess;
46
- }
47
-
48
- struct Args1 {
49
- MarketState market;
50
- PYIndex index;
51
- uint256 minSyOut;
52
- uint256 blockTime;
53
- }
54
-
55
38
  /**
56
39
  * @dev algorithm:
57
40
  - Bin search the amount of PT to swap in
@@ -60,53 +43,34 @@ library MarketApproxPtInLib {
60
43
  - guess & approx is for netPtIn
61
44
  */
62
45
  function approxSwapPtForExactSy(
63
- MarketState memory _market,
64
- PYIndex _index,
65
- uint256 _minSyOut,
66
- uint256 _blockTime,
67
- ApproxParams memory _approx
68
- )
69
- internal
70
- pure
71
- returns (
72
- uint256, /*netPtIn*/
73
- uint256, /*netSyOut*/
74
- uint256 /*netSyFee*/
75
- )
76
- {
77
- Args1 memory a = Args1(_market, _index, _minSyOut, _blockTime);
78
- MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
79
- ApproxParamsPtIn memory p = newApproxParamsPtIn(_approx, 0, calcMaxPtIn(comp.totalAsset));
80
-
81
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
82
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
83
- if (!isGoodSlope) {
84
- p.guessMax = guess;
85
- continue;
86
- }
46
+ MarketState memory market,
47
+ PYIndex index,
48
+ uint256 minSyOut,
49
+ uint256 blockTime,
50
+ ApproxParams memory approx
51
+ ) internal pure returns (uint256 /*netPtIn*/, uint256 /*netSyOut*/, uint256 /*netSyFee*/) {
52
+ MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
53
+ if (approx.guessOffchain == 0) {
54
+ // no limit on min
55
+ approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
56
+ validateApprox(approx);
57
+ }
87
58
 
88
- (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(a.market, comp, a.index, guess);
59
+ for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
60
+ uint256 guess = nextGuess(approx, iter);
61
+ (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
89
62
 
90
- if (netSyOut >= a.minSyOut) {
91
- p.guessMax = guess;
92
- bool isAnswerAccepted = Math.isAGreaterApproxB(netSyOut, a.minSyOut, p.eps);
93
- if (isAnswerAccepted) {
63
+ if (netSyOut >= minSyOut) {
64
+ if (Math.isAGreaterApproxB(netSyOut, minSyOut, approx.eps))
94
65
  return (guess, netSyOut, netSyFee);
95
- }
66
+ approx.guessMax = guess;
96
67
  } else {
97
- p.guessMin = guess;
68
+ approx.guessMin = guess;
98
69
  }
99
70
  }
100
71
  revert Errors.ApproxFail();
101
72
  }
102
73
 
103
- struct Args2 {
104
- MarketState market;
105
- PYIndex index;
106
- uint256 exactSyIn;
107
- uint256 blockTime;
108
- }
109
-
110
74
  /**
111
75
  * @dev algorithm:
112
76
  - Bin search the amount of PT to swap in
@@ -117,61 +81,42 @@ library MarketApproxPtInLib {
117
81
  - guess & approx is for netYtOut (also netPtIn)
118
82
  */
119
83
  function approxSwapExactSyForYt(
120
- MarketState memory _market,
121
- PYIndex _index,
122
- uint256 _exactSyIn,
123
- uint256 _blockTime,
124
- ApproxParams memory _approx
125
- )
126
- internal
127
- pure
128
- returns (
129
- uint256, /*netYtOut*/
130
- uint256 /*netSyFee*/
131
- )
132
- {
133
- Args2 memory a = Args2(_market, _index, _exactSyIn, _blockTime);
134
- MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
84
+ MarketState memory market,
85
+ PYIndex index,
86
+ uint256 exactSyIn,
87
+ uint256 blockTime,
88
+ ApproxParams memory approx
89
+ ) internal pure returns (uint256 /*netYtOut*/, uint256 /*netSyFee*/) {
90
+ MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
91
+ if (approx.guessOffchain == 0) {
92
+ approx.guessMin = Math.max(approx.guessMin, index.syToAsset(exactSyIn));
93
+ approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
94
+ validateApprox(approx);
95
+ }
135
96
 
136
97
  // at minimum we will flashswap exactSyIn since we have enough SY to payback the PT loan
137
- ApproxParamsPtIn memory p = newApproxParamsPtIn(
138
- _approx,
139
- a.index.syToAsset(a.exactSyIn),
140
- calcMaxPtIn(comp.totalAsset)
141
- );
142
98
 
143
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
144
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
145
- if (!isGoodSlope) {
146
- p.guessMax = guess;
147
- continue;
148
- }
99
+ for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
100
+ uint256 guess = nextGuess(approx, iter);
149
101
 
150
- (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(a.market, comp, a.index, guess);
102
+ (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
151
103
 
152
- uint256 netSyToTokenizePt = a.index.assetToSyUp(guess);
104
+ uint256 netSyToTokenizePt = index.assetToSyUp(guess);
153
105
 
154
106
  // for sure netSyToTokenizePt >= netSyOut since we are swapping PT to SY
155
107
  uint256 netSyToPull = netSyToTokenizePt - netSyOut;
156
108
 
157
- if (netSyToPull <= a.exactSyIn) {
158
- p.guessMin = guess;
159
- bool isAnswerAccepted = Math.isASmallerApproxB(netSyToPull, a.exactSyIn, p.eps);
160
- if (isAnswerAccepted) return (guess, netSyFee);
109
+ if (netSyToPull <= exactSyIn) {
110
+ if (Math.isASmallerApproxB(netSyToPull, exactSyIn, approx.eps))
111
+ return (guess, netSyFee);
112
+ approx.guessMin = guess;
161
113
  } else {
162
- p.guessMax = guess - 1;
114
+ approx.guessMax = guess - 1;
163
115
  }
164
116
  }
165
117
  revert Errors.ApproxFail();
166
118
  }
167
119
 
168
- struct Args6 {
169
- MarketState market;
170
- PYIndex index;
171
- uint256 totalPtIn;
172
- uint256 blockTime;
173
- }
174
-
175
120
  /**
176
121
  * @dev algorithm:
177
122
  - Bin search the amount of PT to swap to SY
@@ -181,77 +126,81 @@ library MarketApproxPtInLib {
181
126
  - guess & approx is for netPtSwap
182
127
  */
183
128
  function approxSwapPtToAddLiquidity(
184
- MarketState memory _market,
185
- PYIndex _index,
186
- uint256 _totalPtIn,
187
- uint256 _blockTime,
188
- ApproxParams memory _approx
129
+ MarketState memory market,
130
+ PYIndex index,
131
+ uint256 totalPtIn,
132
+ uint256 blockTime,
133
+ ApproxParams memory approx
189
134
  )
190
135
  internal
191
136
  pure
192
- returns (
193
- uint256, /*netPtSwap*/
194
- uint256, /*netSyFromSwap*/
195
- uint256 /*netSyFee*/
196
- )
137
+ returns (uint256 /*netPtSwap*/, uint256 /*netSyFromSwap*/, uint256 /*netSyFee*/)
197
138
  {
198
- Args6 memory a = Args6(_market, _index, _totalPtIn, _blockTime);
199
- require(a.market.totalLp != 0, "no existing lp");
200
-
201
- MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
202
- ApproxParamsPtIn memory p = newApproxParamsPtIn(
203
- _approx,
204
- 0,
205
- Math.min(a.totalPtIn, calcMaxPtIn(comp.totalAsset))
206
- );
207
-
208
- p.guessMax = Math.min(p.guessMax, a.totalPtIn);
209
-
210
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
211
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
212
-
213
- if (!isGoodSlope) {
214
- p.guessMax = guess;
215
- continue;
216
- }
217
-
218
- (uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve) = calcSyOut(
219
- a.market,
220
- comp,
221
- a.index,
222
- guess
223
- );
139
+ MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
140
+ if (approx.guessOffchain == 0) {
141
+ // no limit on min
142
+ approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
143
+ approx.guessMax = Math.min(approx.guessMax, totalPtIn);
144
+ validateApprox(approx);
145
+ require(market.totalLp != 0, "no existing lp");
146
+ }
224
147
 
225
- uint256 syNumerator;
226
- uint256 ptNumerator;
227
- {
228
- uint256 newTotalPt = a.market.totalPt.Uint() + guess;
229
- uint256 newTotalSy = (a.market.totalSy.Uint() - netSyOut - netSyToReserve);
148
+ for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
149
+ uint256 guess = nextGuess(approx, iter);
230
150
 
231
- // it is desired that
232
- // netSyOut / newTotalSy = netPtRemaining / newTotalPt
233
- // which is equivalent to
234
- // netSyOut * newTotalPt = netPtRemaining * newTotalSy
151
+ (
152
+ uint256 syNumerator,
153
+ uint256 ptNumerator,
154
+ uint256 netSyOut,
155
+ uint256 netSyFee,
235
156
 
236
- syNumerator = netSyOut * newTotalPt;
237
- ptNumerator = (a.totalPtIn - guess) * newTotalSy;
238
- }
157
+ ) = calcNumerators(market, index, totalPtIn, comp, guess);
239
158
 
240
- if (Math.isAApproxB(syNumerator, ptNumerator, p.eps)) {
159
+ if (Math.isAApproxB(syNumerator, ptNumerator, approx.eps))
241
160
  return (guess, netSyOut, netSyFee);
242
- }
243
161
 
244
162
  if (syNumerator <= ptNumerator) {
245
163
  // needs more SY --> swap more PT
246
- p.guessMin = guess + 1;
164
+ approx.guessMin = guess + 1;
247
165
  } else {
248
166
  // needs less SY --> swap less PT
249
- p.guessMax = guess - 1;
167
+ approx.guessMax = guess - 1;
250
168
  }
251
169
  }
252
170
  revert Errors.ApproxFail();
253
171
  }
254
172
 
173
+ function calcNumerators(
174
+ MarketState memory market,
175
+ PYIndex index,
176
+ uint256 totalPtIn,
177
+ MarketPreCompute memory comp,
178
+ uint256 guess
179
+ )
180
+ internal
181
+ pure
182
+ returns (
183
+ uint256 syNumerator,
184
+ uint256 ptNumerator,
185
+ uint256 netSyOut,
186
+ uint256 netSyFee,
187
+ uint256 netSyToReserve
188
+ )
189
+ {
190
+ (netSyOut, netSyFee, netSyToReserve) = calcSyOut(market, comp, index, guess);
191
+
192
+ uint256 newTotalPt = uint256(market.totalPt) + guess;
193
+ uint256 newTotalSy = (uint256(market.totalSy) - netSyOut - netSyToReserve);
194
+
195
+ // it is desired that
196
+ // netSyOut / newTotalSy = netPtRemaining / newTotalPt
197
+ // which is equivalent to
198
+ // netSyOut * newTotalPt = netPtRemaining * newTotalSy
199
+
200
+ syNumerator = netSyOut * newTotalPt;
201
+ ptNumerator = (totalPtIn - guess) * newTotalSy;
202
+ }
203
+
255
204
  struct Args7 {
256
205
  MarketState market;
257
206
  PYIndex index;
@@ -269,51 +218,39 @@ library MarketApproxPtInLib {
269
218
  - guess & approx is for totalPtToSwap
270
219
  */
271
220
  function approxSwapExactPtForYt(
272
- MarketState memory _market,
273
- PYIndex _index,
274
- uint256 _exactPtIn,
275
- uint256 _blockTime,
276
- ApproxParams memory _approx
221
+ MarketState memory market,
222
+ PYIndex index,
223
+ uint256 exactPtIn,
224
+ uint256 blockTime,
225
+ ApproxParams memory approx
277
226
  )
278
227
  internal
279
228
  pure
280
- returns (
281
- uint256, /*netYtOut*/
282
- uint256, /*totalPtToSwap*/
283
- uint256 /*netSyFee*/
284
- )
229
+ returns (uint256 /*netYtOut*/, uint256 /*totalPtToSwap*/, uint256 /*netSyFee*/)
285
230
  {
286
- Args7 memory a = Args7(_market, _index, _exactPtIn, _blockTime);
287
-
288
- MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
289
- ApproxParamsPtIn memory p = newApproxParamsPtIn(
290
- _approx,
291
- a.exactPtIn,
292
- calcMaxPtIn(comp.totalAsset)
293
- );
294
-
295
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
296
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
231
+ MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
232
+ if (approx.guessOffchain == 0) {
233
+ approx.guessMin = Math.max(approx.guessMin, exactPtIn);
234
+ approx.guessMax = Math.min(approx.guessMax, calcMaxPtIn(market, comp));
235
+ validateApprox(approx);
236
+ }
297
237
 
298
- if (!isGoodSlope) {
299
- p.guessMax = guess;
300
- continue;
301
- }
238
+ for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
239
+ uint256 guess = nextGuess(approx, iter);
302
240
 
303
- (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(a.market, comp, a.index, guess);
241
+ (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
304
242
 
305
- uint256 netAssetOut = a.index.syToAsset(netSyOut);
243
+ uint256 netAssetOut = index.syToAsset(netSyOut);
306
244
 
307
245
  // guess >= netAssetOut since we are swapping PT to SY
308
246
  uint256 netPtToPull = guess - netAssetOut;
309
247
 
310
- if (netPtToPull <= a.exactPtIn) {
311
- p.guessMin = guess;
312
- if (Math.isASmallerApproxB(netPtToPull, a.exactPtIn, p.eps)) {
248
+ if (netPtToPull <= exactPtIn) {
249
+ if (Math.isASmallerApproxB(netPtToPull, exactPtIn, approx.eps))
313
250
  return (netAssetOut, guess, netSyFee);
314
- }
251
+ approx.guessMin = guess;
315
252
  } else {
316
- p.guessMax = guess - 1;
253
+ approx.guessMax = guess - 1;
317
254
  }
318
255
  }
319
256
  revert Errors.ApproxFail();
@@ -326,82 +263,52 @@ library MarketApproxPtInLib {
326
263
  MarketPreCompute memory comp,
327
264
  PYIndex index,
328
265
  uint256 netPtIn
329
- )
330
- internal
331
- pure
332
- returns (
333
- uint256 netSyOut,
334
- uint256 netSyFee,
335
- uint256 netSyToReserve
336
- )
337
- {
266
+ ) internal pure returns (uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve) {
338
267
  (int256 _netSyOut, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(
339
268
  comp,
340
269
  index,
341
- netPtIn.neg()
270
+ -int256(netPtIn)
342
271
  );
343
- netSyOut = _netSyOut.Uint();
344
- netSyFee = _netSyFee.Uint();
345
- netSyToReserve = _netSyToReserve.Uint();
346
- }
347
-
348
- function newApproxParamsPtIn(
349
- ApproxParams memory _approx,
350
- uint256 minGuessMin,
351
- uint256 maxGuessMax
352
- ) internal pure returns (ApproxParamsPtIn memory res) {
353
- res.guessMin = Math.max(_approx.guessMin, minGuessMin);
354
- res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
355
-
356
- if (res.guessMin > res.guessMax || _approx.eps > Math.ONE)
357
- revert Errors.ApproxParamsInvalid(_approx.guessMin, _approx.guessMax, _approx.eps);
358
-
359
- res.guessOffchain = _approx.guessOffchain;
360
- res.maxIteration = _approx.maxIteration;
361
- res.eps = _approx.eps;
272
+ netSyOut = uint256(_netSyOut);
273
+ netSyFee = uint256(_netSyFee);
274
+ netSyToReserve = uint256(_netSyToReserve);
362
275
  }
363
276
 
364
- function calcMaxPtIn(int256 totalAsset) internal pure returns (uint256) {
365
- return totalAsset.Uint() - 1;
277
+ function nextGuess(ApproxParams memory approx, uint256 iter) internal pure returns (uint256) {
278
+ if (iter == 0 && approx.guessOffchain != 0) return approx.guessOffchain;
279
+ if (approx.guessMin <= approx.guessMax) return (approx.guessMin + approx.guessMax) / 2;
280
+ revert Errors.ApproxFail();
366
281
  }
367
282
 
368
- function nextGuess(
369
- ApproxParamsPtIn memory p,
370
- MarketPreCompute memory comp,
371
- int256 totalPt,
372
- uint256 iter
373
- ) internal pure returns (bool, uint256) {
374
- uint256 guess = _nextGuessPrivate(p, iter);
375
- if (guess <= p.biggestGoodGuess) return (true, guess);
376
-
377
- int256 slope = calcSlope(comp, totalPt, guess.Int());
378
- if (slope < 0) return (false, guess);
283
+ /// INTENDED TO BE CALLED BY WHEN GUESS.OFFCHAIN == 0 ONLY ///
379
284
 
380
- p.biggestGoodGuess = guess;
381
- return (true, guess);
285
+ function validateApprox(ApproxParams memory approx) internal pure {
286
+ if (approx.guessMin > approx.guessMax || approx.eps > Math.ONE)
287
+ revert Errors.ApproxParamsInvalid(approx.guessMin, approx.guessMax, approx.eps);
382
288
  }
383
289
 
384
- /**
385
- * @dev it is safe to assume that p.guessMin <= p.guessMax from the initialization of p
386
- * So once guessMin becomes larger, it should always be the case of ApproxFail
387
- */
388
- function _nextGuessPrivate(ApproxParamsPtIn memory p, uint256 iter)
389
- private
390
- pure
391
- returns (uint256)
392
- {
393
- if (iter == 0 && p.guessOffchain != 0) return p.guessOffchain;
394
- if (p.guessMin <= p.guessMax) return (p.guessMin + p.guessMax) / 2;
395
- revert Errors.ApproxFail();
290
+ function calcMaxPtIn(
291
+ MarketState memory market,
292
+ MarketPreCompute memory comp
293
+ ) internal pure returns (uint256) {
294
+ uint256 low = 0;
295
+ uint256 hi = uint256(comp.totalAsset) - 1;
296
+
297
+ while (low != hi) {
298
+ uint256 mid = (low + hi + 1) / 2;
299
+ if (calcSlope(comp, market.totalPt, int256(mid)) < 0) hi = mid - 1;
300
+ else low = mid;
301
+ }
302
+ return low;
396
303
  }
397
304
 
398
305
  function calcSlope(
399
306
  MarketPreCompute memory comp,
400
307
  int256 totalPt,
401
- int256 ptToMarket //
308
+ int256 ptToMarket
402
309
  ) internal pure returns (int256) {
403
310
  int256 diffAssetPtToMarket = comp.totalAsset - ptToMarket;
404
- int256 sumPt = ptToMarket + totalPt; // probably can skip sumPt check
311
+ int256 sumPt = ptToMarket + totalPt;
405
312
 
406
313
  require(diffAssetPtToMarket > 0 && sumPt > 0, "invalid ptToMarket");
407
314
 
@@ -423,21 +330,6 @@ library MarketApproxPtOutLib {
423
330
  using Math for int256;
424
331
  using LogExpMath for int256;
425
332
 
426
- struct ApproxParamsPtOut {
427
- uint256 guessMin;
428
- uint256 guessMax;
429
- uint256 guessOffchain;
430
- uint256 maxIteration;
431
- uint256 eps;
432
- }
433
-
434
- struct Args4 {
435
- MarketState market;
436
- PYIndex index;
437
- uint256 exactSyIn;
438
- uint256 blockTime;
439
- }
440
-
441
333
  /**
442
334
  * @dev algorithm:
443
335
  - Bin search the amount of PT to swapExactOut
@@ -446,51 +338,36 @@ library MarketApproxPtOutLib {
446
338
  - guess & approx is for netSyIn
447
339
  */
448
340
  function approxSwapExactSyForPt(
449
- MarketState memory _market,
450
- PYIndex _index,
451
- uint256 _exactSyIn,
452
- uint256 _blockTime,
453
- ApproxParams memory _approx
454
- )
455
- internal
456
- pure
457
- returns (
458
- uint256, /*netPtOut*/
459
- uint256 /*netSyFee*/
460
- )
461
- {
462
- Args4 memory a = Args4(_market, _index, _exactSyIn, _blockTime);
463
- MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
464
- ApproxParamsPtOut memory p = newApproxParamsPtOut(
465
- _approx,
466
- 0,
467
- calcMaxPtOut(comp, a.market.totalPt)
468
- );
341
+ MarketState memory market,
342
+ PYIndex index,
343
+ uint256 exactSyIn,
344
+ uint256 blockTime,
345
+ ApproxParams memory approx
346
+ ) internal pure returns (uint256 /*netPtOut*/, uint256 /*netSyFee*/) {
347
+ MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
348
+ if (approx.guessOffchain == 0) {
349
+ // no limit on min
350
+ approx.guessMax = Math.min(approx.guessMax, calcMaxPtOut(comp, market.totalPt));
351
+ validateApprox(approx);
352
+ }
469
353
 
470
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
471
- uint256 guess = nextGuess(p, iter);
354
+ for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
355
+ uint256 guess = nextGuess(approx, iter);
472
356
 
473
- (uint256 netSyIn, uint256 netSyFee, ) = calcSyIn(a.market, comp, a.index, guess);
357
+ (uint256 netSyIn, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
474
358
 
475
- if (netSyIn <= a.exactSyIn) {
476
- p.guessMin = guess;
477
- bool isAnswerAccepted = Math.isASmallerApproxB(netSyIn, a.exactSyIn, p.eps);
478
- if (isAnswerAccepted) return (guess, netSyFee);
359
+ if (netSyIn <= exactSyIn) {
360
+ if (Math.isASmallerApproxB(netSyIn, exactSyIn, approx.eps))
361
+ return (guess, netSyFee);
362
+ approx.guessMin = guess;
479
363
  } else {
480
- p.guessMax = guess - 1;
364
+ approx.guessMax = guess - 1;
481
365
  }
482
366
  }
483
367
 
484
368
  revert Errors.ApproxFail();
485
369
  }
486
370
 
487
- struct Args5 {
488
- MarketState market;
489
- PYIndex index;
490
- uint256 minSyOut;
491
- uint256 blockTime;
492
- }
493
-
494
371
  /**
495
372
  * @dev algorithm:
496
373
  - Bin search the amount of PT to swapExactOut
@@ -500,43 +377,33 @@ library MarketApproxPtOutLib {
500
377
  - guess & approx is for netSyOut
501
378
  */
502
379
  function approxSwapYtForExactSy(
503
- MarketState memory _market,
504
- PYIndex _index,
505
- uint256 _minSyOut,
506
- uint256 _blockTime,
507
- ApproxParams memory _approx
508
- )
509
- internal
510
- pure
511
- returns (
512
- uint256, /*netYtIn*/
513
- uint256, /*netSyOut*/
514
- uint256 /*netSyFee*/
515
- )
516
- {
517
- Args5 memory a = Args5(_market, _index, _minSyOut, _blockTime);
518
- MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
519
- ApproxParamsPtOut memory p = newApproxParamsPtOut(
520
- _approx,
521
- 0,
522
- calcMaxPtOut(comp, a.market.totalPt)
523
- );
380
+ MarketState memory market,
381
+ PYIndex index,
382
+ uint256 minSyOut,
383
+ uint256 blockTime,
384
+ ApproxParams memory approx
385
+ ) internal pure returns (uint256 /*netYtIn*/, uint256 /*netSyOut*/, uint256 /*netSyFee*/) {
386
+ MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
387
+ if (approx.guessOffchain == 0) {
388
+ // no limit on min
389
+ approx.guessMax = Math.min(approx.guessMax, calcMaxPtOut(comp, market.totalPt));
390
+ validateApprox(approx);
391
+ }
524
392
 
525
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
526
- uint256 guess = nextGuess(p, iter);
393
+ for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
394
+ uint256 guess = nextGuess(approx, iter);
527
395
 
528
- (uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(a.market, comp, a.index, guess);
396
+ (uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
529
397
 
530
- uint256 netAssetToRepay = a.index.syToAssetUp(netSyOwed);
531
- uint256 netSyOut = a.index.assetToSy(guess - netAssetToRepay);
398
+ uint256 netAssetToRepay = index.syToAssetUp(netSyOwed);
399
+ uint256 netSyOut = index.assetToSy(guess - netAssetToRepay);
532
400
 
533
- if (netSyOut >= a.minSyOut) {
534
- p.guessMax = guess;
535
- if (Math.isAGreaterApproxB(netSyOut, a.minSyOut, p.eps)) {
401
+ if (netSyOut >= minSyOut) {
402
+ if (Math.isAGreaterApproxB(netSyOut, minSyOut, approx.eps))
536
403
  return (guess, netSyOut, netSyFee);
537
- }
404
+ approx.guessMax = guess;
538
405
  } else {
539
- p.guessMin = guess + 1;
406
+ approx.guessMin = guess + 1;
540
407
  }
541
408
  }
542
409
  revert Errors.ApproxFail();
@@ -547,6 +414,7 @@ library MarketApproxPtOutLib {
547
414
  PYIndex index;
548
415
  uint256 totalSyIn;
549
416
  uint256 blockTime;
417
+ ApproxParams approx;
550
418
  }
551
419
 
552
420
  /**
@@ -566,24 +434,20 @@ library MarketApproxPtOutLib {
566
434
  )
567
435
  internal
568
436
  pure
569
- returns (
570
- uint256, /*netPtFromSwap*/
571
- uint256, /*netSySwap*/
572
- uint256 /*netSyFee*/
573
- )
437
+ returns (uint256 /*netPtFromSwap*/, uint256 /*netSySwap*/, uint256 /*netSyFee*/)
574
438
  {
575
- Args6 memory a = Args6(_market, _index, _totalSyIn, _blockTime);
576
- require(a.market.totalLp != 0, "no existing lp");
439
+ Args6 memory a = Args6(_market, _index, _totalSyIn, _blockTime, _approx);
577
440
 
578
441
  MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
579
- ApproxParamsPtOut memory p = newApproxParamsPtOut(
580
- _approx,
581
- 0,
582
- calcMaxPtOut(comp, a.market.totalPt)
583
- );
442
+ if (a.approx.guessOffchain == 0) {
443
+ // no limit on min
444
+ a.approx.guessMax = Math.min(a.approx.guessMax, calcMaxPtOut(comp, a.market.totalPt));
445
+ validateApprox(a.approx);
446
+ require(a.market.totalLp != 0, "no existing lp");
447
+ }
584
448
 
585
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
586
- uint256 guess = nextGuess(p, iter);
449
+ for (uint256 iter = 0; iter < a.approx.maxIteration; ++iter) {
450
+ uint256 guess = nextGuess(a.approx, iter);
587
451
 
588
452
  (uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve) = calcSyIn(
589
453
  a.market,
@@ -593,7 +457,7 @@ library MarketApproxPtOutLib {
593
457
  );
594
458
 
595
459
  if (netSyIn > a.totalSyIn) {
596
- p.guessMax = guess - 1;
460
+ a.approx.guessMax = guess - 1;
597
461
  continue;
598
462
  }
599
463
 
@@ -601,8 +465,8 @@ library MarketApproxPtOutLib {
601
465
  uint256 ptNumerator;
602
466
 
603
467
  {
604
- uint256 newTotalPt = a.market.totalPt.Uint() - guess;
605
- uint256 netTotalSy = a.market.totalSy.Uint() + netSyIn - netSyToReserve;
468
+ uint256 newTotalPt = uint256(a.market.totalPt) - guess;
469
+ uint256 netTotalSy = uint256(a.market.totalSy) + netSyIn - netSyToReserve;
606
470
 
607
471
  // it is desired that
608
472
  // netPtFromSwap / newTotalPt = netSyRemaining / netTotalSy
@@ -613,80 +477,60 @@ library MarketApproxPtOutLib {
613
477
  syNumerator = (a.totalSyIn - netSyIn) * newTotalPt;
614
478
  }
615
479
 
616
- if (Math.isAApproxB(ptNumerator, syNumerator, p.eps)) {
480
+ if (Math.isAApproxB(ptNumerator, syNumerator, a.approx.eps))
617
481
  return (guess, netSyIn, netSyFee);
618
- }
619
482
 
620
483
  if (ptNumerator <= syNumerator) {
621
484
  // needs more PT
622
- p.guessMin = guess + 1;
485
+ a.approx.guessMin = guess + 1;
623
486
  } else {
624
487
  // needs less PT
625
- p.guessMax = guess - 1;
488
+ a.approx.guessMax = guess - 1;
626
489
  }
627
490
  }
628
491
  revert Errors.ApproxFail();
629
492
  }
630
493
 
631
- struct Args8 {
632
- MarketState market;
633
- PYIndex index;
634
- uint256 exactYtIn;
635
- uint256 blockTime;
636
- uint256 maxSyPayable;
637
- }
638
-
639
494
  /**
640
495
  * @dev algorithm:
641
496
  - Bin search the amount of PT to swapExactOut
642
497
  - Flashswap that amount of PT out
643
498
  - Pair all the PT with the YT to redeem SY
644
499
  - Use the SY to repay the flashswap debt
645
- - Stop when the amount of SY owed is smaller approx the amount of SY to repay the flashswap
500
+ - Stop when the amount of YT required to pair with PT is approx exactYtIn
646
501
  - guess & approx is for netPtFromSwap
647
502
  */
648
503
  function approxSwapExactYtForPt(
649
- MarketState memory _market,
650
- PYIndex _index,
651
- uint256 _exactYtIn,
652
- uint256 _blockTime,
653
- ApproxParams memory _approx
504
+ MarketState memory market,
505
+ PYIndex index,
506
+ uint256 exactYtIn,
507
+ uint256 blockTime,
508
+ ApproxParams memory approx
654
509
  )
655
510
  internal
656
511
  pure
657
- returns (
658
- uint256, /*netPtOut*/
659
- uint256, /*totalPtSwapped*/
660
- uint256 /*netSyFee*/
661
- )
512
+ returns (uint256 /*netPtOut*/, uint256 /*totalPtSwapped*/, uint256 /*netSyFee*/)
662
513
  {
663
- Args8 memory a = Args8(
664
- _market,
665
- _index,
666
- _exactYtIn,
667
- _blockTime,
668
- _index.assetToSy(_exactYtIn)
669
- );
670
- MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
671
- ApproxParamsPtOut memory p = newApproxParamsPtOut(
672
- _approx,
673
- a.exactYtIn,
674
- calcMaxPtOut(comp, a.market.totalPt)
675
- );
514
+ MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
515
+ if (approx.guessOffchain == 0) {
516
+ approx.guessMin = Math.max(approx.guessMin, exactYtIn);
517
+ approx.guessMax = Math.min(approx.guessMax, calcMaxPtOut(comp, market.totalPt));
518
+ validateApprox(approx);
519
+ }
676
520
 
677
- for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
678
- uint256 guess = nextGuess(p, iter);
521
+ for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
522
+ uint256 guess = nextGuess(approx, iter);
679
523
 
680
- (uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(a.market, comp, a.index, guess);
524
+ (uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
681
525
 
682
- if (netSyOwed <= a.maxSyPayable) {
683
- p.guessMin = guess;
526
+ uint256 netYtToPull = index.syToAssetUp(netSyOwed);
684
527
 
685
- if (Math.isASmallerApproxB(netSyOwed, a.maxSyPayable, p.eps)) {
686
- return (guess - a.exactYtIn, guess, netSyFee);
687
- }
528
+ if (netYtToPull <= exactYtIn) {
529
+ if (Math.isASmallerApproxB(netYtToPull, exactYtIn, approx.eps))
530
+ return (guess - netYtToPull, guess, netSyFee);
531
+ approx.guessMin = guess;
688
532
  } else {
689
- p.guessMax = guess - 1;
533
+ approx.guessMax = guess - 1;
690
534
  }
691
535
  }
692
536
  revert Errors.ApproxFail();
@@ -699,70 +543,39 @@ library MarketApproxPtOutLib {
699
543
  MarketPreCompute memory comp,
700
544
  PYIndex index,
701
545
  uint256 netPtOut
702
- )
703
- internal
704
- pure
705
- returns (
706
- uint256 netSyIn,
707
- uint256 netSyFee,
708
- uint256 netSyToReserve
709
- )
710
- {
546
+ ) internal pure returns (uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve) {
711
547
  (int256 _netSyIn, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(
712
548
  comp,
713
549
  index,
714
- netPtOut.Int()
550
+ int256(netPtOut)
715
551
  );
716
552
 
717
- netSyIn = _netSyIn.abs();
718
- netSyFee = _netSyFee.Uint();
719
- netSyToReserve = _netSyToReserve.Uint();
553
+ // all safe since totalPt and totalSy is int128
554
+ netSyIn = uint256(-_netSyIn);
555
+ netSyFee = uint256(_netSyFee);
556
+ netSyToReserve = uint256(_netSyToReserve);
720
557
  }
721
558
 
722
- function newApproxParamsPtOut(
723
- ApproxParams memory _approx,
724
- uint256 minGuessMin,
725
- uint256 maxGuessMax
726
- ) internal pure returns (ApproxParamsPtOut memory res) {
727
- if (_approx.guessMin > _approx.guessMax || _approx.eps > Math.ONE)
728
- revert Errors.ApproxParamsInvalid(_approx.guessMin, _approx.guessMax, _approx.eps);
729
-
730
- res.guessMin = Math.max(_approx.guessMin, minGuessMin);
731
- res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
732
-
733
- if (res.guessMin > res.guessMax)
734
- revert Errors.ApproxBinarySearchInputInvalid(
735
- _approx.guessMin,
736
- _approx.guessMax,
737
- minGuessMin,
738
- maxGuessMax
739
- );
740
-
741
- res.guessOffchain = _approx.guessOffchain;
742
- res.maxIteration = _approx.maxIteration;
743
- res.eps = _approx.eps;
744
- }
745
-
746
- function calcMaxPtOut(MarketPreCompute memory comp, int256 totalPt)
747
- internal
748
- pure
749
- returns (uint256)
750
- {
559
+ function calcMaxPtOut(
560
+ MarketPreCompute memory comp,
561
+ int256 totalPt
562
+ ) internal pure returns (uint256) {
751
563
  int256 logitP = (comp.feeRate - comp.rateAnchor).mulDown(comp.rateScalar).exp();
752
564
  int256 proportion = logitP.divDown(logitP + Math.IONE);
753
565
  int256 numerator = proportion.mulDown(totalPt + comp.totalAsset);
754
566
  int256 maxPtOut = totalPt - numerator;
755
567
  // only get 99.9% of the theoretical max to accommodate some precision issues
756
- return (maxPtOut.Uint() * 999) / 1000;
568
+ return (uint256(maxPtOut) * 999) / 1000;
757
569
  }
758
570
 
759
- /**
760
- * @dev it is safe to assume that p.guessMin <= p.guessMax from the initialization of p
761
- * So once guessMin becomes larger, it should always be the case of ApproxFail
762
- */
763
- function nextGuess(ApproxParamsPtOut memory p, uint256 iter) private pure returns (uint256) {
764
- if (iter == 0 && p.guessOffchain != 0) return p.guessOffchain;
765
- if (p.guessMin <= p.guessMax) return (p.guessMin + p.guessMax) / 2;
571
+ function nextGuess(ApproxParams memory approx, uint256 iter) internal pure returns (uint256) {
572
+ if (iter == 0 && approx.guessOffchain != 0) return approx.guessOffchain;
573
+ if (approx.guessMin <= approx.guessMax) return (approx.guessMin + approx.guessMax) / 2;
766
574
  revert Errors.ApproxFail();
767
575
  }
576
+
577
+ function validateApprox(ApproxParams memory approx) internal pure {
578
+ if (approx.guessMin > approx.guessMax || approx.eps > Math.ONE)
579
+ revert Errors.ApproxParamsInvalid(approx.guessMin, approx.guessMax, approx.eps);
580
+ }
768
581
  }