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

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 (308) 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 +4 -0
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +833 -0
  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 +4 -0
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +723 -0
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +4 -0
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +723 -0
  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 +20 -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 +4 -0
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +784 -0
  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/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +2 -2
  28. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  33. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +47 -28
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +66 -4
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +26 -2
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +24 -0
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  47. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  50. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -77
  53. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  55. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +21 -96
  57. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  59. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +272 -136
  61. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +75 -41
  63. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json +1 -1
  65. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json +1 -1
  67. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +1 -1
  69. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +4 -0
  79. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +162 -0
  80. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +4 -0
  81. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +87 -0
  82. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +268 -132
  84. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.json +71 -37
  86. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +339 -169
  88. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +23 -23
  100. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +24 -0
  102. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +27 -27
  107. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +4 -0
  112. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +199 -0
  113. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +4 -0
  114. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +168 -0
  115. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +4 -0
  116. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +92 -0
  117. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +4 -0
  122. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +252 -0
  123. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  126. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  127. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  128. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  129. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  130. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  131. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  132. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  133. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  134. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +4 -0
  135. package/build/artifacts/contracts/libraries/{SCY/SCYIndex.sol/SCYIndexLib.json → helpers/PYIndex.sol/PYIndexLib.json} +4 -4
  136. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  138. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +4 -0
  139. package/build/artifacts/contracts/libraries/{traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json → kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json} +3 -3
  140. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  142. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  143. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  144. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  145. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  146. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  148. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  149. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +39 -39
  150. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  151. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol +242 -0
  152. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +1 -1
  153. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +146 -0
  154. package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +170 -0
  155. package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +33 -6
  156. package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +182 -0
  157. package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +19 -10
  158. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -1
  159. package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
  160. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +26 -8
  161. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +0 -4
  162. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +30 -13
  163. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +2 -4
  164. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +5 -1
  165. package/contracts/core/Market/PendleMarket.sol +4 -5
  166. package/contracts/core/Market/PendleMarketFactory.sol +1 -1
  167. package/contracts/core/PendleRouter.sol +10 -10
  168. package/contracts/core/YieldContracts/InterestManagerYT.sol +0 -2
  169. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  170. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +2 -2
  171. package/contracts/core/YieldContracts/PendleYieldToken.sol +24 -25
  172. package/contracts/core/actions/ActionCallback.sol +7 -7
  173. package/contracts/core/actions/ActionCore.sol +54 -81
  174. package/contracts/core/actions/ActionYT.sol +17 -37
  175. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +21 -37
  176. package/contracts/core/actions/base/ActionSCYAndPYBase.sol +39 -51
  177. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +14 -31
  178. package/contracts/interfaces/IEulerEToken.sol +60 -0
  179. package/contracts/interfaces/IEulerMarkets.sol +46 -0
  180. package/contracts/interfaces/IPActionCore.sol +43 -50
  181. package/contracts/interfaces/IPActionYT.sol +11 -12
  182. package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
  183. package/contracts/interfaces/IPMarket.sol +1 -0
  184. package/contracts/interfaces/IPRouterStatic.sol +2 -7
  185. package/contracts/interfaces/IPVeToken.sol +2 -0
  186. package/contracts/interfaces/IPYieldToken.sol +2 -2
  187. package/contracts/interfaces/ISAvax.sol +61 -0
  188. package/contracts/interfaces/ISJoe.sol +60 -0
  189. package/contracts/interfaces/IStETH.sol +14 -0
  190. package/contracts/interfaces/IWAvax.sol +34 -0
  191. package/contracts/libraries/helpers/PYIndex.sol +69 -0
  192. package/contracts/libraries/helpers/TokenHelper.sol +8 -3
  193. package/contracts/libraries/kyberswap/KyberSwapHelper.sol +61 -0
  194. package/contracts/libraries/math/MarketApproxLib.sol +5 -5
  195. package/contracts/libraries/math/MarketMathCore.sol +10 -10
  196. package/contracts/offchain-helpers/RouterStatic.sol +21 -39
  197. package/deployments/43113-benqi.json +2 -2
  198. package/deployments/43113-core.json +7 -7
  199. package/deployments/43113-markets/benqi-market-599408.json +7 -0
  200. package/deployments/43113-markets/benqi-market-93bbf0.json +7 -0
  201. package/deployments/80001-benqi.json +2 -2
  202. package/deployments/80001-core.json +6 -6
  203. package/deployments/80001-markets/benqi-market-007811.json +7 -0
  204. package/deployments/80001-markets/benqi-market-3fe528.json +7 -0
  205. package/package.json +1 -1
  206. package/typechain-types/ActionCore.ts +330 -356
  207. package/typechain-types/ActionSCYAndPTBase.ts +11 -8
  208. package/typechain-types/ActionSCYAndPYBase.ts +11 -8
  209. package/typechain-types/ActionSCYAndYTBase.ts +11 -8
  210. package/typechain-types/ActionYT.ts +119 -106
  211. package/typechain-types/CelerSenderUpg.ts +16 -16
  212. package/typechain-types/IERC20Upgradeable.ts +300 -0
  213. package/typechain-types/IEulerEToken.ts +320 -0
  214. package/typechain-types/IEulerMarkets.ts +204 -0
  215. package/typechain-types/IPActionCore.ts +320 -349
  216. package/typechain-types/IPActionYT.ts +110 -100
  217. package/typechain-types/IPAllAction.ts +400 -447
  218. package/typechain-types/IPInterestManagerYT.ts +3 -3
  219. package/typechain-types/IPRouterStatic.ts +60 -118
  220. package/typechain-types/IPVeToken.ts +34 -0
  221. package/typechain-types/IPYieldToken.ts +47 -47
  222. package/typechain-types/ISAvax.ts +430 -0
  223. package/typechain-types/ISJoe.ts +340 -0
  224. package/typechain-types/IStETH.ts +201 -0
  225. package/typechain-types/IWAvax.ts +380 -0
  226. package/typechain-types/KyberSwapHelper.ts +87 -0
  227. package/typechain-types/PendleEulerSCY.ts +965 -0
  228. package/typechain-types/PendlePrincipalToken.ts +0 -104
  229. package/typechain-types/PendleQiSAvaxSCY.ts +1098 -0
  230. package/typechain-types/PendleSAvaxSCY.ts +962 -0
  231. package/typechain-types/PendleSJoeSCY.ts +1053 -0
  232. package/typechain-types/PendleVotingControllerUpg.ts +89 -55
  233. package/typechain-types/PendleWstEthSCY.ts +13 -0
  234. package/typechain-types/PendleYieldToken.ts +44 -148
  235. package/typechain-types/RouterStatic.ts +133 -299
  236. package/typechain-types/VotingEscrowPendleMainchain.ts +118 -16
  237. package/typechain-types/VotingEscrowPendleSidechain.ts +34 -0
  238. package/typechain-types/VotingEscrowTokenBase.ts +34 -0
  239. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  240. package/typechain-types/factories/ActionCore__factory.ts +275 -139
  241. package/typechain-types/factories/ActionSCYAndPTBase__factory.ts +1 -1
  242. package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +1 -1
  243. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +1 -1
  244. package/typechain-types/factories/ActionYT__factory.ts +78 -44
  245. package/typechain-types/factories/CelerSenderUpg__factory.ts +2 -2
  246. package/typechain-types/factories/IERC20Upgradeable__factory.ts +209 -0
  247. package/typechain-types/factories/IEulerEToken__factory.ts +174 -0
  248. package/typechain-types/factories/IEulerMarkets__factory.ts +99 -0
  249. package/typechain-types/factories/IPActionCore__factory.ts +268 -132
  250. package/typechain-types/factories/IPActionYT__factory.ts +71 -37
  251. package/typechain-types/factories/IPAllAction__factory.ts +339 -169
  252. package/typechain-types/factories/IPInterestManagerYT__factory.ts +1 -1
  253. package/typechain-types/factories/IPRouterStatic__factory.ts +23 -23
  254. package/typechain-types/factories/IPVeToken__factory.ts +24 -0
  255. package/typechain-types/factories/IPYieldToken__factory.ts +27 -27
  256. package/typechain-types/factories/ISAvax__factory.ts +208 -0
  257. package/typechain-types/factories/ISJoe__factory.ts +177 -0
  258. package/typechain-types/factories/IStETH__factory.ts +101 -0
  259. package/typechain-types/factories/IWAvax__factory.ts +261 -0
  260. package/typechain-types/factories/KyberSwapHelper__factory.ts +39 -0
  261. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -1
  262. package/typechain-types/factories/PendleERC4626SCY__factory.ts +1 -1
  263. package/typechain-types/factories/PendleEulerSCY__factory.ts +796 -0
  264. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  265. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  266. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  267. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  268. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -76
  269. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +917 -0
  270. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  271. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  272. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +796 -0
  273. package/typechain-types/factories/PendleSJoeSCY__factory.ts +845 -0
  274. package/typechain-types/factories/PendleStargateSCY__factory.ts +1 -1
  275. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +45 -26
  276. package/typechain-types/factories/PendleWstEthSCY__factory.ts +29 -2
  277. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +1 -1
  278. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  279. package/typechain-types/factories/PendleYieldToken__factory.ts +19 -94
  280. package/typechain-types/factories/RouterStatic__factory.ts +38 -38
  281. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +65 -3
  282. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +25 -1
  283. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +24 -0
  284. package/typechain-types/hardhat.d.ts +107 -17
  285. package/typechain-types/index.ts +24 -4
  286. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
  287. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +0 -329
  288. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +0 -4
  289. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.json +0 -662
  290. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +0 -4
  291. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.json +0 -760
  292. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +0 -4
  293. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.json +0 -962
  294. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +0 -4
  295. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +0 -4
  296. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +0 -10
  297. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +0 -4
  298. package/contracts/core/PendleERC20Permit.sol +0 -84
  299. package/contracts/interfaces/IJoePair.sol +0 -98
  300. package/contracts/interfaces/IJoeRouter01.sol +0 -162
  301. package/contracts/interfaces/IJoeRouter02.sol +0 -52
  302. package/contracts/libraries/SCY/SCYIndex.sol +0 -72
  303. package/contracts/libraries/traderjoe/JoeLibrary.sol +0 -122
  304. package/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol +0 -80
  305. package/deployments/43113-markets/benqi-market-4Ccb97.json +0 -7
  306. package/deployments/43113-markets/benqi-market-534471.json +0 -7
  307. package/deployments/80001-markets/benqi-market-109acB.json +0 -7
  308. package/deployments/80001-markets/benqi-market-4e470E.json +0 -7
@@ -4,11 +4,11 @@ pragma solidity 0.8.15;
4
4
  import "../../interfaces/IPPrincipalToken.sol";
5
5
  import "../../interfaces/IPYieldToken.sol";
6
6
 
7
- import "../PendleERC20Permit.sol";
7
+ import "../PendleERC20.sol";
8
8
  import "../../libraries/helpers/MiniHelpers.sol";
9
9
  import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
10
10
 
11
- contract PendlePrincipalToken is PendleERC20Permit, Initializable, IPPrincipalToken {
11
+ contract PendlePrincipalToken is PendleERC20, Initializable, IPPrincipalToken {
12
12
  address public immutable SCY;
13
13
  address public immutable factory;
14
14
  uint256 public immutable expiry;
@@ -30,7 +30,7 @@ contract PendlePrincipalToken is PendleERC20Permit, Initializable, IPPrincipalTo
30
30
  string memory _symbol,
31
31
  uint8 __decimals,
32
32
  uint256 _expiry
33
- ) PendleERC20Permit(_name, _symbol, __decimals) {
33
+ ) PendleERC20(_name, _symbol, __decimals) {
34
34
  SCY = _SCY;
35
35
  expiry = _expiry;
36
36
  factory = msg.sender;
@@ -98,7 +98,7 @@ contract PendleYieldContractFactory is PermissionsV2Upg, Initializable, IPYieldC
98
98
  // no need salt since PT (and also YT) existence has been checked before hand
99
99
  PT = SSTORE2Deployer.create2(
100
100
  type(PendlePrincipalToken).creationCode,
101
- bytes32(0),
101
+ bytes32(block.chainid),
102
102
  abi.encode(
103
103
  SCY,
104
104
  PT_PREFIX.concat(_SCY.name(), expiry, " "),
@@ -110,7 +110,7 @@ contract PendleYieldContractFactory is PermissionsV2Upg, Initializable, IPYieldC
110
110
 
111
111
  YT = SSTORE2Deployer.create2(
112
112
  pendleYtCreationCodePointer,
113
- bytes32(0),
113
+ bytes32(block.chainid),
114
114
  abi.encode(
115
115
  SCY,
116
116
  PT,
@@ -13,7 +13,7 @@ import "../../interfaces/IPYieldContractFactory.sol";
13
13
  import "../../libraries/SCY/SCYUtils.sol";
14
14
  import "../../libraries/helpers/MiniHelpers.sol";
15
15
  import "../../libraries/RewardManagerAbstract.sol";
16
- import "../PendleERC20Permit.sol";
16
+ import "../PendleERC20.sol";
17
17
  import "./InterestManagerYT.sol";
18
18
 
19
19
  /**
@@ -21,18 +21,13 @@ Invariances to maintain:
21
21
  - address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
22
22
  guaranteed by address(0) & address(this) check in each updateForTwo function
23
23
  */
24
- contract PendleYieldToken is
25
- IPYieldToken,
26
- PendleERC20Permit,
27
- RewardManagerAbstract,
28
- InterestManagerYT
29
- {
24
+ contract PendleYieldToken is IPYieldToken, PendleERC20, RewardManagerAbstract, InterestManagerYT {
30
25
  using Math for uint256;
31
26
  using SafeERC20 for IERC20;
32
27
  using ArrayLib for uint256[];
33
28
 
34
29
  struct PostExpiryData {
35
- uint128 firstScyIndex;
30
+ uint128 firstPYIndex;
36
31
  uint128 totalScyInterestForTreasury;
37
32
  mapping(address => uint256) firstRewardIndex;
38
33
  mapping(address => uint256) userRewardOwed;
@@ -44,7 +39,7 @@ contract PendleYieldToken is
44
39
  uint256 public immutable expiry;
45
40
 
46
41
  uint128 public scyReserve;
47
- uint128 internal _scyIndexStored;
42
+ uint128 internal _pyIndexStored;
48
43
 
49
44
  PostExpiryData public postExpiry;
50
45
 
@@ -61,7 +56,7 @@ contract PendleYieldToken is
61
56
  string memory _symbol,
62
57
  uint8 __decimals,
63
58
  uint256 _expiry
64
- ) PendleERC20Permit(_name, _symbol, __decimals) {
59
+ ) PendleERC20(_name, _symbol, __decimals) {
65
60
  SCY = _SCY;
66
61
  PT = _PT;
67
62
  expiry = _expiry;
@@ -84,6 +79,8 @@ contract PendleYieldToken is
84
79
  _mint(receiverYT, amountPYOut);
85
80
 
86
81
  IPPrincipalToken(PT).mintByYT(receiverPT, amountPYOut);
82
+
83
+ emit Mint(msg.sender, receiverPT, receiverYT, amountScyToMint, amountPYOut);
87
84
  }
88
85
 
89
86
  /// @dev this function converts PY tokens into scy, but interests & rewards are not redeemed at the same time
@@ -183,14 +180,14 @@ contract PendleYieldToken is
183
180
  }
184
181
 
185
182
  /// @dev maximize the current rate with the previous rate to guarantee non-decreasing rate
186
- function scyIndexCurrent() public returns (uint256 currentIndex) {
187
- currentIndex = Math.max(ISuperComposableYield(SCY).exchangeRate(), _scyIndexStored);
188
- _scyIndexStored = currentIndex.Uint128();
183
+ function pyIndexCurrent() public returns (uint256 currentIndex) {
184
+ currentIndex = Math.max(ISuperComposableYield(SCY).exchangeRate(), _pyIndexStored);
185
+ _pyIndexStored = currentIndex.Uint128();
189
186
  emit NewInterestIndex(currentIndex);
190
187
  }
191
188
 
192
- function scyIndexStored() public view returns (uint256) {
193
- return _scyIndexStored;
189
+ function pyIndexStored() public view returns (uint256) {
190
+ return _pyIndexStored;
194
191
  }
195
192
 
196
193
  function isExpired() public view returns (bool) {
@@ -201,15 +198,15 @@ contract PendleYieldToken is
201
198
  external
202
199
  view
203
200
  returns (
204
- uint256 firstScyIndex,
201
+ uint256 firstPYIndex,
205
202
  uint256 totalScyInterestForTreasury,
206
203
  uint256[] memory firstRewardIndexes,
207
204
  uint256[] memory userRewardOwed
208
205
  )
209
206
  {
210
- require(postExpiry.firstScyIndex != 0, "PostExpiry data not set");
207
+ require(postExpiry.firstPYIndex != 0, "PostExpiry data not set");
211
208
 
212
- firstScyIndex = postExpiry.firstScyIndex;
209
+ firstPYIndex = postExpiry.firstPYIndex;
213
210
  totalScyInterestForTreasury = postExpiry.totalScyInterestForTreasury;
214
211
 
215
212
  address[] memory tokens = getRewardTokens();
@@ -230,7 +227,7 @@ contract PendleYieldToken is
230
227
  IPPrincipalToken(PT).burnByYT(address(this), totalAmountPYToRedeem);
231
228
  if (!isExpired()) _burn(address(this), totalAmountPYToRedeem);
232
229
 
233
- uint256 index = scyIndexCurrent();
230
+ uint256 index = pyIndexCurrent();
234
231
  uint256 totalScyInterestPostExpiry;
235
232
  amountScyOuts = new uint256[](receivers.length);
236
233
 
@@ -242,6 +239,8 @@ contract PendleYieldToken is
242
239
  );
243
240
  _transferOut(SCY, receivers[i], amountScyOuts[i]);
244
241
  totalScyInterestPostExpiry += scyInterestPostExpiry;
242
+
243
+ emit Burn(msg.sender, receivers[i], amountPYToRedeems[i], amountScyOuts[i]);
245
244
  }
246
245
  if (totalScyInterestPostExpiry != 0) {
247
246
  postExpiry.totalScyInterestForTreasury += totalScyInterestPostExpiry.Uint128();
@@ -250,7 +249,7 @@ contract PendleYieldToken is
250
249
 
251
250
  function _calcPYToMint(uint256 amountScy) internal returns (uint256 amountPY) {
252
251
  // doesn't matter before or after expiry, since mintPY is only allowed before expiry
253
- return SCYUtils.scyToAsset(scyIndexCurrent(), amountScy);
252
+ return SCYUtils.scyToAsset(pyIndexCurrent(), amountScy);
254
253
  }
255
254
 
256
255
  function _calcScyRedeemableFromPY(uint256 amountPY, uint256 indexCurrent)
@@ -260,7 +259,7 @@ contract PendleYieldToken is
260
259
  {
261
260
  scyToUser = SCYUtils.assetToScy(indexCurrent, amountPY);
262
261
  if (isExpired()) {
263
- uint256 totalScyRedeemable = SCYUtils.assetToScy(postExpiry.firstScyIndex, amountPY);
262
+ uint256 totalScyRedeemable = SCYUtils.assetToScy(postExpiry.firstPYIndex, amountPY);
264
263
  scyInterestPostExpiry = totalScyRedeemable - scyToUser;
265
264
  }
266
265
  }
@@ -281,11 +280,11 @@ contract PendleYieldToken is
281
280
 
282
281
  function _setPostExpiryData() internal {
283
282
  PostExpiryData storage local = postExpiry;
284
- if (local.firstScyIndex != 0) return; // already set
283
+ if (local.firstPYIndex != 0) return; // already set
285
284
 
286
285
  _redeemExternalReward(); // do a final redeem. All the future reward income will belong to the treasury
287
286
 
288
- local.firstScyIndex = scyIndexCurrent().Uint128();
287
+ local.firstPYIndex = pyIndexCurrent().Uint128();
289
288
  address[] memory rewardTokens = ISuperComposableYield(SCY).getRewardTokens();
290
289
  uint256[] memory rewardIndexes = ISuperComposableYield(SCY).rewardIndexesCurrent();
291
290
  for (uint256 i = 0; i < rewardTokens.length; i++) {
@@ -299,8 +298,8 @@ contract PendleYieldToken is
299
298
  //////////////////////////////////////////////////////////////*/
300
299
 
301
300
  function _getInterestIndex() internal virtual override returns (uint256 index) {
302
- if (isExpired()) index = postExpiry.firstScyIndex;
303
- else index = scyIndexCurrent();
301
+ if (isExpired()) index = postExpiry.firstPYIndex;
302
+ else index = pyIndexCurrent();
304
303
  }
305
304
 
306
305
  function _YTbalance(address user) internal view override returns (uint256) {
@@ -16,8 +16,8 @@ contract ActionCallback is IPMarketSwapCallback, CallbackHelper {
16
16
  using SafeERC20 for ISuperComposableYield;
17
17
  using SafeERC20 for IPYieldToken;
18
18
  using SafeERC20 for IERC20;
19
- using SCYIndexLib for SCYIndex;
20
- using SCYIndexLib for ISuperComposableYield;
19
+ using PYIndexLib for PYIndex;
20
+ using PYIndexLib for IPYieldToken;
21
21
 
22
22
  address public immutable marketFactory;
23
23
 
@@ -90,9 +90,9 @@ contract ActionCallback is IPMarketSwapCallback, CallbackHelper {
90
90
  /// ------------------------------------------------------------
91
91
  /// calc totalScyNeed
92
92
  /// ------------------------------------------------------------
93
- SCYIndex scyIndex = SCY.newIndex();
93
+ PYIndex pyIndex = YT.newIndex();
94
94
  uint256 ptOwed = ptToAccount.abs();
95
- uint256 totalScyNeed = scyIndex.assetToScyUp(ptOwed);
95
+ uint256 totalScyNeed = pyIndex.assetToScyUp(ptOwed);
96
96
 
97
97
  /// ------------------------------------------------------------
98
98
  /// calc netScyToPull
@@ -120,15 +120,15 @@ contract ActionCallback is IPMarketSwapCallback, CallbackHelper {
120
120
  bytes calldata data
121
121
  ) internal {
122
122
  (address receiver, uint256 minScyOut) = _decodeSwapYtForScy(data);
123
- (ISuperComposableYield SCY, , IPYieldToken YT) = IPMarket(market).readTokens();
124
- SCYIndex scyIndex = SCY.newIndex();
123
+ (, , IPYieldToken YT) = IPMarket(market).readTokens();
124
+ PYIndex pyIndex = YT.newIndex();
125
125
 
126
126
  uint256 scyOwed = scyToAccount.neg().Uint();
127
127
 
128
128
  address[] memory receivers = new address[](2);
129
129
  uint256[] memory amountPYToRedeems = new uint256[](2);
130
130
 
131
- (receivers[0], amountPYToRedeems[0]) = (market, scyIndex.scyToAssetUp(scyOwed));
131
+ (receivers[0], amountPYToRedeems[0]) = (market, pyIndex.scyToAssetUp(scyOwed));
132
132
  (receivers[1], amountPYToRedeems[1]) = (
133
133
  receiver,
134
134
  ptToAccount.Uint() - amountPYToRedeems[0]
@@ -13,8 +13,8 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
13
13
  using Math for int256;
14
14
 
15
15
  /// @dev since this contract will be proxied, it must not contains non-immutable variabless
16
- constructor(address _joeFactory, address _marketFactory)
17
- ActionSCYAndPYBase(_joeFactory) //solhint-disable-next-line no-empty-blocks
16
+ constructor(address _kyberSwapRouter, address _marketFactory)
17
+ ActionSCYAndPYBase(_kyberSwapRouter) //solhint-disable-next-line no-empty-blocks
18
18
  {}
19
19
 
20
20
  /// @dev refer to the internal function
@@ -48,7 +48,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
48
48
  address market,
49
49
  uint256 netPtIn,
50
50
  uint256 minLpOut,
51
- ApproxParams memory guessPtSwapToScy
51
+ ApproxParams calldata guessPtSwapToScy
52
52
  ) external returns (uint256 netLpOut) {
53
53
  require(false, "NOT IMPLEMENTED");
54
54
  }
@@ -58,18 +58,17 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
58
58
  address market,
59
59
  uint256 netScyIn,
60
60
  uint256 minLpOut,
61
- ApproxParams memory guessPtReceivedFromScy
61
+ ApproxParams calldata guessPtReceivedFromScy
62
62
  ) external returns (uint256 netLpOut) {
63
63
  require(false, "NOT IMPLEMENTED");
64
64
  }
65
65
 
66
- function addLiquiditySingleRawToken(
66
+ function addLiquiditySingleToken(
67
67
  address receiver,
68
68
  address market,
69
- uint256 netRawTokenIn,
70
69
  uint256 minLpOut,
71
- address[] calldata path,
72
- ApproxParams memory guessPtReceivedFromScy
70
+ ApproxParams calldata guessPtReceivedFromScy,
71
+ TokenInput calldata input
73
72
  ) external returns (uint256 netLpOut) {
74
73
  require(false, "NOT IMPLEMENTED");
75
74
  }
@@ -98,7 +97,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
98
97
  address market,
99
98
  uint256 lpToRemove,
100
99
  uint256 minPtOut,
101
- ApproxParams memory guessPtOut
100
+ ApproxParams calldata guessPtOut
102
101
  ) external returns (uint256 netPtOut) {
103
102
  require(false, "NOT IMPLEMENTED");
104
103
  }
@@ -112,13 +111,12 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
112
111
  require(false, "NOT IMPLEMENTED");
113
112
  }
114
113
 
115
- function removeLiquiditySingleRawToken(
114
+ function removeLiquiditySingleToken(
116
115
  address receiver,
117
116
  address market,
118
117
  uint256 lpToRemove,
119
- uint256 minRawTokenOut,
120
- address[] memory path
121
- ) external returns (uint256 netRawTokenOut) {
118
+ TokenOutput calldata output
119
+ ) external returns (uint256 netTokenOut) {
122
120
  require(false, "NOT IMPLEMENTED");
123
121
  }
124
122
 
@@ -139,7 +137,7 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
139
137
  address market,
140
138
  uint256 exactScyOut,
141
139
  uint256 maxPtIn,
142
- ApproxParams memory guessPtIn
140
+ ApproxParams calldata guessPtIn
143
141
  ) external returns (uint256 netPtIn) {
144
142
  netPtIn = _swapPtForExactScy(receiver, market, exactScyOut, maxPtIn, guessPtIn, true);
145
143
  emit SwapPtAndScy(msg.sender, market, receiver, netPtIn.neg(), exactScyOut.Int());
@@ -162,71 +160,62 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
162
160
  address market,
163
161
  uint256 exactScyIn,
164
162
  uint256 minPtOut,
165
- ApproxParams memory guessPtOut
163
+ ApproxParams calldata guessPtOut
166
164
  ) external returns (uint256 netPtOut) {
167
165
  netPtOut = _swapExactScyForPt(receiver, market, exactScyIn, minPtOut, guessPtOut, true);
168
166
  emit SwapPtAndScy(msg.sender, market, receiver, netPtOut.Int(), exactScyIn.neg());
169
167
  }
170
168
 
171
169
  /// @dev refer to the internal function
172
- function mintScyFromRawToken(
170
+ function mintScyFromToken(
173
171
  address receiver,
174
172
  address SCY,
175
- uint256 netRawTokenIn,
176
173
  uint256 minScyOut,
177
- address[] calldata path
174
+ TokenInput calldata input
178
175
  ) external returns (uint256 netScyOut) {
179
- return _mintScyFromRawToken(receiver, SCY, netRawTokenIn, minScyOut, path, true);
176
+ netScyOut = _mintScyFromToken(receiver, SCY, minScyOut, input);
177
+
178
+ emit MintScyFromToken(
179
+ msg.sender,
180
+ receiver,
181
+ SCY,
182
+ input.tokenIn,
183
+ input.netTokenIn,
184
+ netScyOut
185
+ );
180
186
  }
181
187
 
182
188
  /// @dev refer to the internal function
183
- function redeemScyToRawToken(
189
+ function redeemScyToToken(
184
190
  address receiver,
185
191
  address SCY,
186
192
  uint256 netScyIn,
187
- uint256 minRawTokenOut,
188
- address[] memory path
189
- ) external returns (uint256 netRawTokenOut) {
190
- netRawTokenOut = _redeemScyToRawToken(receiver, SCY, netScyIn, minRawTokenOut, path, true);
191
- emit RedeemScyToRawToken(
192
- msg.sender,
193
- receiver,
194
- SCY,
195
- netScyIn,
196
- path[path.length - 1],
197
- netRawTokenOut
198
- );
193
+ TokenOutput calldata output
194
+ ) external returns (uint256 netTokenOut) {
195
+ netTokenOut = _redeemScyToToken(receiver, SCY, netScyIn, output, true);
196
+ emit RedeemScyToToken(msg.sender, receiver, SCY, netScyIn, output.tokenOut, netTokenOut);
199
197
  }
200
198
 
201
199
  /// @dev refer to the internal function
202
- function mintPyFromRawToken(
200
+ function mintPyFromToken(
203
201
  address receiver,
204
202
  address YT,
205
- uint256 netRawTokenIn,
206
203
  uint256 minPyOut,
207
- address[] calldata path
204
+ TokenInput calldata input
208
205
  ) external returns (uint256 netPyOut) {
209
- netPyOut = _mintPyFromRawToken(receiver, YT, netRawTokenIn, minPyOut, path, true);
210
- emit MintPyFromRawToken(msg.sender, receiver, YT, path[0], netRawTokenIn, netPyOut);
206
+ netPyOut = _mintPyFromToken(receiver, YT, minPyOut, input);
207
+ emit MintPyFromToken(msg.sender, receiver, YT, input.tokenIn, input.netTokenIn, netPyOut);
211
208
  }
212
209
 
213
210
  /// @dev refer to the internal function
214
- function redeemPyToRawToken(
211
+ function redeemPyToToken(
215
212
  address receiver,
216
213
  address YT,
217
214
  uint256 netPyIn,
218
- uint256 minRawTokenOut,
219
- address[] memory path
220
- ) external returns (uint256 netRawTokenOut) {
221
- netRawTokenOut = _redeemPyToRawToken(receiver, YT, netPyIn, minRawTokenOut, path, true);
222
- emit RedeemPyToRawToken(
223
- msg.sender,
224
- receiver,
225
- YT,
226
- netPyIn,
227
- path[path.length - 1],
228
- netRawTokenOut
229
- );
215
+ TokenOutput calldata output
216
+ ) external returns (uint256 netTokenOut) {
217
+ netTokenOut = _redeemPyToToken(receiver, YT, netPyIn, output, true);
218
+ emit RedeemPyToToken(msg.sender, receiver, YT, netPyIn, output.tokenOut, netTokenOut);
230
219
  }
231
220
 
232
221
  function mintPyFromScy(
@@ -250,57 +239,41 @@ contract ActionCore is IPActionCore, ActionSCYAndPTBase {
250
239
  }
251
240
 
252
241
  /// @dev refer to the internal function
253
- function swapExactRawTokenForPt(
242
+ function swapExactTokenForPt(
254
243
  address receiver,
255
244
  address market,
256
- uint256 exactRawTokenIn,
257
245
  uint256 minPtOut,
258
- address[] calldata path,
259
- ApproxParams memory guessPtOut
246
+ ApproxParams calldata guessPtOut,
247
+ TokenInput calldata input
260
248
  ) external returns (uint256 netPtOut) {
261
- netPtOut = _swapExactRawTokenForPt(
262
- receiver,
263
- market,
264
- exactRawTokenIn,
265
- minPtOut,
266
- path,
267
- guessPtOut,
268
- true
269
- );
249
+ netPtOut = _swapExactTokenForPt(receiver, market, minPtOut, guessPtOut, input);
270
250
 
271
- emit SwapPtAndRawToken(
251
+ emit SwapPtAndToken(
272
252
  msg.sender,
273
253
  market,
274
- path[0],
254
+ input.tokenIn,
275
255
  receiver,
276
256
  netPtOut.Int(),
277
- exactRawTokenIn.neg()
257
+ input.netTokenIn.neg()
278
258
  );
279
259
  }
280
260
 
281
261
  /// @dev refer to the internal function
282
- function swapExactPtForRawToken(
262
+ function swapExactPtForToken(
283
263
  address receiver,
284
264
  address market,
285
265
  uint256 exactPtIn,
286
- uint256 minRawTokenOut,
287
- address[] calldata path
288
- ) external returns (uint256 netRawTokenOut) {
289
- netRawTokenOut = _swapExactPtForRawToken(
290
- receiver,
291
- market,
292
- exactPtIn,
293
- minRawTokenOut,
294
- path,
295
- true
296
- );
297
- emit SwapPtAndRawToken(
266
+ TokenOutput calldata output
267
+ ) external returns (uint256 netTokenOut) {
268
+ netTokenOut = _swapExactPtForToken(receiver, market, exactPtIn, output, true);
269
+
270
+ emit SwapPtAndToken(
298
271
  msg.sender,
299
272
  market,
300
- path[path.length - 1],
273
+ output.tokenOut,
301
274
  receiver,
302
275
  exactPtIn.neg(),
303
- netRawTokenOut.Int()
276
+ netTokenOut.Int()
304
277
  );
305
278
  }
306
279
 
@@ -12,12 +12,9 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
12
12
  using Math for int256;
13
13
 
14
14
  /// @dev since this contract will be proxied, it must not contains non-immutable variables
15
- constructor(address _joeFactory)
16
- ActionSCYAndPYBase(_joeFactory)
17
- //solhint-disable-next-line no-empty-blocks
18
- {
19
-
20
- }
15
+ constructor(address _kyberSwapRouter)
16
+ ActionSCYAndPYBase(_kyberSwapRouter) //solhint-disable-next-line no-empty-blocks
17
+ {}
21
18
 
22
19
  /// @dev refer to the internal function
23
20
  function swapExactYtForScy(
@@ -66,48 +63,31 @@ contract ActionYT is IPActionYT, ActionSCYAndYTBase {
66
63
  }
67
64
 
68
65
  /// @dev refer to the internal function
69
- function swapExactRawTokenForYt(
66
+ function swapExactTokenForYt(
70
67
  address receiver,
71
68
  address market,
72
- uint256 exactRawTokenIn,
73
69
  uint256 minYtOut,
74
- address[] calldata path,
75
- ApproxParams memory guessYtOut
70
+ ApproxParams memory guessYtOut,
71
+ TokenInput calldata input
76
72
  ) external returns (uint256 netYtOut) {
77
- netYtOut = _swapExactRawTokenForYt(
73
+ netYtOut = _swapExactTokenForYt(receiver, market, minYtOut, guessYtOut, input);
74
+ emit SwapYTAndToken(
78
75
  receiver,
79
76
  market,
80
- exactRawTokenIn,
81
- minYtOut,
82
- path,
83
- guessYtOut,
84
- true
77
+ input.tokenIn,
78
+ netYtOut.Int(),
79
+ input.netTokenIn.neg()
85
80
  );
86
- emit SwapYTAndRawToken(receiver, market, path[0], netYtOut.Int(), exactRawTokenIn.neg());
87
81
  }
88
82
 
89
83
  /// @dev refer to the internal function
90
- function swapExactYtForRawToken(
84
+ function swapExactYtForToken(
91
85
  address receiver,
92
86
  address market,
93
- uint256 exactYtIn,
94
- uint256 minRawTokenOut,
95
- address[] calldata path
96
- ) external returns (uint256 netRawTokenOut) {
97
- netRawTokenOut = _swapExactYtForRawToken(
98
- receiver,
99
- market,
100
- exactYtIn,
101
- minRawTokenOut,
102
- path,
103
- true
104
- );
105
- emit SwapYTAndRawToken(
106
- receiver,
107
- market,
108
- path[path.length - 1],
109
- exactYtIn.neg(),
110
- netRawTokenOut.Int()
111
- );
87
+ uint256 netYtIn,
88
+ TokenOutput calldata output
89
+ ) external returns (uint256 netTokenOut) {
90
+ netTokenOut = _swapExactYtForToken(receiver, market, netYtIn, output, true);
91
+ emit SwapYTAndToken(receiver, market, output.tokenOut, netYtIn.neg(), netTokenOut.Int());
112
92
  }
113
93
  }