@pendle/core-v2 0.9.0-gamma-2 → 0.9.3-beta

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 (487) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +2 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +1 -1
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +2 -2
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +2 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +2 -2
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +2 -2
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +2 -2
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +2 -2
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +2 -2
  19. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
  20. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +2 -2
  21. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +1 -1
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +2 -2
  23. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  32. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  45. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  48. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  52. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  54. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  56. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +185 -6
  58. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +2 -2
  60. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +183 -4
  76. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +183 -4
  79. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2 -2
  90. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  110. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  111. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  112. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  113. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  114. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  115. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  116. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  117. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  118. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  119. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  120. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  121. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.json +2 -2
  122. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  123. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  124. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  125. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  126. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  127. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  128. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  129. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  130. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  131. package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
  132. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  133. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  134. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  135. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +105 -37
  136. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  137. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +1 -1
  138. package/contracts/core/PendleRouter.sol +4 -2
  139. package/contracts/core/actions/ActionCore.sol +71 -8
  140. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +71 -14
  141. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +1 -1
  142. package/contracts/interfaces/IPActionCore.sol +46 -4
  143. package/contracts/interfaces/IPRouterStatic.sol +2 -2
  144. package/contracts/libraries/math/Math.sol +4 -0
  145. package/contracts/offchain-helpers/RouterStatic.sol +47 -2
  146. package/deployments/43113-core.json +1 -1
  147. package/package.json +1 -1
  148. package/typechain-types/ActionCore.ts +224 -32
  149. package/typechain-types/FeeDistributorAbstract.ts +164 -0
  150. package/typechain-types/IPActionCore.ts +224 -32
  151. package/typechain-types/IPAllAction.ts +224 -32
  152. package/typechain-types/IPRouterStatic.ts +16 -16
  153. package/typechain-types/IPVotingControllerStorage.ts +169 -0
  154. package/typechain-types/{PendleYearnVaultScy.ts → PendleYearnVaultSCY.ts} +0 -0
  155. package/typechain-types/RouterStatic.ts +190 -95
  156. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  157. package/typechain-types/factories/ActionCore__factory.ts +184 -5
  158. package/typechain-types/factories/ActionYT__factory.ts +1 -1
  159. package/typechain-types/factories/{VotingEscrowController__factory.ts → FeeDistributorAbstract__factory.ts} +33 -23
  160. package/typechain-types/factories/IPActionCore__factory.ts +183 -4
  161. package/typechain-types/factories/IPAllAction__factory.ts +183 -4
  162. package/typechain-types/factories/IPRouterStatic__factory.ts +2 -2
  163. package/typechain-types/factories/IPVotingControllerStorage__factory.ts +107 -0
  164. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  165. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  166. package/typechain-types/factories/PendleEulerSCY__factory.ts +1 -1
  167. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  168. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  169. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  170. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  171. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +1 -1
  172. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  173. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  174. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +1 -1
  175. package/typechain-types/factories/PendleSJoeSCY__factory.ts +1 -1
  176. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  177. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  178. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  179. package/typechain-types/factories/{PendleYearnVaultScy__factory.ts → PendleYearnVaultSCY__factory.ts} +1 -1
  180. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  181. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  182. package/typechain-types/factories/RouterStatic__factory.ts +102 -34
  183. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  184. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  185. package/typechain-types/hardhat.d.ts +0 -54
  186. package/typechain-types/index.ts +0 -12
  187. package/typechain-types/ActionRedeem.ts +0 -125
  188. package/typechain-types/ActionSCYAndYOBase.ts +0 -223
  189. package/typechain-types/AggregatorV2V3Interface.ts +0 -380
  190. package/typechain-types/BenqiChainlinkOracle.ts +0 -362
  191. package/typechain-types/BoringOwnable.ts +0 -194
  192. package/typechain-types/BoringOwnableData.ts +0 -100
  193. package/typechain-types/BoringOwnableUpg.ts +0 -194
  194. package/typechain-types/BoringOwnableUpgData.ts +0 -100
  195. package/typechain-types/CelerReceiver.ts +0 -267
  196. package/typechain-types/CelerSender.ts +0 -197
  197. package/typechain-types/Comptroller.ts +0 -2860
  198. package/typechain-types/ComptrollerErrorReporter.ts +0 -70
  199. package/typechain-types/ComptrollerInterface.ts +0 -881
  200. package/typechain-types/ComptrollerVXStorage.ts +0 -781
  201. package/typechain-types/CrosschainContract.ts +0 -113
  202. package/typechain-types/CrosschainReceiver.ts +0 -347
  203. package/typechain-types/CrosschainSender.ts +0 -210
  204. package/typechain-types/EIP20Interface.ts +0 -337
  205. package/typechain-types/EIP20NonStandardInterface.ts +0 -298
  206. package/typechain-types/ERC20Burnable.ts +0 -473
  207. package/typechain-types/ERC20Locker.ts +0 -91
  208. package/typechain-types/ERC20Permit.ts +0 -521
  209. package/typechain-types/ERC20Premined.ts +0 -473
  210. package/typechain-types/ERC20PresetFixedSupply.ts +0 -473
  211. package/typechain-types/EpochController.ts +0 -195
  212. package/typechain-types/FundKeeper.ts +0 -347
  213. package/typechain-types/GaugeTypeControllerAbstract.ts +0 -546
  214. package/typechain-types/GaugeTypeControllerCrosschain.ts +0 -733
  215. package/typechain-types/GaugeTypeControllerMainchain.ts +0 -604
  216. package/typechain-types/IERC20Permit.ts +0 -175
  217. package/typechain-types/IGaugeController.ts +0 -99
  218. package/typechain-types/IJoePair.ts +0 -888
  219. package/typechain-types/IJoeRouter01.ts +0 -1107
  220. package/typechain-types/IJoeRouter02.ts +0 -1420
  221. package/typechain-types/ILiquidYieldToken.ts +0 -639
  222. package/typechain-types/ILiquidYieldTokenWrap.ts +0 -790
  223. package/typechain-types/IMessageBus.ts +0 -543
  224. package/typechain-types/IMessageReceiverApp.ts +0 -110
  225. package/typechain-types/IPActionRedeem.ts +0 -125
  226. package/typechain-types/IPActionSCYAndPY.ts +0 -183
  227. package/typechain-types/IPBaseToken.ts +0 -365
  228. package/typechain-types/IPFlashCallback.ts +0 -115
  229. package/typechain-types/IPGauge.ts +0 -212
  230. package/typechain-types/IPLiquidYieldToken.ts +0 -641
  231. package/typechain-types/IPMarketAddRemoveCallback.ts +0 -169
  232. package/typechain-types/IPMarketCallback.ts +0 -107
  233. package/typechain-types/IPOwnershipToken.ts +0 -488
  234. package/typechain-types/IPRouterCore.ts +0 -769
  235. package/typechain-types/IPRouterRedeem.ts +0 -155
  236. package/typechain-types/IPRouterYT.ts +0 -489
  237. package/typechain-types/IPVotingEscrowController.ts +0 -154
  238. package/typechain-types/IPendleGauge.ts +0 -241
  239. package/typechain-types/IPermissionsV2.ts +0 -87
  240. package/typechain-types/IRainbowBridge.ts +0 -91
  241. package/typechain-types/ISCYRewardIndex.ts +0 -695
  242. package/typechain-types/IVEPendleToken.ts +0 -121
  243. package/typechain-types/IVePToken.ts +0 -103
  244. package/typechain-types/IVotingEscrowPendle.ts +0 -297
  245. package/typechain-types/IXPendle.ts +0 -114
  246. package/typechain-types/InterestRateModel.ts +0 -178
  247. package/typechain-types/JumpRateModel.ts +0 -347
  248. package/typechain-types/LYTBase.ts +0 -721
  249. package/typechain-types/LYTBaseWithRewards.ts +0 -806
  250. package/typechain-types/LYTWrap.ts +0 -872
  251. package/typechain-types/LYTWrapWithRewards.ts +0 -979
  252. package/typechain-types/LiquidityMining.ts +0 -468
  253. package/typechain-types/Maximillion.ts +0 -145
  254. package/typechain-types/Ownable.ts +0 -160
  255. package/typechain-types/PendleAaveV3LYT.ts +0 -808
  256. package/typechain-types/PendleBaseToken.ts +0 -475
  257. package/typechain-types/PendleBenQiErc20LYT.ts +0 -901
  258. package/typechain-types/PendleBenQiErc20SCY.ts +0 -1050
  259. package/typechain-types/PendleBenqiLiquidYieldToken.ts +0 -1013
  260. package/typechain-types/PendleBtrflyLYT.ts +0 -781
  261. package/typechain-types/PendleBtrflyScy.ts +0 -822
  262. package/typechain-types/PendleCelerRouter.ts +0 -359
  263. package/typechain-types/PendleERC20Permit.ts +0 -443
  264. package/typechain-types/PendleGaugeController.ts +0 -346
  265. package/typechain-types/PendleGaugeControllerMainchain.ts +0 -410
  266. package/typechain-types/PendleGaugeControllerSidechain.ts +0 -524
  267. package/typechain-types/PendleJoeLpSCY.ts +0 -835
  268. package/typechain-types/PendleJoeSwapHelper.ts +0 -92
  269. package/typechain-types/PendleJoeSwapHelperUpg.ts +0 -84
  270. package/typechain-types/PendleLYTMockYT.ts +0 -894
  271. package/typechain-types/PendleLiquidYieldToken.ts +0 -814
  272. package/typechain-types/PendleLiquidYieldTokenBase.ts +0 -941
  273. package/typechain-types/PendleOwnershipToken.ts +0 -598
  274. package/typechain-types/PendleRouter01.ts +0 -184
  275. package/typechain-types/PendleRouter02.ts +0 -564
  276. package/typechain-types/PendleRouter03.ts +0 -224
  277. package/typechain-types/PendleRouterBase.ts +0 -126
  278. package/typechain-types/PendleRouterCore.ts +0 -328
  279. package/typechain-types/PendleRouterCoreUpg.ts +0 -798
  280. package/typechain-types/PendleRouterLytAndForge.ts +0 -331
  281. package/typechain-types/PendleRouterMarketBase.ts +0 -82
  282. package/typechain-types/PendleRouterOT.ts +0 -463
  283. package/typechain-types/PendleRouterProxy.ts +0 -335
  284. package/typechain-types/PendleRouterRawTokenOT.ts +0 -865
  285. package/typechain-types/PendleRouterRawTokenYT.ts +0 -520
  286. package/typechain-types/PendleRouterRedeemUpg.ts +0 -125
  287. package/typechain-types/PendleRouterSCYAndForgeBaseUpg.ts +0 -98
  288. package/typechain-types/PendleRouterStaticUpg.ts +0 -399
  289. package/typechain-types/PendleRouterYT.ts +0 -227
  290. package/typechain-types/PendleRouterYTBaseUpg.ts +0 -134
  291. package/typechain-types/PendleRouterYTUpg.ts +0 -537
  292. package/typechain-types/PendleStEthSCY.ts +0 -872
  293. package/typechain-types/PendleStargatePool.ts +0 -1135
  294. package/typechain-types/PendleVotingController.ts +0 -983
  295. package/typechain-types/PendleYTLYTBenqi.ts +0 -863
  296. package/typechain-types/PendleYearnVaultLYT.ts +0 -723
  297. package/typechain-types/PermissionsV2.ts +0 -87
  298. package/typechain-types/PermlessAbstract.ts +0 -57
  299. package/typechain-types/PglStakingContract.ts +0 -662
  300. package/typechain-types/PglStakingContractProxy.ts +0 -256
  301. package/typechain-types/PglStakingContractProxyStorage.ts +0 -136
  302. package/typechain-types/PglStakingContractStorage.ts +0 -397
  303. package/typechain-types/PriceOracle.ts +0 -116
  304. package/typechain-types/ProtocolFakeUser.ts +0 -105
  305. package/typechain-types/Qi.ts +0 -760
  306. package/typechain-types/QiAvax.ts +0 -1720
  307. package/typechain-types/QiDelegateInterface.ts +0 -145
  308. package/typechain-types/QiDelegationStorage.ts +0 -82
  309. package/typechain-types/QiDelegatorInterface.ts +0 -149
  310. package/typechain-types/QiErc20.ts +0 -1846
  311. package/typechain-types/QiErc20Delegate.ts +0 -1926
  312. package/typechain-types/QiErc20Delegator.ts +0 -1885
  313. package/typechain-types/QiErc20Interface.ts +0 -382
  314. package/typechain-types/QiErc20Storage.ts +0 -79
  315. package/typechain-types/QiToken.ts +0 -1475
  316. package/typechain-types/QiTokenInterface.ts +0 -1419
  317. package/typechain-types/QiTokenSaleDistributor.ts +0 -771
  318. package/typechain-types/QiTokenSaleDistributorProxy.ts +0 -256
  319. package/typechain-types/QiTokenSaleDistributorProxyStorage.ts +0 -136
  320. package/typechain-types/QiTokenSaleDistributorStorage.ts +0 -401
  321. package/typechain-types/QiTokenStorage.ts +0 -311
  322. package/typechain-types/ReentrancyGuard.ts +0 -52
  323. package/typechain-types/SingleGaugeTypeController.ts +0 -478
  324. package/typechain-types/TokenErrorReporter.ts +0 -70
  325. package/typechain-types/Unitroller.ts +0 -356
  326. package/typechain-types/UnitrollerAdminStorage.ts +0 -143
  327. package/typechain-types/VePendle.ts +0 -1156
  328. package/typechain-types/VePendleCrosschain.ts +0 -969
  329. package/typechain-types/VePendleToken.ts +0 -688
  330. package/typechain-types/VotingController.ts +0 -1004
  331. package/typechain-types/VotingControllerStorage.ts +0 -448
  332. package/typechain-types/VotingEscrowController.ts +0 -154
  333. package/typechain-types/VotingEscrowPendle.ts +0 -752
  334. package/typechain-types/VotingEscrowToken.ts +0 -251
  335. package/typechain-types/WETH9.ts +0 -414
  336. package/typechain-types/WhitePaperInterestRateModel.ts +0 -304
  337. package/typechain-types/XPendle.ts +0 -618
  338. package/typechain-types/factories/ActionRedeem__factory.ts +0 -105
  339. package/typechain-types/factories/ActionSCYAndYOBase__factory.ts +0 -200
  340. package/typechain-types/factories/AggregatorV2V3Interface__factory.ts +0 -288
  341. package/typechain-types/factories/BenqiChainlinkOracle__factory.ts +0 -311
  342. package/typechain-types/factories/BoringOwnableData__factory.ts +0 -90
  343. package/typechain-types/factories/BoringOwnableUpgData__factory.ts +0 -94
  344. package/typechain-types/factories/BoringOwnableUpg__factory.ts +0 -139
  345. package/typechain-types/factories/BoringOwnable__factory.ts +0 -149
  346. package/typechain-types/factories/CelerReceiver__factory.ts +0 -140
  347. package/typechain-types/factories/CelerSender__factory.ts +0 -85
  348. package/typechain-types/factories/ComptrollerErrorReporter__factory.ts +0 -93
  349. package/typechain-types/factories/ComptrollerInterface__factory.ts +0 -595
  350. package/typechain-types/factories/ComptrollerVXStorage__factory.ts +0 -610
  351. package/typechain-types/factories/Comptroller__factory.ts +0 -2189
  352. package/typechain-types/factories/CrosschainContract__factory.ts +0 -52
  353. package/typechain-types/factories/CrosschainReceiver__factory.ts +0 -187
  354. package/typechain-types/factories/CrosschainSender__factory.ts +0 -104
  355. package/typechain-types/factories/EIP20Interface__factory.ts +0 -248
  356. package/typechain-types/factories/EIP20NonStandardInterface__factory.ts +0 -213
  357. package/typechain-types/factories/ERC20Burnable__factory.ts +0 -324
  358. package/typechain-types/factories/ERC20Locker__factory.ts +0 -73
  359. package/typechain-types/factories/ERC20Permit__factory.ts +0 -368
  360. package/typechain-types/factories/ERC20Premined__factory.ts +0 -393
  361. package/typechain-types/factories/ERC20PresetFixedSupply__factory.ts +0 -422
  362. package/typechain-types/factories/EpochController__factory.ts +0 -170
  363. package/typechain-types/factories/FundKeeper__factory.ts +0 -212
  364. package/typechain-types/factories/GaugeTypeControllerAbstract__factory.ts +0 -387
  365. package/typechain-types/factories/GaugeTypeControllerCrosschain__factory.ts +0 -522
  366. package/typechain-types/factories/GaugeTypeControllerMainchain__factory.ts +0 -431
  367. package/typechain-types/factories/IERC20Permit__factory.ts +0 -98
  368. package/typechain-types/factories/IGaugeController__factory.ts +0 -45
  369. package/typechain-types/factories/IJoePair__factory.ts +0 -674
  370. package/typechain-types/factories/IJoeRouter01__factory.ts +0 -772
  371. package/typechain-types/factories/IJoeRouter02__factory.ts +0 -974
  372. package/typechain-types/factories/ILiquidYieldTokenWrap__factory.ts +0 -533
  373. package/typechain-types/factories/ILiquidYieldToken__factory.ts +0 -429
  374. package/typechain-types/factories/IMessageBus__factory.ts +0 -396
  375. package/typechain-types/factories/IMessageReceiverApp__factory.ts +0 -55
  376. package/typechain-types/factories/IPActionRedeem__factory.ts +0 -70
  377. package/typechain-types/factories/IPActionSCYAndPY__factory.ts +0 -174
  378. package/typechain-types/factories/IPBaseToken__factory.ts +0 -271
  379. package/typechain-types/factories/IPFlashCallback__factory.ts +0 -49
  380. package/typechain-types/factories/IPGauge__factory.ts +0 -110
  381. package/typechain-types/factories/IPLiquidYieldToken__factory.ts +0 -433
  382. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +0 -86
  383. package/typechain-types/factories/IPMarketCallback__factory.ts +0 -55
  384. package/typechain-types/factories/IPOwnershipToken__factory.ts +0 -349
  385. package/typechain-types/factories/IPRouterCore__factory.ts +0 -531
  386. package/typechain-types/factories/IPRouterRedeem__factory.ts +0 -72
  387. package/typechain-types/factories/IPRouterYT__factory.ts +0 -305
  388. package/typechain-types/factories/IPVotingEscrowController__factory.ts +0 -80
  389. package/typechain-types/factories/IPendleGauge__factory.ts +0 -125
  390. package/typechain-types/factories/IPermissionsV2__factory.ts +0 -39
  391. package/typechain-types/factories/IRainbowBridge__factory.ts +0 -76
  392. package/typechain-types/factories/ISCYRewardIndex__factory.ts +0 -465
  393. package/typechain-types/factories/IVEPendleToken__factory.ts +0 -71
  394. package/typechain-types/factories/IVePToken__factory.ts +0 -55
  395. package/typechain-types/factories/IVotingEscrowPendle__factory.ts +0 -182
  396. package/typechain-types/factories/IXPendle__factory.ts +0 -61
  397. package/typechain-types/factories/InterestRateModel__factory.ts +0 -108
  398. package/typechain-types/factories/JumpRateModel__factory.ts +0 -334
  399. package/typechain-types/factories/LYTBaseWithRewards__factory.ts +0 -530
  400. package/typechain-types/factories/LYTBase__factory.ts +0 -474
  401. package/typechain-types/factories/LYTWrapWithRewards__factory.ts +0 -643
  402. package/typechain-types/factories/LYTWrap__factory.ts +0 -574
  403. package/typechain-types/factories/LiquidityMining__factory.ts +0 -367
  404. package/typechain-types/factories/Maximillion__factory.ts +0 -125
  405. package/typechain-types/factories/Ownable__factory.ts +0 -75
  406. package/typechain-types/factories/PendleAaveV3LYT__factory.ts +0 -657
  407. package/typechain-types/factories/PendleBaseToken__factory.ts +0 -348
  408. package/typechain-types/factories/PendleBenQiErc20LYT__factory.ts +0 -748
  409. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +0 -871
  410. package/typechain-types/factories/PendleBenqiLiquidYieldToken__factory.ts +0 -785
  411. package/typechain-types/factories/PendleBtrflyLYT__factory.ts +0 -647
  412. package/typechain-types/factories/PendleBtrflyScy__factory.ts +0 -710
  413. package/typechain-types/factories/PendleCelerRouter__factory.ts +0 -259
  414. package/typechain-types/factories/PendleERC20Permit__factory.ts +0 -405
  415. package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +0 -332
  416. package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +0 -391
  417. package/typechain-types/factories/PendleGaugeController__factory.ts +0 -212
  418. package/typechain-types/factories/PendleJoeLpSCY__factory.ts +0 -732
  419. package/typechain-types/factories/PendleJoeSwapHelperUpg__factory.ts +0 -43
  420. package/typechain-types/factories/PendleJoeSwapHelper__factory.ts +0 -52
  421. package/typechain-types/factories/PendleLYTMockYT__factory.ts +0 -732
  422. package/typechain-types/factories/PendleLiquidYieldTokenBase__factory.ts +0 -603
  423. package/typechain-types/factories/PendleLiquidYieldToken__factory.ts +0 -510
  424. package/typechain-types/factories/PendleOwnershipToken__factory.ts +0 -527
  425. package/typechain-types/factories/PendleRouter01__factory.ts +0 -152
  426. package/typechain-types/factories/PendleRouter02__factory.ts +0 -438
  427. package/typechain-types/factories/PendleRouter03__factory.ts +0 -190
  428. package/typechain-types/factories/PendleRouterBase__factory.ts +0 -68
  429. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +0 -635
  430. package/typechain-types/factories/PendleRouterCore__factory.ts +0 -268
  431. package/typechain-types/factories/PendleRouterLytAndForge__factory.ts +0 -294
  432. package/typechain-types/factories/PendleRouterMarketBase__factory.ts +0 -43
  433. package/typechain-types/factories/PendleRouterOT__factory.ts +0 -372
  434. package/typechain-types/factories/PendleRouterProxy__factory.ts +0 -285
  435. package/typechain-types/factories/PendleRouterRawTokenOT__factory.ts +0 -697
  436. package/typechain-types/factories/PendleRouterRawTokenYT__factory.ts +0 -431
  437. package/typechain-types/factories/PendleRouterRedeemUpg__factory.ts +0 -112
  438. package/typechain-types/factories/PendleRouterSCYAndForgeBaseUpg__factory.ts +0 -56
  439. package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +0 -315
  440. package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +0 -66
  441. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +0 -422
  442. package/typechain-types/factories/PendleRouterYT__factory.ts +0 -184
  443. package/typechain-types/factories/PendleStEthSCY__factory.ts +0 -716
  444. package/typechain-types/factories/PendleStargatePool__factory.ts +0 -961
  445. package/typechain-types/factories/PendleVotingController__factory.ts +0 -730
  446. package/typechain-types/factories/PendleYTLYTBenqi__factory.ts +0 -713
  447. package/typechain-types/factories/PendleYearnVaultLYT__factory.ts +0 -586
  448. package/typechain-types/factories/PermissionsV2__factory.ts +0 -36
  449. package/typechain-types/factories/PermlessAbstract__factory.ts +0 -30
  450. package/typechain-types/factories/PglStakingContractProxyStorage__factory.ts +0 -130
  451. package/typechain-types/factories/PglStakingContractProxy__factory.ts +0 -187
  452. package/typechain-types/factories/PglStakingContractStorage__factory.ts +0 -309
  453. package/typechain-types/factories/PglStakingContract__factory.ts +0 -446
  454. package/typechain-types/factories/PriceOracle__factory.ts +0 -59
  455. package/typechain-types/factories/ProtocolFakeUser__factory.ts +0 -87
  456. package/typechain-types/factories/QiAvax__factory.ts +0 -1471
  457. package/typechain-types/factories/QiDelegateInterface__factory.ts +0 -65
  458. package/typechain-types/factories/QiDelegationStorage__factory.ts +0 -79
  459. package/typechain-types/factories/QiDelegatorInterface__factory.ts +0 -89
  460. package/typechain-types/factories/QiErc20Delegate__factory.ts +0 -1563
  461. package/typechain-types/factories/QiErc20Delegator__factory.ts +0 -1648
  462. package/typechain-types/factories/QiErc20Interface__factory.ts +0 -239
  463. package/typechain-types/factories/QiErc20Storage__factory.ts +0 -79
  464. package/typechain-types/factories/QiErc20__factory.ts +0 -1515
  465. package/typechain-types/factories/QiTokenInterface__factory.ts +0 -1182
  466. package/typechain-types/factories/QiTokenSaleDistributorProxyStorage__factory.ts +0 -124
  467. package/typechain-types/factories/QiTokenSaleDistributorProxy__factory.ts +0 -171
  468. package/typechain-types/factories/QiTokenSaleDistributorStorage__factory.ts +0 -289
  469. package/typechain-types/factories/QiTokenSaleDistributor__factory.ts +0 -480
  470. package/typechain-types/factories/QiTokenStorage__factory.ts +0 -274
  471. package/typechain-types/factories/QiToken__factory.ts +0 -1219
  472. package/typechain-types/factories/Qi__factory.ts +0 -648
  473. package/typechain-types/factories/ReentrancyGuard__factory.ts +0 -69
  474. package/typechain-types/factories/SingleGaugeTypeController__factory.ts +0 -341
  475. package/typechain-types/factories/TokenErrorReporter__factory.ts +0 -89
  476. package/typechain-types/factories/UnitrollerAdminStorage__factory.ts +0 -128
  477. package/typechain-types/factories/Unitroller__factory.ts +0 -305
  478. package/typechain-types/factories/VePendleCrosschain__factory.ts +0 -727
  479. package/typechain-types/factories/VePendleToken__factory.ts +0 -494
  480. package/typechain-types/factories/VePendle__factory.ts +0 -800
  481. package/typechain-types/factories/VotingControllerStorage__factory.ts +0 -315
  482. package/typechain-types/factories/VotingController__factory.ts +0 -645
  483. package/typechain-types/factories/VotingEscrowPendle__factory.ts +0 -527
  484. package/typechain-types/factories/VotingEscrowToken__factory.ts +0 -153
  485. package/typechain-types/factories/WETH9__factory.ts +0 -342
  486. package/typechain-types/factories/WhitePaperInterestRateModel__factory.ts +0 -281
  487. package/typechain-types/factories/XPendle__factory.ts +0 -473
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/12e51efac9ec486bc1239cdd2596f524.json"
3
+ "buildInfo": "../../../build-info/66b9e4a73d84ceb078aec43d05a41359.json"
4
4
  }
@@ -70,7 +70,7 @@ contract PendleVotingControllerUpg is
70
70
  address user = msg.sender;
71
71
 
72
72
  require(weights.length == pools.length, "invaid array length");
73
- require(vePendle.balanceOf(user) > 0 || user == _governance(), "zero vependle balance");
73
+ require(vePendle.balanceOf(user) > 0, "zero vependle balance");
74
74
 
75
75
  UserData storage uData = userData[user];
76
76
  LockedPosition memory userPosition = _getUserVePendlePosition(user);
@@ -50,11 +50,13 @@ contract PendleRouter is Proxy, Initializable, UUPSUpgradeable, PermissionsV2Upg
50
50
  sig == IPActionCore.redeemPyToToken.selector ||
51
51
  sig == IPActionCore.mintPyFromScy.selector ||
52
52
  sig == IPActionCore.redeemPyToScy.selector ||
53
- sig == IPActionCore.addLiquidity.selector ||
53
+ sig == IPActionCore.addLiquidityDualScyAndPt.selector ||
54
+ sig == IPActionCore.addLiquidityDualIbTokenAndPt.selector ||
54
55
  sig == IPActionCore.addLiquiditySinglePt.selector ||
55
56
  sig == IPActionCore.addLiquiditySingleScy.selector ||
56
57
  sig == IPActionCore.addLiquiditySingleToken.selector ||
57
- sig == IPActionCore.removeLiquidity.selector ||
58
+ sig == IPActionCore.removeLiquidityDualScyAndPt.selector ||
59
+ sig == IPActionCore.removeLiquidityDualIbTokenAndPt.selector ||
58
60
  sig == IPActionCore.removeLiquiditySinglePt.selector ||
59
61
  sig == IPActionCore.removeLiquiditySingleScy.selector ||
60
62
  sig == IPActionCore.removeLiquiditySingleToken.selector ||
@@ -18,7 +18,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
18
18
  {}
19
19
 
20
20
  /// @dev refer to the internal function
21
- function addLiquidity(
21
+ function addLiquidityDualScyAndPt(
22
22
  address receiver,
23
23
  address market,
24
24
  uint256 scyDesired,
@@ -32,7 +32,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
32
32
  uint256 ptUsed
33
33
  )
34
34
  {
35
- (netLpOut, scyUsed, ptUsed) = _addLiquidity(
35
+ (netLpOut, scyUsed, ptUsed) = _addLiquidityDualScyAndPt(
36
36
  receiver,
37
37
  market,
38
38
  scyDesired,
@@ -40,7 +40,39 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
40
40
  minLpOut,
41
41
  true
42
42
  );
43
- emit AddLiquidity(msg.sender, market, receiver, scyUsed, ptUsed, netLpOut);
43
+ emit AddLiquidityDualScyAndPt(msg.sender, market, receiver, scyUsed, ptUsed, netLpOut);
44
+ }
45
+
46
+ /// @dev refer to the internal function
47
+ function addLiquidityDualIbTokenAndPt(
48
+ address receiver,
49
+ address market,
50
+ uint256 ibTokenDesired,
51
+ uint256 ptDesired,
52
+ uint256 minLpOut
53
+ )
54
+ external
55
+ returns (
56
+ uint256 netLpOut,
57
+ uint256 ibTokenUsed,
58
+ uint256 ptUsed
59
+ )
60
+ {
61
+ (netLpOut, ibTokenUsed, ptUsed) = _addLiquidityDualIbTokenAndPt(
62
+ receiver,
63
+ market,
64
+ ibTokenDesired,
65
+ ptDesired,
66
+ minLpOut
67
+ );
68
+ emit AddLiquidityDualIbTokenAndPt(
69
+ msg.sender,
70
+ market,
71
+ receiver,
72
+ ibTokenDesired,
73
+ ptUsed,
74
+ netLpOut
75
+ );
44
76
  }
45
77
 
46
78
  function addLiquiditySinglePt(
@@ -74,22 +106,53 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
74
106
  }
75
107
 
76
108
  /// @dev refer to the internal function
77
- function removeLiquidity(
109
+ function removeLiquidityDualScyAndPt(
78
110
  address receiver,
79
111
  address market,
80
112
  uint256 lpToRemove,
81
113
  uint256 scyOutMin,
82
114
  uint256 ptOutMin
83
115
  ) external returns (uint256 netScyOut, uint256 netPtOut) {
84
- (netScyOut, netPtOut) = _removeLiquidity(
116
+ (netScyOut, netPtOut) = _removeLiquidityDualScyAndPt(
85
117
  receiver,
86
118
  market,
87
119
  lpToRemove,
88
120
  scyOutMin,
89
- ptOutMin,
90
- true
121
+ ptOutMin
122
+ );
123
+ emit RemoveLiquidityDualScyAndPt(
124
+ msg.sender,
125
+ market,
126
+ receiver,
127
+ lpToRemove,
128
+ netPtOut,
129
+ netScyOut
130
+ );
131
+ }
132
+
133
+ /// @dev refer to the internal function
134
+ function removeLiquidityDualIbTokenAndPt(
135
+ address receiver,
136
+ address market,
137
+ uint256 lpToRemove,
138
+ uint256 ibTokenMin,
139
+ uint256 ptOutMin
140
+ ) external returns (uint256 netIbTokenOut, uint256 netPtOut) {
141
+ (netIbTokenOut, netPtOut) = _removeLiquidityDualIbTokenAndPt(
142
+ receiver,
143
+ market,
144
+ lpToRemove,
145
+ ibTokenMin,
146
+ ptOutMin
147
+ );
148
+ emit RemoveLiquidityDualIbTokenAndPt(
149
+ msg.sender,
150
+ market,
151
+ receiver,
152
+ lpToRemove,
153
+ netPtOut,
154
+ netIbTokenOut
91
155
  );
92
- emit RemoveLiquidity(msg.sender, market, receiver, lpToRemove, netPtOut, netScyOut);
93
156
  }
94
157
 
95
158
  function removeLiquiditySinglePt(
@@ -23,7 +23,7 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
23
23
  /// @dev For doPull: if doPull is true, this function will do transferFrom as necessary from msg.sender. Else, it will
24
24
  /// assume tokens have already been transferred in.
25
25
 
26
- function _addLiquidity(
26
+ function _addLiquidityDualScyAndPt(
27
27
  address receiver,
28
28
  address market,
29
29
  uint256 scyDesired,
@@ -63,31 +63,88 @@ abstract contract ActionSCYAndPTBase is ActionSCYAndPYBase {
63
63
  require(netLpOut >= minLpOut, "FS insufficient lp out");
64
64
  }
65
65
 
66
- function _removeLiquidity(
66
+ function _addLiquidityDualIbTokenAndPt(
67
+ address receiver,
68
+ address market,
69
+ uint256 ibTokenDesired,
70
+ uint256 ptDesired,
71
+ uint256 minLpOut
72
+ )
73
+ internal
74
+ returns (
75
+ uint256 netLpOut,
76
+ uint256 ibTokenUsed,
77
+ uint256 ptUsed
78
+ )
79
+ {
80
+ (ISuperComposableYield SCY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market)
81
+ .readTokens();
82
+
83
+ address ibToken = SCY.yieldToken();
84
+ uint256 scyDesired = SCY.previewDeposit(ibToken, ibTokenDesired);
85
+ uint256 scyUsed;
86
+
87
+ {
88
+ MarketState memory state = IPMarket(market).readState(false);
89
+ (, netLpOut, scyUsed, ptUsed) = state.addLiquidity(
90
+ YT.newIndex(),
91
+ scyDesired,
92
+ ptDesired,
93
+ block.timestamp
94
+ );
95
+ }
96
+
97
+ // early-check
98
+ require(netLpOut >= minLpOut, "insufficient lp out");
99
+
100
+ IERC20(PT).safeTransferFrom(msg.sender, market, ptUsed);
101
+
102
+ // convert ibToken to SCY to deposit
103
+ ibTokenUsed = (ibTokenDesired * scyUsed).rawDivUp(scyDesired);
104
+
105
+ IERC20(ibToken).safeTransferFrom(msg.sender, address(this), ibTokenUsed);
106
+
107
+ _safeApproveInf(ibToken, address(SCY));
108
+
109
+ SCY.deposit(market, ibToken, ibTokenUsed, scyDesired);
110
+
111
+ netLpOut = IPMarket(market).mint(receiver);
112
+ // fail-safe
113
+ require(netLpOut >= minLpOut, "FS insufficient lp out");
114
+ }
115
+
116
+ function _removeLiquidityDualScyAndPt(
67
117
  address receiver,
68
118
  address market,
69
119
  uint256 lpToRemove,
70
120
  uint256 scyOutMin,
71
- uint256 ptOutMin,
72
- bool doPull
121
+ uint256 ptOutMin
73
122
  ) internal returns (uint256 netScyOut, uint256 netPtOut) {
74
- MarketState memory state = IPMarket(market).readState(false);
123
+ IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
75
124
 
76
- (netScyOut, netPtOut) = state.removeLiquidity(lpToRemove);
125
+ (netScyOut, netPtOut) = IPMarket(market).burn(receiver, receiver);
77
126
 
78
- // early-check
79
127
  require(netScyOut >= scyOutMin, "insufficient SCY out");
80
128
  require(netPtOut >= ptOutMin, "insufficient PT out");
129
+ }
81
130
 
82
- if (doPull) {
83
- IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
84
- }
131
+ function _removeLiquidityDualIbTokenAndPt(
132
+ address receiver,
133
+ address market,
134
+ uint256 lpToRemove,
135
+ uint256 ibTokenOutMin,
136
+ uint256 ptOutMin
137
+ ) internal returns (uint256 netIbTokenOut, uint256 netPtOut) {
138
+ (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
139
+ address ibToken = SCY.yieldToken();
85
140
 
86
- (netScyOut, netPtOut) = IPMarket(market).burn(receiver, receiver);
141
+ IERC20(market).safeTransferFrom(msg.sender, market, lpToRemove);
87
142
 
88
- // fail-safe
89
- require(netScyOut >= scyOutMin, "FS insufficient SCY out");
90
- require(netPtOut >= ptOutMin, "FS insufficient PT out");
143
+ (, netPtOut) = IPMarket(market).burn(address(SCY), receiver);
144
+
145
+ netIbTokenOut = SCY.redeemAfterTransfer(receiver, ibToken, ibTokenOutMin);
146
+
147
+ require(netPtOut >= ptOutMin, "insufficient PT out");
91
148
  }
92
149
 
93
150
  function _swapExactPtForScy(
@@ -201,7 +201,7 @@ abstract contract ActionSCYAndYTBase is ActionSCYAndPYBase, CallbackHelper {
201
201
  ) internal returns (uint256 netTokenOut) {
202
202
  (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
203
203
 
204
- uint256 netScyOut = _swapExactYtForScy(receiver, market, netYtIn, 1, doPull);
204
+ uint256 netScyOut = _swapExactYtForScy(address(SCY), market, netYtIn, 1, doPull);
205
205
 
206
206
  netTokenOut = _redeemScyToToken(receiver, address(SCY), netScyOut, output, false);
207
207
  }
@@ -5,7 +5,7 @@ import "../libraries/math/MarketApproxLib.sol";
5
5
  import "../libraries/kyberswap/KyberSwapHelper.sol";
6
6
 
7
7
  interface IPActionCore {
8
- event AddLiquidity(
8
+ event AddLiquidityDualScyAndPt(
9
9
  address indexed caller,
10
10
  address indexed market,
11
11
  address indexed receiver,
@@ -14,7 +14,16 @@ interface IPActionCore {
14
14
  uint256 lpOut
15
15
  );
16
16
 
17
- event RemoveLiquidity(
17
+ event AddLiquidityDualIbTokenAndPt(
18
+ address indexed caller,
19
+ address indexed market,
20
+ address indexed receiver,
21
+ uint256 ibTokenUsed,
22
+ uint256 ptUsed,
23
+ uint256 lpOut
24
+ );
25
+
26
+ event RemoveLiquidityDualScyAndPt(
18
27
  address indexed caller,
19
28
  address indexed market,
20
29
  address receiver,
@@ -23,6 +32,15 @@ interface IPActionCore {
23
32
  uint256 amountSCYOut
24
33
  );
25
34
 
35
+ event RemoveLiquidityDualIbTokenAndPt(
36
+ address indexed caller,
37
+ address indexed market,
38
+ address receiver,
39
+ uint256 lpIn,
40
+ uint256 amountPTOut,
41
+ uint256 amountIbTokenOut
42
+ );
43
+
26
44
  event SwapPtAndScy(
27
45
  address indexed caller,
28
46
  address indexed market,
@@ -92,7 +110,7 @@ interface IPActionCore {
92
110
  uint256 netTokenOut
93
111
  );
94
112
 
95
- function addLiquidity(
113
+ function addLiquidityDualScyAndPt(
96
114
  address receiver,
97
115
  address market,
98
116
  uint256 scyDesired,
@@ -106,6 +124,21 @@ interface IPActionCore {
106
124
  uint256 ptUsed
107
125
  );
108
126
 
127
+ /// @dev refer to the internal function
128
+ function addLiquidityDualIbTokenAndPt(
129
+ address receiver,
130
+ address market,
131
+ uint256 ibTokenDesired,
132
+ uint256 ptDesired,
133
+ uint256 minLpOut
134
+ )
135
+ external
136
+ returns (
137
+ uint256 netLpOut,
138
+ uint256 ibTokenUsed,
139
+ uint256 ptUsed
140
+ );
141
+
109
142
  function addLiquiditySinglePt(
110
143
  address receiver,
111
144
  address market,
@@ -130,7 +163,7 @@ interface IPActionCore {
130
163
  TokenInput calldata input
131
164
  ) external returns (uint256 netLpOut);
132
165
 
133
- function removeLiquidity(
166
+ function removeLiquidityDualScyAndPt(
134
167
  address receiver,
135
168
  address market,
136
169
  uint256 lpToRemove,
@@ -138,6 +171,15 @@ interface IPActionCore {
138
171
  uint256 ptOutMin
139
172
  ) external returns (uint256 netScyOut, uint256 netPtOut);
140
173
 
174
+ /// @dev refer to the internal function
175
+ function removeLiquidityDualIbTokenAndPt(
176
+ address receiver,
177
+ address market,
178
+ uint256 lpToRemove,
179
+ uint256 ibTokenMin,
180
+ uint256 ptOutMin
181
+ ) external returns (uint256 netIbTokenOut, uint256 netPtOut);
182
+
141
183
  function removeLiquiditySinglePt(
142
184
  address receiver,
143
185
  address market,
@@ -86,7 +86,7 @@ interface IPRouterStatic {
86
86
 
87
87
  // ============= MARKET ACTIONS =============
88
88
 
89
- function addLiquidityStatic(
89
+ function addLiquidityDualScyAndPtStatic(
90
90
  address market,
91
91
  uint256 scyDesired,
92
92
  uint256 ptDesired
@@ -98,7 +98,7 @@ interface IPRouterStatic {
98
98
  uint256 ptUsed
99
99
  );
100
100
 
101
- function removeLiquidityStatic(address market, uint256 lpToRemove)
101
+ function removeLiquidityDualScyAndPtStatic(address market, uint256 lpToRemove)
102
102
  external
103
103
  view
104
104
  returns (uint256 netScyOut, uint256 netPtOut);
@@ -59,6 +59,10 @@ library Math {
59
59
  }
60
60
  }
61
61
 
62
+ function rawDivUp(uint256 a, uint256 b) internal pure returns (uint256) {
63
+ return (a + b - 1) / b;
64
+ }
65
+
62
66
  // @author Uniswap
63
67
  function sqrt(uint256 y) internal pure returns (uint256 z) {
64
68
  if (y > 3) {
@@ -139,7 +139,7 @@ contract RouterStatic is IPRouterStatic {
139
139
 
140
140
  // ============= MARKET ACTIONS =============
141
141
 
142
- function addLiquidityStatic(
142
+ function addLiquidityDualScyAndPtStatic(
143
143
  address market,
144
144
  uint256 scyDesired,
145
145
  uint256 ptDesired
@@ -160,6 +160,35 @@ contract RouterStatic is IPRouterStatic {
160
160
  );
161
161
  }
162
162
 
163
+ function addLiquidityDualIbTokenAndPtStatic(
164
+ address market,
165
+ uint256 ibTokenDesired,
166
+ uint256 ptDesired
167
+ )
168
+ external
169
+ returns (
170
+ uint256 netLpOut,
171
+ uint256 ibTokenUsed,
172
+ uint256 ptUsed
173
+ )
174
+ {
175
+ (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
176
+
177
+ address ibToken = SCY.yieldToken();
178
+ uint256 scyDesired = SCY.previewDeposit(ibToken, ibTokenDesired);
179
+ uint256 scyUsed;
180
+
181
+ MarketState memory state = IPMarket(market).readState(false);
182
+ (, netLpOut, scyUsed, ptUsed) = state.addLiquidity(
183
+ pyIndex(market),
184
+ scyDesired,
185
+ ptDesired,
186
+ block.timestamp
187
+ );
188
+
189
+ ibTokenUsed = (ibTokenDesired * scyUsed).rawDivUp(scyDesired);
190
+ }
191
+
163
192
  function addLiquiditySinglePtStatic(address market, uint256 netPtIn)
164
193
  external
165
194
  returns (
@@ -197,7 +226,7 @@ contract RouterStatic is IPRouterStatic {
197
226
  require(false, "NOT IMPLEMENTED");
198
227
  }
199
228
 
200
- function removeLiquidityStatic(address market, uint256 lpToRemove)
229
+ function removeLiquidityDualScyAndPtStatic(address market, uint256 lpToRemove)
201
230
  external
202
231
  view
203
232
  returns (uint256 netScyOut, uint256 netPtOut)
@@ -206,6 +235,22 @@ contract RouterStatic is IPRouterStatic {
206
235
  (netScyOut, netPtOut) = state.removeLiquidity(lpToRemove);
207
236
  }
208
237
 
238
+ function removeLiquidityDualIbTokenAndPtStatic(address market, uint256 lpToRemove)
239
+ external
240
+ view
241
+ returns (uint256 netIbTokenOut, uint256 netPtOut)
242
+ {
243
+ (ISuperComposableYield SCY, , ) = IPMarket(market).readTokens();
244
+
245
+ address ibToken = SCY.yieldToken();
246
+
247
+ uint256 netScyOut;
248
+ MarketState memory state = IPMarket(market).readState(false);
249
+ (netScyOut, netPtOut) = state.removeLiquidity(lpToRemove);
250
+
251
+ netIbTokenOut = SCY.previewRedeem(ibToken, netScyOut);
252
+ }
253
+
209
254
  function removeLiquiditySinglePtStatic(address market, uint256 lpToRemove)
210
255
  external
211
256
  returns (
@@ -8,7 +8,7 @@
8
8
  "yieldContractFactory": "0xf9397B3b93d118587c29bA2a166c0192251fc758",
9
9
  "marketFactory": "0x2FfdD5E68ce0F668498029c1219Db39f79ebD5bd",
10
10
  "router": "0xFEdBED4682D136925d30FFb9B8977CC9b3a6c406",
11
- "routerStatic": "0x501E089e6BD6b78e6E435C15118E52c665931850",
11
+ "routerStatic": "0x4f8d23b849578541760b4cf2c6Eb67D2c65AE11F",
12
12
  "startTime": 1657756800,
13
13
  "vePendle": "0xa94936409d9B0633dB6271Fc2789aBa9C74bD729",
14
14
  "votingController": "0x676A97883D396b21f3a7554A73F30187752c7C45",
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "0.9.0-gamma-2",
5
+ "version": "0.9.3-beta",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",