@pendle/core-v2 0.12.1-testnet → 0.13.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 (462) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +4 -0
  2. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +3 -3
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +4 -0
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +48 -0
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +4 -0
  6. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +3 -3
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +4 -0
  8. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +4 -0
  10. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/EpochResultManager.sol/EpochResultManager.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +4 -0
  12. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +3 -3
  13. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +4 -0
  14. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +3 -3
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +4 -0
  16. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +4 -0
  18. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +3 -3
  19. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +4 -0
  20. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +4 -0
  22. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +1084 -0
  23. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +4 -0
  24. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +32 -1
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +4 -0
  26. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +3 -3
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +4 -0
  28. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  29. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +4 -0
  30. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +4 -0
  32. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeBalanceLib.sol/VeBalanceLib.json +3 -3
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +4 -0
  34. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol/CheckpointHelper.json +3 -3
  35. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +4 -0
  36. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol/Checkpoints.json +3 -3
  37. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +4 -0
  38. package/build/artifacts/contracts/{libraries/math → LiquidityMining/libraries}/WeekMath.sol/WeekMath.json +3 -3
  39. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +4 -0
  40. package/build/artifacts/contracts/{libraries/math → core/Market}/MarketMathCore.sol/MarketMathCore.json +3 -3
  41. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +4 -0
  42. package/build/artifacts/contracts/{libraries → core/Market}/OracleLib.sol/OracleLib.json +3 -3
  43. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +4 -0
  44. package/build/artifacts/contracts/core/{LiquidityMining → Market}/PendleGauge.sol/PendleGauge.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 +4 -4
  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 +4 -0
  50. package/build/artifacts/contracts/{libraries → core/RewardManager}/RewardManager.sol/RewardManager.json +1 -1
  51. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +4 -0
  52. package/build/artifacts/contracts/{libraries → core/RewardManager}/RewardManagerAbstract.sol/RewardManagerAbstract.json +1 -1
  53. package/build/artifacts/contracts/core/SuperComposableYield/PYIndex.sol/PYIndexLib.dbg.json +4 -0
  54. package/build/artifacts/contracts/{libraries/helpers → core/SuperComposableYield}/PYIndex.sol/PYIndexLib.json +3 -3
  55. package/build/artifacts/contracts/core/SuperComposableYield/SCYBase.sol/SCYBase.dbg.json +4 -0
  56. package/build/artifacts/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBase.sol/SCYBase.json +1 -1
  57. package/build/artifacts/contracts/core/SuperComposableYield/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +4 -0
  58. package/build/artifacts/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +1 -1
  59. package/build/artifacts/contracts/core/SuperComposableYield/SCYUtils.sol/SCYUtils.dbg.json +4 -0
  60. package/build/artifacts/contracts/{libraries/SCY → core/SuperComposableYield}/SCYUtils.sol/SCYUtils.json +3 -3
  61. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +4 -0
  62. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +3 -3
  63. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +1007 -0
  65. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.json +1030 -0
  67. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.json +1025 -0
  69. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.dbg.json +4 -0
  70. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.json +1 -1
  71. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +4 -0
  72. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +3 -3
  73. package/build/artifacts/contracts/core/SuperComposableYield/implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/SuperComposableYield/implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +851 -0
  75. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  78. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  80. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  82. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +4 -0
  83. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +254 -0
  84. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +4 -0
  85. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +329 -0
  86. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +4 -0
  87. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/ArrayLib.sol/ArrayLib.json +3 -3
  88. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +4 -0
  89. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +3 -3
  90. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +4 -0
  91. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol/CodeDeployer.json +3 -3
  92. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
  93. package/build/artifacts/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +1 -1
  94. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
  95. package/build/artifacts/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +3 -3
  96. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +4 -0
  97. package/build/artifacts/contracts/{libraries → core/libraries}/Errors.sol/Errors.json +31 -5
  98. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +4 -0
  99. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/ExpiryUtilsLib.sol/ExpiryUtils.json +3 -3
  100. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +4 -0
  101. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/MiniHelpers.sol/MiniHelpers.json +3 -3
  102. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +4 -0
  103. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/TokenHelper.sol/TokenHelper.json +1 -1
  104. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +4 -0
  105. package/build/artifacts/contracts/{libraries → core/libraries}/math/LogExpMath.sol/LogExpMath.json +3 -3
  106. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +4 -0
  107. package/build/artifacts/contracts/{libraries → core/libraries}/math/Math.sol/Math.json +3 -3
  108. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IPFeeDistributorFactory.sol/IPFeeDistributorFactory.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +31 -0
  148. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  168. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  169. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  170. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  171. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +28 -2
  172. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  173. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +60 -89
  174. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
  175. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1237 -0
  176. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +4 -0
  177. package/build/artifacts/contracts/{core/actions → router}/ActionCallback.sol/ActionCallback.json +3 -3
  178. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
  179. package/build/artifacts/contracts/{core/actions → router}/ActionMintRedeem.sol/ActionMintRedeem.json +5 -5
  180. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +4 -0
  181. package/build/artifacts/contracts/{core/actions → router}/ActionMisc.sol/ActionMisc.json +3 -3
  182. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
  183. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +698 -0
  184. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +4 -0
  185. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +317 -0
  186. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
  187. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +645 -0
  188. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +4 -0
  189. package/build/artifacts/contracts/{core → router}/PendleRouter.sol/PendleRouter.json +3 -3
  190. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
  191. package/build/artifacts/contracts/{core/actions → router}/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  192. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +4 -0
  193. package/build/artifacts/contracts/{core/actions → router}/base/CallbackHelper.sol/CallbackHelper.json +1 -1
  194. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +4 -0
  195. package/build/artifacts/contracts/{libraries/math → router/base}/MarketApproxLib.sol/MarketApproxPtInLib.json +3 -3
  196. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +4 -0
  197. package/build/artifacts/contracts/{libraries/math → router/base}/MarketApproxLib.sol/MarketApproxPtOutLib.json +3 -3
  198. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +4 -0
  199. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +35 -0
  200. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +4 -0
  201. package/build/artifacts/contracts/{libraries → router}/kyberswap/IMultihopRouter.sol/IMultihopRouter.json +1 -1
  202. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +4 -0
  203. package/build/artifacts/contracts/{libraries → router}/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
  204. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +6 -6
  205. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiverAppUpg.sol +5 -5
  206. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSendEndpointUpg.sol +5 -5
  207. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSenderAppUpg.sol +4 -4
  208. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/EpochResultManager.sol +7 -7
  209. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributor.sol +14 -11
  210. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributorFactory.sol +6 -4
  211. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerBaseUpg.sol +14 -11
  212. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerMainchainUpg.sol +2 -2
  213. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerSidechainUpg.sol +1 -1
  214. package/contracts/{core/LiquidityMining → LiquidityMining}/README.md +0 -0
  215. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/PendleVotingControllerUpg.sol +6 -5
  216. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/VotingControllerStorageUpg.sol +16 -12
  217. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleMainchain.sol +11 -7
  218. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleSidechain.sol +9 -4
  219. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowTokenBase.sol +9 -7
  220. package/contracts/{libraries → LiquidityMining/libraries}/VeBalanceLib.sol +3 -3
  221. package/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol +2 -2
  222. package/contracts/{libraries/math → LiquidityMining/libraries}/WeekMath.sol +2 -2
  223. package/contracts/{libraries/math → core/Market}/MarketMathCore.sol +17 -19
  224. package/contracts/{libraries → core/Market}/OracleLib.sol +2 -2
  225. package/contracts/core/{LiquidityMining → Market}/PendleGauge.sol +4 -6
  226. package/contracts/core/Market/PendleMarket.sol +4 -12
  227. package/contracts/core/Market/PendleMarketFactory.sol +5 -5
  228. package/contracts/{libraries → core/RewardManager}/RewardManager.sol +2 -4
  229. package/contracts/{libraries → core/RewardManager}/RewardManagerAbstract.sol +9 -4
  230. package/contracts/{libraries/helpers → core/SuperComposableYield}/PYIndex.sol +4 -3
  231. package/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBase.sol +11 -8
  232. package/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBaseWithRewards.sol +5 -4
  233. package/contracts/{libraries/SCY → core/SuperComposableYield}/SCYUtils.sol +1 -1
  234. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenHelper.sol +2 -2
  235. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenSCY.sol +6 -6
  236. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol +2 -2
  237. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol +1 -1
  238. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol +5 -5
  239. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/Pendle3CrvHelper.sol +2 -2
  240. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/PendleWstEthSCY.sol +6 -5
  241. package/contracts/core/YieldContracts/InterestManagerYT.sol +5 -5
  242. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +6 -4
  243. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +6 -7
  244. package/contracts/core/YieldContracts/PendleYieldToken.sol +11 -10
  245. package/contracts/core/{PendleERC20.sol → erc20/PendleERC20.sol} +0 -0
  246. package/contracts/core/{PendleERC20Permit.sol → erc20/PendleERC20Permit.sol} +0 -0
  247. package/contracts/{libraries/helpers → core/libraries}/ArrayLib.sol +0 -0
  248. package/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol +1 -1
  249. package/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol +1 -1
  250. package/contracts/{libraries → core/libraries}/Errors.sol +6 -2
  251. package/contracts/{libraries/helpers → core/libraries}/ExpiryUtilsLib.sol +1 -1
  252. package/contracts/{libraries/helpers → core/libraries}/MiniHelpers.sol +1 -1
  253. package/contracts/{libraries/helpers → core/libraries}/TokenHelper.sol +1 -16
  254. package/contracts/{libraries → core/libraries}/math/LogExpMath.sol +1 -1
  255. package/contracts/{libraries → core/libraries}/math/Math.sol +2 -2
  256. package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
  257. package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -1
  258. package/contracts/interfaces/ConvexCurve/ICvxCrv.sol +1 -1
  259. package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -1
  260. package/contracts/interfaces/Curve/ICrvPool.sol +1 -1
  261. package/contracts/interfaces/IAToken.sol +1 -1
  262. package/contracts/interfaces/IAavePool.sol +1 -1
  263. package/contracts/interfaces/IAaveRewardsController.sol +1 -1
  264. package/contracts/interfaces/IBenQiComptroller.sol +1 -1
  265. package/contracts/interfaces/IBenQiInterestRateModel.sol +1 -1
  266. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +1 -1
  267. package/contracts/interfaces/IERC4626.sol +1 -1
  268. package/contracts/interfaces/IEulerEToken.sol +1 -1
  269. package/contracts/interfaces/IEulerMarkets.sol +1 -1
  270. package/contracts/interfaces/IPActionAddRemoveLiq.sol +3 -3
  271. package/contracts/interfaces/IPActionMintRedeem.sol +3 -3
  272. package/contracts/interfaces/IPActionMisc.sol +1 -1
  273. package/contracts/interfaces/IPActionSwapPT.sol +3 -3
  274. package/contracts/interfaces/IPActionSwapPTYT.sol +3 -3
  275. package/contracts/interfaces/IPActionSwapYT.sol +3 -3
  276. package/contracts/interfaces/IPAllAction.sol +1 -1
  277. package/contracts/interfaces/IPFeeDistributor.sol +1 -1
  278. package/contracts/interfaces/IPFeeDistributorFactory.sol +1 -1
  279. package/contracts/interfaces/IPGauge.sol +1 -1
  280. package/contracts/interfaces/IPGaugeController.sol +1 -1
  281. package/contracts/interfaces/IPGaugeControllerMainchain.sol +1 -1
  282. package/contracts/interfaces/IPGovernanceManager.sol +1 -1
  283. package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
  284. package/contracts/interfaces/IPMarket.sol +2 -2
  285. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  286. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
  287. package/contracts/interfaces/IPPermissionsV2Upg.sol +1 -1
  288. package/contracts/interfaces/IPPrincipalToken.sol +1 -1
  289. package/contracts/interfaces/IPVeToken.sol +1 -1
  290. package/contracts/interfaces/IPVotingController.sol +5 -3
  291. package/contracts/interfaces/IPVotingEscrowMainchain.sol +3 -3
  292. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  293. package/contracts/interfaces/IPYieldToken.sol +1 -1
  294. package/contracts/interfaces/IQiAvax.sol +1 -1
  295. package/contracts/interfaces/IQiErc20.sol +1 -1
  296. package/contracts/interfaces/IQiToken.sol +1 -1
  297. package/contracts/interfaces/IREDACTEDStaking.sol +1 -1
  298. package/contracts/interfaces/IRewardManager.sol +1 -1
  299. package/contracts/interfaces/ISAvax.sol +1 -1
  300. package/contracts/interfaces/ISJoe.sol +1 -1
  301. package/contracts/interfaces/IStETH.sol +1 -1
  302. package/contracts/interfaces/IStargateLPStaking.sol +1 -1
  303. package/contracts/interfaces/IStargatePool.sol +1 -1
  304. package/contracts/interfaces/IStargateRouter.sol +1 -1
  305. package/contracts/interfaces/ISuperComposableYield.sol +1 -1
  306. package/contracts/interfaces/IWAvax.sol +1 -1
  307. package/contracts/interfaces/IWETH.sol +1 -1
  308. package/contracts/interfaces/IWXBTRFLY.sol +1 -1
  309. package/contracts/interfaces/IWstETH.sol +1 -1
  310. package/contracts/interfaces/IYearnVault.sol +1 -1
  311. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -3
  312. package/contracts/offchain-helpers/MarketMathStatic.sol +7 -7
  313. package/contracts/offchain-helpers/RouterStatic.sol +7 -14
  314. package/contracts/{core/actions → router}/ActionAddRemoveLiq.sol +5 -5
  315. package/contracts/{core/actions → router}/ActionCallback.sol +7 -7
  316. package/contracts/{core/actions → router}/ActionMintRedeem.sol +4 -4
  317. package/contracts/{core/actions → router}/ActionMisc.sol +4 -4
  318. package/contracts/{core/actions → router}/ActionSwapPT.sol +5 -5
  319. package/contracts/{core/actions → router}/ActionSwapPTYT.sol +5 -5
  320. package/contracts/{core/actions → router}/ActionSwapYT.sol +5 -5
  321. package/contracts/{core → router}/PendleRouter.sol +3 -3
  322. package/contracts/{core/actions → router}/base/ActionBaseMintRedeem.sol +6 -6
  323. package/contracts/{core/actions → router}/base/CallbackHelper.sol +1 -1
  324. package/contracts/{libraries/math → router/base}/MarketApproxLib.sol +191 -229
  325. package/contracts/{libraries → router}/kyberswap/AggregationRouterHelper.sol +1 -1
  326. package/contracts/{libraries → router}/kyberswap/IMultihopRouter.sol +0 -0
  327. package/contracts/{libraries → router}/kyberswap/KyberSwapHelper.sol +3 -4
  328. package/deployments/kovan.json +31 -0
  329. package/package.json +4 -4
  330. package/typechain-types/IPVotingController.ts +18 -0
  331. package/typechain-types/PendleMsgReceiverAppUpg.ts +3 -128
  332. package/typechain-types/PendleVotingControllerUpg.ts +18 -0
  333. package/typechain-types/RouterStatic.ts +0 -45
  334. package/typechain-types/VotingControllerStorageUpg.ts +18 -0
  335. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +30 -4
  336. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  337. package/typechain-types/factories/ActionMintRedeem__factory.ts +4 -4
  338. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  339. package/typechain-types/factories/ActionSwapPTYT__factory.ts +27 -1
  340. package/typechain-types/factories/ActionSwapPT__factory.ts +30 -4
  341. package/typechain-types/factories/ActionSwapYT__factory.ts +30 -4
  342. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  343. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  344. package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
  345. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  346. package/typechain-types/factories/ERC20__factory.ts +1 -1
  347. package/typechain-types/factories/Errors__factory.ts +29 -3
  348. package/typechain-types/factories/IPVotingController__factory.ts +31 -0
  349. package/typechain-types/factories/MarketMathStatic__factory.ts +27 -1
  350. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  351. package/typechain-types/factories/Pendle3CrvAndTokenSCY__factory.ts +1 -1
  352. package/typechain-types/factories/Pendle3CrvHelper__factory.ts +1 -1
  353. package/typechain-types/factories/PendleConvexCurveLP2PoolSCY__factory.ts +1 -1
  354. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  355. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  356. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
  357. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  358. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  359. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  360. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  361. package/typechain-types/factories/PendleMarket__factory.ts +4 -4
  362. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  363. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +0 -75
  364. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  365. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  366. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  367. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +3 -3
  368. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  369. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +32 -1
  370. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  371. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  372. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  373. package/typechain-types/factories/RouterStatic__factory.ts +1 -30
  374. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +31 -0
  375. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  376. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  377. package/typechain-types/hardhat.d.ts +0 -414
  378. package/typechain-types/index.ts +56 -56
  379. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +0 -4
  380. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +0 -4
  381. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +0 -1007
  382. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.dbg.json +0 -4
  383. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.json +0 -1030
  384. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.dbg.json +0 -4
  385. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.json +0 -1025
  386. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.dbg.json +0 -4
  387. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +0 -4
  388. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +0 -4
  389. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +0 -851
  390. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +0 -4
  391. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +0 -4
  392. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +0 -4
  393. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +0 -4
  394. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +0 -123
  395. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +0 -4
  396. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +0 -4
  397. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +0 -4
  398. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +0 -4
  399. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +0 -4
  400. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +0 -4
  401. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +0 -4
  402. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +0 -4
  403. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +0 -4
  404. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +0 -4
  405. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +0 -1053
  406. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +0 -4
  407. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +0 -4
  408. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +0 -4
  409. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +0 -4
  410. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +0 -4
  411. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +0 -254
  412. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
  413. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +0 -329
  414. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +0 -4
  415. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +0 -4
  416. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +0 -1211
  417. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  418. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +0 -4
  419. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +0 -4
  420. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +0 -4
  421. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +0 -672
  422. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  423. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -291
  424. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +0 -4
  425. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +0 -619
  426. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +0 -4
  427. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +0 -4
  428. package/build/artifacts/contracts/libraries/Errors.sol/Errors.dbg.json +0 -4
  429. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +0 -4
  430. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +0 -4
  431. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +0 -4
  432. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +0 -4
  433. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +0 -4
  434. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +0 -4
  435. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +0 -4
  436. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +0 -4
  437. package/build/artifacts/contracts/libraries/helpers/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +0 -4
  438. package/build/artifacts/contracts/libraries/helpers/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +0 -4
  439. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +0 -4
  440. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +0 -4
  441. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +0 -4
  442. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +0 -4
  443. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  444. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -35
  445. package/build/artifacts/contracts/libraries/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +0 -4
  446. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  447. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +0 -4
  448. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +0 -4
  449. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +0 -4
  450. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +0 -4
  451. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +0 -4
  452. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +0 -4
  453. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +0 -4
  454. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +0 -4
  455. package/deployments/43113-core.json +0 -16
  456. package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
  457. package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -8
  458. package/deployments/43113-testenv.json +0 -22
  459. package/deployments/80001-core.json +0 -15
  460. package/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
  461. package/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -8
  462. package/deployments/80001-testenv.json +0 -22
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.15;
2
+ pragma solidity 0.8.17;
3
3
 
4
- import "./Math.sol";
5
- import "./MarketMathCore.sol";
4
+ import "../../core/libraries/math/Math.sol";
5
+ import "../../core/Market/MarketMathCore.sol";
6
6
 
7
7
  struct ApproxParams {
8
8
  uint256 guessMin;
@@ -63,7 +63,7 @@ library MarketApproxPtInLib {
63
63
  returns (
64
64
  uint256, /*netPtIn*/
65
65
  uint256, /*netScyOut*/
66
- uint256 /*netScyToReserve*/
66
+ uint256 /*netScyFee*/
67
67
  )
68
68
  {
69
69
  /*
@@ -72,54 +72,43 @@ library MarketApproxPtInLib {
72
72
  2. if netScyOut is greater & approx minScyOut => answer found
73
73
  */
74
74
 
75
- Args1 memory arg = Args1(_market, _index, _minScyOut, _blockTime);
76
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
77
- ApproxParamsPtIn memory p = newApproxParamsPtIn(_approx, comp.totalAsset);
78
-
79
- uint256 minAssetOut = arg.index.scyToAssetUp(arg.minScyOut);
75
+ Args1 memory a = Args1(_market, _index, _minScyOut, _blockTime);
76
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
77
+ ApproxParamsPtIn memory p = newApproxParamsPtIn(_approx, 0, calcMaxPtIn(comp.totalAsset));
80
78
 
81
79
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
82
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, arg.market.totalPt, iter);
83
-
80
+ (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
84
81
  if (!isGoodSlope) {
85
82
  p.guessMax = guess;
86
83
  continue;
87
84
  }
88
85
 
89
- (uint256 netAssetOut, uint256 netAssetToReserve) = calcAssetOut(
90
- arg.market,
91
- comp,
92
- guess
93
- );
86
+ (uint256 netScyOut, uint256 netScyFee) = calcScyOut(a.market, comp, a.index, guess);
94
87
 
95
- if (netAssetOut >= minAssetOut) {
88
+ if (netScyOut >= a.minScyOut) {
96
89
  p.guessMax = guess;
97
- bool isAnswerAccepted = Math.isAGreaterApproxB(netAssetOut, minAssetOut, p.eps);
90
+ bool isAnswerAccepted = Math.isAGreaterApproxB(netScyOut, a.minScyOut, p.eps);
98
91
  if (isAnswerAccepted) {
99
- return (
100
- guess,
101
- arg.index.assetToScy(netAssetOut),
102
- arg.index.assetToScy(netAssetToReserve)
103
- );
92
+ return (guess, netScyOut, netScyFee);
104
93
  }
105
94
  } else {
106
95
  p.guessMin = guess;
107
96
  }
108
97
  }
109
- revert("approx fail");
98
+ revert Errors.ApproxFail();
110
99
  }
111
100
 
112
101
  struct Args2 {
113
102
  MarketState market;
114
103
  PYIndex index;
115
- uint256 maxScyIn;
104
+ uint256 exactScyIn;
116
105
  uint256 blockTime;
117
106
  }
118
107
 
119
108
  function approxSwapExactScyForYt(
120
109
  MarketState memory _market,
121
110
  PYIndex _index,
122
- uint256 _maxScyIn,
111
+ uint256 _exactScyIn,
123
112
  uint256 _blockTime,
124
113
  ApproxParams memory _approx
125
114
  )
@@ -127,59 +116,40 @@ library MarketApproxPtInLib {
127
116
  pure
128
117
  returns (
129
118
  uint256, /*netYtOut*/
130
- uint256, /*netScyIn*/
131
- uint256 /*netScyToReserve*/
119
+ uint256 /*netScyFee*/
132
120
  )
133
121
  {
134
- /*
135
- the algorithm is essentially to:
136
- 1. Binary search netPtIn (therefore netScyOut)
137
- 2. flashswap some netScyOut (now we owe netPtIn)
138
- 3. Use netScyOut + additional SCY from user => convert to PT + YT
139
- 4. Pay back PT & give user YT.
140
- 5. If the PT loan can be successfully & amount of additional SCY is smallerApprox maxScyIn
141
- => answer found
142
- */
143
-
144
- Args2 memory arg = Args2(_market, _index, _maxScyIn, _blockTime);
145
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
146
- ApproxParamsPtIn memory p = newApproxParamsPtIn(_approx, comp.totalAsset);
147
-
148
- uint256 maxAssetIn = arg.index.scyToAsset(arg.maxScyIn);
149
-
150
- // at minimum we will flashswap maxAssetIn since we have enough SCY to payback the PT loan
151
- if (p.guessMin == 0) p.guessMin = maxAssetIn;
122
+ Args2 memory a = Args2(_market, _index, _exactScyIn, _blockTime);
123
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
124
+
125
+ // at minimum we will flashswap exactScyIn since we have enough SCY to payback the PT loan
126
+ ApproxParamsPtIn memory p = newApproxParamsPtIn(
127
+ _approx,
128
+ a.index.scyToAsset(a.exactScyIn),
129
+ calcMaxPtIn(comp.totalAsset)
130
+ );
152
131
 
153
132
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
154
133
  // ytOutGuess = ptInGuess
155
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, arg.market.totalPt, iter);
134
+ (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
156
135
  if (!isGoodSlope) {
157
136
  p.guessMax = guess;
158
137
  continue;
159
138
  }
160
139
 
161
- (uint256 netAssetOut, uint256 netAssetToReserve) = calcAssetOut(
162
- arg.market,
163
- comp,
164
- guess
165
- );
140
+ (uint256 netScyOut, uint256 netScyFee) = calcScyOut(a.market, comp, a.index, guess);
166
141
 
167
- uint256 netAssetToPull = guess - netAssetOut;
142
+ uint256 maxPtPayable = a.index.scyToAsset(netScyOut + a.exactScyIn);
168
143
 
169
- if (netAssetToPull <= maxAssetIn) {
144
+ if (guess <= maxPtPayable) {
170
145
  p.guessMin = guess;
171
- bool isAnswerAccepted = Math.isASmallerApproxB(netAssetToPull, maxAssetIn, p.eps);
172
- if (isAnswerAccepted)
173
- return (
174
- guess,
175
- arg.index.assetToScy(netAssetToPull),
176
- arg.index.assetToScy(netAssetToReserve)
177
- );
146
+ bool isAnswerAccepted = Math.isASmallerApproxB(guess, maxPtPayable, p.eps);
147
+ if (isAnswerAccepted) return (guess, netScyFee);
178
148
  } else {
179
149
  p.guessMax = guess;
180
150
  }
181
151
  }
182
- revert("approx fail");
152
+ revert Errors.ApproxFail();
183
153
  }
184
154
 
185
155
  struct Args6 {
@@ -201,7 +171,7 @@ library MarketApproxPtInLib {
201
171
  returns (
202
172
  uint256, /*netPtSwap*/
203
173
  uint256, /*netScyFromSwap*/
204
- uint256 /*netScyToReserve*/
174
+ uint256 /*netScyFee*/
205
175
  )
206
176
  {
207
177
  /*
@@ -215,53 +185,49 @@ library MarketApproxPtInLib {
215
185
  Note that market maintains PT/SCY ratio, but here PT/asset is used instead
216
186
  */
217
187
 
218
- Args6 memory arg = Args6(_market, _index, _totalPtIn, _blockTime);
219
- require(arg.market.totalLp != 0, "no existing lp");
188
+ Args6 memory a = Args6(_market, _index, _totalPtIn, _blockTime);
189
+ require(a.market.totalLp != 0, "no existing lp");
220
190
 
221
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
222
- ApproxParamsPtIn memory p = newApproxParamsPtIn(_approx, comp.totalAsset);
191
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
192
+ ApproxParamsPtIn memory p = newApproxParamsPtIn(
193
+ _approx,
194
+ 0,
195
+ Math.min(a.totalPtIn, calcMaxPtIn(comp.totalAsset))
196
+ );
223
197
 
224
- p.guessMax = Math.min(p.guessMax, arg.totalPtIn);
198
+ p.guessMax = Math.min(p.guessMax, a.totalPtIn);
225
199
 
226
200
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
227
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, arg.market.totalPt, iter);
201
+ (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
228
202
 
229
203
  if (!isGoodSlope) {
230
204
  p.guessMax = guess;
231
205
  continue;
232
206
  }
233
207
 
234
- (uint256 netAssetOut, uint256 netAssetToReserve) = calcAssetOut(
235
- arg.market,
236
- comp,
237
- guess
238
- );
208
+ (uint256 netScyOut, uint256 netScyFee) = calcScyOut(a.market, comp, a.index, guess);
239
209
 
240
- uint256 assetNumerator;
210
+ uint256 scyNumerator;
241
211
  uint256 ptNumerator;
242
212
  {
243
- uint256 newTotalPt = arg.market.totalPt.Uint() + guess;
244
- uint256 netPtRemaining = arg.totalPtIn - guess;
245
- uint256 newTotalAsset = (comp.totalAsset.Uint() - netAssetOut - netAssetToReserve);
213
+ uint256 newTotalPt = a.market.totalPt.Uint() + guess;
214
+ uint256 netPtRemaining = a.totalPtIn - guess;
215
+ uint256 newTotalScy = (a.market.totalScy.Uint() - netScyOut - netScyFee);
246
216
 
247
217
  // it is desired that
248
- // netAssetOut / newTotalAsset = netPtRemaining / newTotalPt
218
+ // netAssetOut / newTotalScy = netPtRemaining / newTotalPt
249
219
  // which is equivalent to
250
- // netAssetOut * newTotalPt = netPtRemaining * newTotalAsset
220
+ // netAssetOut * newTotalPt = netPtRemaining * newTotalScy
251
221
 
252
- assetNumerator = netAssetOut * newTotalPt;
253
- ptNumerator = netPtRemaining * newTotalAsset;
222
+ scyNumerator = netScyOut * newTotalPt;
223
+ ptNumerator = netPtRemaining * newTotalScy;
254
224
  }
255
225
 
256
- if (Math.isAApproxB(assetNumerator, ptNumerator, p.eps)) {
257
- return (
258
- guess,
259
- arg.index.assetToScy(netAssetOut),
260
- arg.index.assetToScy(netAssetToReserve)
261
- );
226
+ if (Math.isAApproxB(scyNumerator, ptNumerator, p.eps)) {
227
+ return (guess, netScyOut, netScyFee);
262
228
  }
263
229
 
264
- if (assetNumerator <= ptNumerator) {
230
+ if (scyNumerator <= ptNumerator) {
265
231
  // needs more asset --> swap more PT
266
232
  p.guessMin = guess + 1;
267
233
  } else {
@@ -269,20 +235,20 @@ library MarketApproxPtInLib {
269
235
  p.guessMax = guess - 1;
270
236
  }
271
237
  }
272
- revert("approx fail");
238
+ revert Errors.ApproxFail();
273
239
  }
274
240
 
275
241
  struct Args7 {
276
242
  MarketState market;
277
243
  PYIndex index;
278
- uint256 maxPtIn;
244
+ uint256 exactPtIn;
279
245
  uint256 blockTime;
280
246
  }
281
247
 
282
248
  function approxSwapExactPtForYt(
283
249
  MarketState memory _market,
284
250
  PYIndex _index,
285
- uint256 _maxPtIn,
251
+ uint256 _exactPtIn,
286
252
  uint256 _blockTime,
287
253
  ApproxParams memory _approx // approx for totalPtToSwap
288
254
  )
@@ -290,71 +256,71 @@ library MarketApproxPtInLib {
290
256
  pure
291
257
  returns (
292
258
  uint256, /*netYtOut*/
293
- uint256, /*netPtIn*/
294
259
  uint256, /*totalPtToSwap*/
295
- uint256 /*netScyToReserve*/
260
+ uint256 /*netScyFee*/
296
261
  )
297
262
  {
298
- Args7 memory arg = Args7(_market, _index, _maxPtIn, _blockTime);
263
+ Args7 memory a = Args7(_market, _index, _exactPtIn, _blockTime);
299
264
 
300
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
301
- ApproxParamsPtIn memory p = newApproxParamsPtIn(_approx, comp.totalAsset);
302
-
303
- p.guessMin = Math.max(p.guessMin, arg.maxPtIn);
265
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
266
+ ApproxParamsPtIn memory p = newApproxParamsPtIn(
267
+ _approx,
268
+ a.exactPtIn,
269
+ calcMaxPtIn(comp.totalAsset)
270
+ );
304
271
 
305
272
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
306
- (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, arg.market.totalPt, iter);
273
+ (bool isGoodSlope, uint256 guess) = nextGuess(p, comp, a.market.totalPt, iter);
307
274
 
308
275
  if (!isGoodSlope) {
309
276
  p.guessMax = guess;
310
277
  continue;
311
278
  }
312
279
 
313
- (uint256 netAssetOut, uint256 netAssetToReserve) = calcAssetOut(
314
- arg.market,
315
- comp,
316
- guess
317
- );
280
+ (uint256 netScyOut, uint256 netScyFee) = calcScyOut(a.market, comp, a.index, guess);
318
281
 
319
- uint256 netPtPayable = netAssetOut + arg.maxPtIn;
320
- if (guess <= netPtPayable) {
282
+ uint256 netAssetOut = a.index.scyToAsset(netScyOut);
283
+
284
+ uint256 maxPtPayable = netAssetOut + a.exactPtIn;
285
+ if (guess <= maxPtPayable) {
321
286
  p.guessMin = guess;
322
- uint256 netPtIn = guess - netAssetOut; // guess >= netAssetOut (market invariant)
323
- if (Math.isASmallerApproxB(netPtIn, arg.maxPtIn, p.eps)) {
324
- return (netAssetOut, netPtIn, guess, arg.index.assetToScy(netAssetToReserve));
287
+ if (Math.isASmallerApproxB(guess, maxPtPayable, p.eps)) {
288
+ return (netAssetOut, guess, netScyFee);
325
289
  }
326
290
  } else {
327
291
  p.guessMax = guess - 1;
328
292
  }
329
293
  }
330
- revert("approx fail");
294
+ revert Errors.ApproxFail();
331
295
  }
332
296
 
333
297
  ////////////////////////////////////////////////////////////////////////////////
334
298
 
335
- function calcAssetOut(
299
+ function calcScyOut(
336
300
  MarketState memory market,
337
301
  MarketPreCompute memory comp,
302
+ PYIndex index,
338
303
  uint256 netPtIn
339
- ) internal pure returns (uint256 netAssetOut, uint256 netAssetToReserve) {
340
- (int256 assetToAccount, int256 assetToReserve) = market.calcTrade(comp, netPtIn.neg());
341
-
342
- netAssetOut = assetToAccount.Uint();
343
- netAssetToReserve = assetToReserve.Uint();
304
+ ) internal pure returns (uint256 netScyOut, uint256 netScyFee) {
305
+ (int256 _netScyOut, int256 _netScyFee) = market.calcTrade(comp, index, netPtIn.neg());
306
+ netScyOut = _netScyOut.Uint();
307
+ netScyFee = _netScyFee.Uint();
344
308
  }
345
309
 
346
- function newApproxParamsPtIn(ApproxParams memory _approx, int256 totalAsset)
347
- internal
348
- pure
349
- returns (ApproxParamsPtIn memory res)
350
- {
351
- res.guessMin = _approx.guessMin;
352
- res.guessMax = Math.min(_approx.guessMax, calcMaxPtIn(totalAsset));
310
+ function newApproxParamsPtIn(
311
+ ApproxParams memory _approx,
312
+ uint256 minGuessMin,
313
+ uint256 maxGuessMax
314
+ ) internal pure returns (ApproxParamsPtIn memory res) {
315
+ res.guessMin = Math.max(_approx.guessMin, minGuessMin);
316
+ res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
317
+
318
+ if (res.guessMin > res.guessMax || _approx.eps > Math.ONE)
319
+ revert Errors.ApproxParamsInvalid(_approx.guessMin, _approx.guessMax, _approx.eps);
320
+
353
321
  res.guessOffchain = _approx.guessOffchain;
354
322
  res.maxIteration = _approx.maxIteration;
355
323
  res.eps = _approx.eps;
356
-
357
- require(res.guessMin <= res.guessMax && res.eps <= Math.ONE, "invalid approx params");
358
324
  }
359
325
 
360
326
  function calcMaxPtIn(int256 totalAsset) internal pure returns (uint256) {
@@ -377,14 +343,18 @@ library MarketApproxPtInLib {
377
343
  return (true, guess);
378
344
  }
379
345
 
346
+ /**
347
+ * @dev it is safe to assume that p.guessMin <= p.guessMax from the initialization of p
348
+ * So once guessMin becomes larger, it should always be the case of ApproxFail
349
+ */
380
350
  function _nextGuessPrivate(ApproxParamsPtIn memory p, uint256 iter)
381
351
  private
382
352
  pure
383
353
  returns (uint256)
384
354
  {
385
355
  if (iter == 0 && p.guessOffchain != 0) return p.guessOffchain;
386
- else if (p.guessMin > p.guessMax) return p.guessMax;
387
- else return (p.guessMin + p.guessMax) / 2;
356
+ if (p.guessMin <= p.guessMax) return (p.guessMin + p.guessMax) / 2;
357
+ revert Errors.ApproxFail();
388
358
  }
389
359
 
390
360
  function calcSlope(
@@ -426,14 +396,14 @@ library MarketApproxPtOutLib {
426
396
  struct Args4 {
427
397
  MarketState market;
428
398
  PYIndex index;
429
- uint256 maxScyIn;
399
+ uint256 exactScyIn;
430
400
  uint256 blockTime;
431
401
  }
432
402
 
433
403
  function approxSwapExactScyForPt(
434
404
  MarketState memory _market,
435
405
  PYIndex _index,
436
- uint256 _maxScyIn,
406
+ uint256 _exactScyIn,
437
407
  uint256 _blockTime,
438
408
  ApproxParams memory _approx
439
409
  )
@@ -441,41 +411,38 @@ library MarketApproxPtOutLib {
441
411
  pure
442
412
  returns (
443
413
  uint256, /*netPtOut*/
444
- uint256, /*netScyIn*/
445
- uint256 /*netScyToReserve*/
414
+ uint256 /*netScyFee*/
446
415
  )
447
416
  {
448
417
  /*
449
418
  1. Binary search netPtOut
450
419
  2. Calc netScyIn to swap to receive netPtOut
451
- 2. If netScyIn < maxScyIn && netScyIn ~ maxScyIn => answer found
420
+ 2. If netScyIn < exactScyIn && netScyIn ~ exactScyIn => answer found
452
421
  */
453
422
 
454
- Args4 memory arg = Args4(_market, _index, _maxScyIn, _blockTime);
455
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
456
- ApproxParamsPtOut memory p = newApproxParamsPtOut(_approx, comp, arg.market.totalPt);
457
-
458
- uint256 maxAssetIn = arg.index.scyToAsset(arg.maxScyIn);
423
+ Args4 memory a = Args4(_market, _index, _exactScyIn, _blockTime);
424
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
425
+ ApproxParamsPtOut memory p = newApproxParamsPtOut(
426
+ _approx,
427
+ 0,
428
+ calcMaxPtOut(comp, a.market.totalPt)
429
+ );
459
430
 
460
431
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
461
432
  uint256 guess = nextGuess(p, iter);
462
433
 
463
- (uint256 netAssetIn, uint256 netAssetToReserve) = calcAssetIn(arg.market, comp, guess);
434
+ (uint256 netScyIn, uint256 netScyFee) = calcScyIn(a.market, comp, a.index, guess);
464
435
 
465
- if (netAssetIn <= maxAssetIn) {
436
+ if (netScyIn <= a.exactScyIn) {
466
437
  p.guessMin = guess;
467
- bool isAnswerAccepted = Math.isASmallerApproxB(netAssetIn, maxAssetIn, p.eps);
468
- if (isAnswerAccepted)
469
- return (
470
- guess,
471
- arg.index.assetToScy(netAssetIn),
472
- arg.index.assetToScy(netAssetToReserve)
473
- );
438
+ bool isAnswerAccepted = Math.isASmallerApproxB(netScyIn, a.exactScyIn, p.eps);
439
+ if (isAnswerAccepted) return (guess, netScyFee);
474
440
  } else {
475
441
  p.guessMax = guess - 1;
476
442
  }
477
443
  }
478
- revert("approx fail");
444
+
445
+ revert Errors.ApproxFail();
479
446
  }
480
447
 
481
448
  struct Args5 {
@@ -497,7 +464,7 @@ library MarketApproxPtOutLib {
497
464
  returns (
498
465
  uint256, /*netYtIn*/
499
466
  uint256, /*netScyOut*/
500
- uint256 /*netScyToReserve*/
467
+ uint256 /*netScyFee*/
501
468
  )
502
469
  {
503
470
  /*
@@ -508,37 +475,32 @@ library MarketApproxPtOutLib {
508
475
  5. If netScyOut > minScyOut && netScyOut ~ minScyOut => answer found
509
476
  */
510
477
 
511
- Args5 memory arg = Args5(_market, _index, _minScyOut, _blockTime);
512
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
513
- ApproxParamsPtOut memory p = newApproxParamsPtOut(_approx, comp, arg.market.totalPt);
514
-
515
- uint256 minAssetOut = arg.index.scyToAssetUp(arg.minScyOut);
478
+ Args5 memory a = Args5(_market, _index, _minScyOut, _blockTime);
479
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
480
+ ApproxParamsPtOut memory p = newApproxParamsPtOut(
481
+ _approx,
482
+ 0,
483
+ calcMaxPtOut(comp, a.market.totalPt)
484
+ );
516
485
 
517
486
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
518
487
  uint256 guess = nextGuess(p, iter);
519
488
 
520
- (uint256 netAssetOwed, uint256 netAssetToReserve) = calcAssetIn(
521
- arg.market,
522
- comp,
523
- guess
524
- );
489
+ (uint256 netScyOwed, uint256 netScyFee) = calcScyIn(a.market, comp, a.index, guess);
525
490
 
526
- uint256 netAssetOut = guess - netAssetOwed;
491
+ uint256 netAssetToRepay = a.index.scyToAssetUp(netScyOwed);
492
+ uint256 netScyOut = a.index.assetToScy(guess - netAssetToRepay);
527
493
 
528
- if (netAssetOut >= minAssetOut) {
494
+ if (netScyOut >= a.minScyOut) {
529
495
  p.guessMax = guess;
530
- if (Math.isAGreaterApproxB(netAssetOut, minAssetOut, p.eps)) {
531
- return (
532
- guess,
533
- arg.index.assetToScy(netAssetOut),
534
- arg.index.assetToScy(netAssetToReserve)
535
- );
496
+ if (Math.isAGreaterApproxB(netScyOut, a.minScyOut, p.eps)) {
497
+ return (guess, netScyOut, netScyFee);
536
498
  }
537
499
  } else {
538
500
  p.guessMin = guess + 1;
539
501
  }
540
502
  }
541
- revert("approx fail");
503
+ revert Errors.ApproxFail();
542
504
  }
543
505
 
544
506
  struct Args6 {
@@ -560,7 +522,7 @@ library MarketApproxPtOutLib {
560
522
  returns (
561
523
  uint256, /*netPtFromSwap*/
562
524
  uint256, /*netScySwap*/
563
- uint256 /*netScyToReserve*/
525
+ uint256 /*netScyFee*/
564
526
  )
565
527
  {
566
528
  /*
@@ -573,50 +535,48 @@ library MarketApproxPtOutLib {
573
535
  Note that market maintains PT/SCY ratio, but here PT/asset is used instead
574
536
  */
575
537
 
576
- Args6 memory arg = Args6(_market, _index, _totalScyIn, _blockTime);
577
- require(arg.market.totalLp != 0, "no existing lp");
538
+ Args6 memory a = Args6(_market, _index, _totalScyIn, _blockTime);
539
+ require(a.market.totalLp != 0, "no existing lp");
578
540
 
579
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
580
- ApproxParamsPtOut memory p = newApproxParamsPtOut(_approx, comp, arg.market.totalPt);
581
-
582
- uint256 totalAssetIn = arg.index.scyToAsset(arg.totalScyIn);
541
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
542
+ ApproxParamsPtOut memory p = newApproxParamsPtOut(
543
+ _approx,
544
+ 0,
545
+ calcMaxPtOut(comp, a.market.totalPt)
546
+ );
583
547
 
584
548
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
585
549
  uint256 guess = nextGuess(p, iter);
586
550
 
587
- (uint256 netAssetIn, uint256 netAssetToReserve) = calcAssetIn(arg.market, comp, guess);
551
+ (uint256 netScyIn, uint256 netScyFee) = calcScyIn(a.market, comp, a.index, guess);
588
552
 
589
- if (netAssetIn > totalAssetIn) {
553
+ if (netScyIn > a.totalScyIn) {
590
554
  p.guessMax = guess - 1;
591
555
  continue;
592
556
  }
593
557
 
558
+ uint256 scyNumerator;
594
559
  uint256 ptNumerator;
595
- uint256 assetNumerator;
596
560
 
597
561
  {
598
- uint256 netAssetRemaining = totalAssetIn - netAssetIn;
599
- uint256 newTotalPt = arg.market.totalPt.Uint() - guess;
600
- uint256 newTotalAsset = comp.totalAsset.Uint() + netAssetIn - netAssetToReserve;
562
+ uint256 netScyRemaining = a.totalScyIn - netScyIn;
563
+ uint256 newTotalPt = a.market.totalPt.Uint() - guess;
564
+ uint256 netTotalScy = comp.totalAsset.Uint() + netScyIn - netScyFee;
601
565
 
602
566
  // it is desired that
603
- // guess / newTotalPt = netAssetRemaining / newTotalAsset
567
+ // guess / newTotalPt = netScyRemaining / netTotalScy
604
568
  // which is equivalent to
605
- // guess * newTotalAsset = netAssetRemaining * newTotalPt
569
+ // guess * netTotalScy = netScyRemaining * newTotalPt
606
570
 
607
- ptNumerator = guess * newTotalAsset;
608
- assetNumerator = netAssetRemaining * newTotalPt;
571
+ ptNumerator = guess * netTotalScy;
572
+ scyNumerator = netScyRemaining * newTotalPt;
609
573
  }
610
574
 
611
- if (Math.isAApproxB(ptNumerator, assetNumerator, p.eps)) {
612
- return (
613
- guess,
614
- arg.index.assetToScy(netAssetIn),
615
- arg.index.assetToScy(netAssetToReserve)
616
- );
575
+ if (Math.isAApproxB(ptNumerator, scyNumerator, p.eps)) {
576
+ return (guess, netScyIn, netScyFee);
617
577
  }
618
578
 
619
- if (ptNumerator <= assetNumerator) {
579
+ if (ptNumerator <= scyNumerator) {
620
580
  // needs more PT
621
581
  p.guessMin = guess + 1;
622
582
  } else {
@@ -624,21 +584,21 @@ library MarketApproxPtOutLib {
624
584
  p.guessMax = guess - 1;
625
585
  }
626
586
  }
627
- revert("approx fail");
587
+ revert Errors.ApproxFail();
628
588
  }
629
589
 
630
590
  struct Args8 {
631
591
  MarketState market;
632
592
  PYIndex index;
633
- uint256 maxYtIn;
593
+ uint256 exactYtIn;
634
594
  uint256 blockTime;
635
- uint256 maxScyRedeemableFromPY;
595
+ uint256 maxScyPayable;
636
596
  }
637
597
 
638
598
  function approxSwapExactYtForPt(
639
599
  MarketState memory _market,
640
600
  PYIndex _index,
641
- uint256 _maxYtIn,
601
+ uint256 _exactYtIn,
642
602
  uint256 _blockTime,
643
603
  ApproxParams memory _approx
644
604
  )
@@ -646,71 +606,69 @@ library MarketApproxPtOutLib {
646
606
  pure
647
607
  returns (
648
608
  uint256, /*netPtOut*/
649
- uint256, /*netYtIn*/
650
609
  uint256, /*totalPtSwapped*/
651
- uint256 /*netScyToReserve*/
610
+ uint256 /*netScyFee*/
652
611
  )
653
612
  {
654
- Args8 memory arg = Args8(
613
+ Args8 memory a = Args8(
655
614
  _market,
656
615
  _index,
657
- _maxYtIn,
616
+ _exactYtIn,
658
617
  _blockTime,
659
- _index.assetToScy(_maxYtIn)
618
+ _index.assetToScy(_exactYtIn)
619
+ );
620
+ MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
621
+ ApproxParamsPtOut memory p = newApproxParamsPtOut(
622
+ _approx,
623
+ a.exactYtIn,
624
+ calcMaxPtOut(comp, a.market.totalPt)
660
625
  );
661
- MarketPreCompute memory comp = arg.market.getMarketPreCompute(arg.index, arg.blockTime);
662
- ApproxParamsPtOut memory p = newApproxParamsPtOut(_approx, comp, arg.market.totalPt);
663
-
664
- p.guessMin = Math.max(p.guessMin, arg.maxYtIn);
665
626
 
666
627
  for (uint256 iter = 0; iter < p.maxIteration; ++iter) {
667
628
  uint256 guess = nextGuess(p, iter);
668
629
 
669
- (uint256 netAssetIn, uint256 netAssetToReserve) = calcAssetIn(arg.market, comp, guess);
670
- uint256 netScyIn = arg.index.assetToScyUp(netAssetIn);
630
+ (uint256 netScyOwed, uint256 netScyFee) = calcScyIn(a.market, comp, a.index, guess);
671
631
 
672
- if (netScyIn <= arg.maxScyRedeemableFromPY) {
632
+ if (netScyOwed <= a.maxScyPayable) {
673
633
  p.guessMin = guess;
674
- if (Math.isASmallerApproxB(netAssetIn, arg.maxYtIn, p.eps)) {
675
- return (
676
- guess - arg.maxYtIn,
677
- arg.maxYtIn,
678
- guess,
679
- arg.index.assetToScy(netAssetToReserve)
680
- );
634
+ if (Math.isASmallerApproxB(netScyOwed, a.maxScyPayable, p.eps)) {
635
+ return (guess - a.exactYtIn, guess, netScyFee);
681
636
  }
682
637
  } else {
683
638
  p.guessMax = guess - 1;
684
639
  }
685
640
  }
686
- revert("approx fail");
641
+ revert Errors.ApproxFail();
687
642
  }
688
643
 
689
644
  ////////////////////////////////////////////////////////////////////////////////
690
645
 
691
- function calcAssetIn(
646
+ function calcScyIn(
692
647
  MarketState memory market,
693
648
  MarketPreCompute memory comp,
649
+ PYIndex index,
694
650
  uint256 netPtOut
695
- ) internal pure returns (uint256 netAssetIn, uint256 netAssetToReserve) {
696
- (int256 assetToAccount, int256 assetToReserve) = market.calcTrade(comp, netPtOut.Int());
651
+ ) internal pure returns (uint256 netScyIn, uint256 netScyFee) {
652
+ (int256 _netScyIn, int256 _netScyFee) = market.calcTrade(comp, index, netPtOut.Int());
697
653
 
698
- netAssetIn = assetToAccount.abs();
699
- netAssetToReserve = assetToReserve.Uint();
654
+ netScyIn = _netScyIn.abs();
655
+ netScyFee = _netScyFee.Uint();
700
656
  }
701
657
 
702
658
  function newApproxParamsPtOut(
703
659
  ApproxParams memory _approx,
704
- MarketPreCompute memory comp,
705
- int256 totalPt
660
+ uint256 minGuessMin,
661
+ uint256 maxGuessMax
706
662
  ) internal pure returns (ApproxParamsPtOut memory res) {
707
- res.guessMin = _approx.guessMin;
708
- res.guessMax = Math.min(_approx.guessMax, calcMaxPtOut(comp, totalPt));
663
+ res.guessMin = Math.max(_approx.guessMin, minGuessMin);
664
+ res.guessMax = Math.min(_approx.guessMax, maxGuessMax);
665
+
666
+ if (res.guessMin > res.guessMax || _approx.eps > Math.ONE)
667
+ revert Errors.ApproxParamsInvalid(_approx.guessMin, _approx.guessMax, _approx.eps);
668
+
709
669
  res.guessOffchain = _approx.guessOffchain;
710
670
  res.maxIteration = _approx.maxIteration;
711
671
  res.eps = _approx.eps;
712
-
713
- require(res.guessMin <= res.guessMax && res.eps <= Math.ONE, "invalid approx params");
714
672
  }
715
673
 
716
674
  function calcMaxPtOut(MarketPreCompute memory comp, int256 totalPt)
@@ -726,9 +684,13 @@ library MarketApproxPtOutLib {
726
684
  return (maxPtOut.Uint() * 999) / 1000;
727
685
  }
728
686
 
687
+ /**
688
+ * @dev it is safe to assume that p.guessMin <= p.guessMax from the initialization of p
689
+ * So once guessMin becomes larger, it should always be the case of ApproxFail
690
+ */
729
691
  function nextGuess(ApproxParamsPtOut memory p, uint256 iter) private pure returns (uint256) {
730
692
  if (iter == 0 && p.guessOffchain != 0) return p.guessOffchain;
731
- else if (p.guessMin > p.guessMax) return p.guessMax;
732
- else return (p.guessMin + p.guessMax) / 2;
693
+ if (p.guessMin <= p.guessMax) return (p.guessMin + p.guessMax) / 2;
694
+ revert Errors.ApproxFail();
733
695
  }
734
696
  }