@pendle/core-v2 5.0.7-beta → 5.0.7

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 (255) hide show
  1. package/build/artifacts/contracts/core/StandardizedYield/SYBaseUpg.sol/SYBaseUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewardsUpg.sol/SYBaseWithRewardsUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.json +2 -2
  5. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV3Upg.sol/PendleAuraBalancerStableLPSYV3Upg.dbg.json +1 -1
  6. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol/PendleCornBaseSY.dbg.json +4 -0
  7. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol/PendleCornBaseSY.json +1070 -0
  8. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol/PendleCornBaseSYUpg.dbg.json +4 -0
  9. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol/PendleCornBaseSYUpg.json +1054 -0
  10. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol/PendleCornLBTCSY.dbg.json +4 -0
  11. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol/PendleCornLBTCSY.json +1107 -0
  12. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol/PendleCornPumpBTCSY.dbg.json +4 -0
  13. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol/PendleCornPumpBTCSY.json +1101 -0
  14. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol/PendleCornSolvBTCBBNSYUpg.dbg.json +4 -0
  15. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol/PendleCornSolvBTCBBNSYUpg.json +1111 -0
  16. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol/PendleCornUniBTCSYUpg.dbg.json +4 -0
  17. package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol/PendleCornUniBTCSYUpg.json +1124 -0
  18. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.json +2 -2
  20. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.json +2 -2
  22. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.json +15 -2
  24. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.json +2 -2
  26. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.json +2 -2
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.json +2 -2
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.json +2 -2
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.json +2 -2
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.json +2 -2
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSYBaseUpg.sol/PendleKarakVaultSYBaseUpg.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.json +2 -2
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.json +2 -2
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.json +2 -2
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol/PendleLBTCSY.dbg.json +4 -0
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol/PendleLBTCSY.json +1068 -0
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC20SYUpg.sol/PendleMellowVaultERC20SYUpg.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC20SYUpg.sol/PendleMellowVaultERC20SYUpg.json +2 -2
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.json +2 -2
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultSYBaseUpg.sol/PendleMellowVaultSYBaseUpg.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultSYBaseUpg.sol/PendleMellowVaultSYBaseUpg.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultWstETHSYUpg.sol/PendleMellowVaultWstETHSYUpg.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultWstETHSYUpg.sol/PendleMellowVaultWstETHSYUpg.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.json +2 -2
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol/PendlePumpHelperLib.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol/PendlePumpHelperLib.json +10 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol/PendleSolvBTCBBNSYUpg.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol/PendleSolvBTCBBNSYUpg.json +1072 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol/PendleSolvHelper.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol/PendleSolvHelper.json +115 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.json +2 -2
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeERC20SY.sol/PendleZtakeERC20SY.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeERC20SY.sol/PendleZtakeERC20SY.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeEzETHSY.sol/PendleZtakeEzETHSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeEzETHSY.sol/PendleZtakeEzETHSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeRsETHSY.sol/PendleZtakeRsETHSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeRsETHSY.sol/PendleZtakeRsETHSY.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeUSDESY.sol/PendleZtakeUSDESY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeUSDESY.sol/PendleZtakeUSDESY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeWeETHSY.sol/PendleZtakeWeETHSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeWeETHSY.sol/PendleZtakeWeETHSY.json +2 -2
  81. package/build/artifacts/contracts/interfaces/Corn/ICornSilo.sol/ICornSilo.dbg.json +4 -0
  82. package/build/artifacts/contracts/interfaces/Corn/ICornSilo.sol/ICornSilo.json +59 -0
  83. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +0 -188
  86. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +0 -188
  90. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/Pump/IPumpStaking.sol/IPumpStaking.dbg.json +4 -0
  92. package/build/artifacts/contracts/interfaces/Pump/IPumpStaking.sol/IPumpStaking.json +76 -0
  93. package/build/artifacts/contracts/interfaces/Solv/ISolvERC3525.sol/ISolvERC3525.dbg.json +4 -0
  94. package/build/artifacts/contracts/interfaces/Solv/ISolvERC3525.sol/ISolvERC3525.json +24 -0
  95. package/build/artifacts/contracts/interfaces/Solv/ISolvOpenFundMarket.sol/ISolvOpenFundMarket.dbg.json +4 -0
  96. package/build/artifacts/contracts/interfaces/Solv/ISolvOpenFundMarket.sol/ISolvOpenFundMarket.json +165 -0
  97. package/build/artifacts/contracts/interfaces/Solv/ISolvOracle.sol/ISolvOracle.dbg.json +4 -0
  98. package/build/artifacts/contracts/interfaces/Solv/ISolvOracle.sol/ISolvOracle.json +100 -0
  99. package/build/artifacts/contracts/interfaces/Solv/ISolvRouter.sol/ISolvRouter.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/Solv/ISolvRouter.sol/ISolvRouter.json +35 -0
  101. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  102. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  103. package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +4 -0
  104. package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.json +24 -0
  105. package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +4 -0
  106. package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.json +24 -0
  107. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  108. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  109. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -190
  111. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  113. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  114. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  115. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  117. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  118. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  119. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +4 -0
  120. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.json +40 -0
  121. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +4 -0
  122. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +73 -0
  123. package/contracts/core/StandardizedYield/SYBaseUpg.sol +1 -0
  124. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol +105 -0
  125. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol +112 -0
  126. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol +15 -0
  127. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol +80 -0
  128. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol +47 -0
  129. package/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol +48 -0
  130. package/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol +6 -4
  131. package/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol +92 -0
  132. package/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol +32 -0
  133. package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol +103 -0
  134. package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol +47 -0
  135. package/contracts/interfaces/Corn/ICornSilo.sol +8 -0
  136. package/contracts/interfaces/IPActionMiscV3.sol +0 -24
  137. package/contracts/interfaces/Pump/IPumpStaking.sol +14 -0
  138. package/contracts/interfaces/Solv/ISolvERC3525.sol +13 -0
  139. package/contracts/interfaces/Solv/ISolvOpenFundMarket.sol +46 -0
  140. package/contracts/interfaces/Solv/ISolvOracle.sol +10 -0
  141. package/contracts/interfaces/Solv/ISolvRouter.sol +6 -0
  142. package/contracts/oracles/PendleBoringOneracle.sol +11 -0
  143. package/contracts/oracles/PendleBoringSolvBTCOneracle.sol +11 -0
  144. package/contracts/router/ActionMiscV3.sol +2 -140
  145. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +0 -7
  146. package/contracts/router/swap-aggregator/PendleSwap.sol +16 -24
  147. package/deployments/1-core.json +3 -3
  148. package/deployments/1-markets/CORN-LBTC-MAINNET-DEC2024.json +14 -0
  149. package/deployments/1-markets/CORN-PUMPBTC-MAINNET-DEC2024.json +14 -0
  150. package/deployments/1-markets/CORN-SOLVBTCBBN-MAINNET-DEC2024.json +14 -0
  151. package/deployments/1-markets/CORN-UNIBTC-MAINNET-DEC2024.json +14 -0
  152. package/deployments/1-markets/KARAK-SUSDE-MAINNET-JAN2025.json +14 -0
  153. package/deployments/1-markets/KARAK-USDE-MAINNET-JAN2025.json +14 -0
  154. package/deployments/1-markets/KARAK-WEETH-MAINNET-DEC2024.json +14 -0
  155. package/deployments/1-markets/MELLOW-ENA-MAINNET-MAR2025.json +14 -0
  156. package/deployments/1-markets/MELLOW-SUSDE-MAINNET-MAR2025.json +14 -0
  157. package/deployments/1-markets/PUFETH-MAINNET-DEC2024.json +14 -0
  158. package/deployments/1-markets/RSWETH-MAINNET-DEC2024.json +14 -0
  159. package/deployments/1-markets/SUSDE-MAINNET-MAR2025.json +14 -0
  160. package/deployments/1-markets/UNIETH-MAINNET-DEC2024.json +14 -0
  161. package/deployments/1-markets/USDE-MAINNET-MAR2025.json +14 -0
  162. package/deployments/1-markets/WEETHK-MAINNET-DEC2024.json +14 -0
  163. package/deployments/10-core.json +2 -2
  164. package/deployments/42161-core.json +2 -2
  165. package/deployments/5000-core.json +2 -2
  166. package/deployments/56-core.json +2 -2
  167. package/deployments/merkle-distribution/2024-08-29.json +21525 -0
  168. package/package.json +1 -1
  169. package/typechain-types/ActionMiscV3.ts +0 -150
  170. package/typechain-types/ICornSilo.ts +146 -0
  171. package/typechain-types/IKyberScalingHelper.ts +108 -0
  172. package/typechain-types/IPActionMiscV3.ts +0 -150
  173. package/typechain-types/IPAllActionV3.ts +0 -150
  174. package/typechain-types/IPumpStaking.ts +189 -0
  175. package/typechain-types/ISolvERC3525.ts +87 -0
  176. package/typechain-types/ISolvOpenFundMarket.ts +201 -0
  177. package/typechain-types/ISolvOracle.ts +231 -0
  178. package/typechain-types/ISolvRouter.ts +110 -0
  179. package/typechain-types/PendleBoringOneracle.ts +87 -0
  180. package/typechain-types/PendleBoringSolvBTCOneracle.ts +87 -0
  181. package/typechain-types/PendleCornBaseSY.ts +1384 -0
  182. package/typechain-types/PendleCornBaseSYUpg.ts +1384 -0
  183. package/typechain-types/PendleCornLBTCSY.ts +1410 -0
  184. package/typechain-types/PendleCornPumpBTCSY.ts +1410 -0
  185. package/typechain-types/PendleCornSolvBTCBBNSYUpg.ts +1457 -0
  186. package/typechain-types/PendleCornUniBTCSYUpg.ts +1464 -0
  187. package/typechain-types/PendleEBTCSY.ts +13 -0
  188. package/typechain-types/PendleLBTCSY.ts +1362 -0
  189. package/typechain-types/PendleSolvBTCBBNSYUpg.ts +1409 -0
  190. package/typechain-types/PendleSolvHelper.ts +220 -0
  191. package/typechain-types/PendleSwap.ts +21 -0
  192. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  193. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -189
  194. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  195. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  196. package/typechain-types/factories/AuraWethVethSYUpg__factory.ts +1 -1
  197. package/typechain-types/factories/ICornSilo__factory.ts +71 -0
  198. package/typechain-types/factories/IKyberScalingHelper__factory.ts +55 -0
  199. package/typechain-types/factories/IPActionMiscV3__factory.ts +0 -188
  200. package/typechain-types/factories/IPAllActionV3__factory.ts +0 -188
  201. package/typechain-types/factories/IPumpStaking__factory.ts +88 -0
  202. package/typechain-types/factories/ISolvERC3525__factory.ts +36 -0
  203. package/typechain-types/factories/ISolvOpenFundMarket__factory.ts +180 -0
  204. package/typechain-types/factories/ISolvOracle__factory.ts +112 -0
  205. package/typechain-types/factories/ISolvRouter__factory.ts +47 -0
  206. package/typechain-types/factories/PendleBoringOneracle__factory.ts +81 -0
  207. package/typechain-types/factories/PendleBoringSolvBTCOneracle__factory.ts +83 -0
  208. package/typechain-types/factories/PendleCornBaseSYUpg__factory.ts +1069 -0
  209. package/typechain-types/factories/PendleCornBaseSY__factory.ts +1085 -0
  210. package/typechain-types/factories/PendleCornLBTCSY__factory.ts +1168 -0
  211. package/typechain-types/factories/PendleCornPumpBTCSY__factory.ts +1154 -0
  212. package/typechain-types/factories/PendleCornSolvBTCBBNSYUpg__factory.ts +1168 -0
  213. package/typechain-types/factories/PendleCornUniBTCSYUpg__factory.ts +1181 -0
  214. package/typechain-types/factories/PendleEBTCSY__factory.ts +14 -1
  215. package/typechain-types/factories/PendleERC20SYUpg__factory.ts +1 -1
  216. package/typechain-types/factories/PendleERC4626SYUpg__factory.ts +1 -1
  217. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  218. package/typechain-types/factories/PendleHlpSY__factory.ts +1 -1
  219. package/typechain-types/factories/PendleKarakVaultERC20SY__factory.ts +1 -1
  220. package/typechain-types/factories/PendleKarakVaultEzETHSY__factory.ts +1 -1
  221. package/typechain-types/factories/PendleKarakVaultSUSDESY__factory.ts +1 -1
  222. package/typechain-types/factories/PendleKarakVaultUSDESY__factory.ts +1 -1
  223. package/typechain-types/factories/PendleKarakVaultWEETHSY__factory.ts +1 -1
  224. package/typechain-types/factories/PendleKyberElasticSYUpg__factory.ts +1 -1
  225. package/typechain-types/factories/PendleLBTCSY__factory.ts +1126 -0
  226. package/typechain-types/factories/PendleMellowVaultERC20SYUpg__factory.ts +1 -1
  227. package/typechain-types/factories/PendleMellowVaultERC4626SYUpg__factory.ts +1 -1
  228. package/typechain-types/factories/PendleMellowVaultSYBaseUpg__factory.ts +1 -1
  229. package/typechain-types/factories/PendleMellowVaultWstETHSYUpg__factory.ts +1 -1
  230. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  231. package/typechain-types/factories/PendlePufStETHSY__factory.ts +1 -1
  232. package/typechain-types/factories/PendlePufWETHSY__factory.ts +1 -1
  233. package/typechain-types/factories/PendleSUSDEMantleSY__factory.ts +1 -1
  234. package/typechain-types/factories/PendleSolvBTCBBNSYUpg__factory.ts +1129 -0
  235. package/typechain-types/factories/PendleSolvHelper__factory.ts +168 -0
  236. package/typechain-types/factories/PendleStTAOSY__factory.ts +1 -1
  237. package/typechain-types/factories/PendleSwap__factory.ts +9 -12
  238. package/typechain-types/factories/PendleUSDEL2SY__factory.ts +1 -1
  239. package/typechain-types/factories/PendleWEEthkSY__factory.ts +1 -1
  240. package/typechain-types/factories/PendleWEEthsSY__factory.ts +1 -1
  241. package/typechain-types/factories/PendleZtakeERC20SY__factory.ts +1 -1
  242. package/typechain-types/factories/PendleZtakeEzETHSY__factory.ts +1 -1
  243. package/typechain-types/factories/PendleZtakeRsETHSY__factory.ts +1 -1
  244. package/typechain-types/factories/PendleZtakeUSDESY__factory.ts +1 -1
  245. package/typechain-types/factories/PendleZtakeWeETHSY__factory.ts +1 -1
  246. package/typechain-types/factories/Reflector__factory.ts +1 -1
  247. package/typechain-types/hardhat.d.ts +166 -13
  248. package/typechain-types/index.ts +38 -4
  249. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapBase.dbg.json +0 -4
  250. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapBase.json +0 -60
  251. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.dbg.json +0 -4
  252. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.json +0 -60
  253. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.dbg.json +0 -4
  254. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.json +0 -60
  255. /package/deployments/5000-markets/{MNT-MANTLE-SEP2024.json → MNT-MANTLE-OCT2024.json} +0 -0
@@ -0,0 +1,32 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../../../interfaces/Pump/IPumpStaking.sol";
5
+
6
+ library PendlePumpHelperLib {
7
+ address internal constant PUMP_STAKING = 0x1fCca65fb6Ae3b2758b9b2B394CB227eAE404e1E;
8
+ address internal constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
9
+ address internal constant PUMP_BTC = 0xF469fBD2abcd6B9de8E169d128226C0Fc90a012e;
10
+ uint256 internal constant FEE_DENOM = 10_000;
11
+
12
+ function _mintPumpBTC(uint256 amount) internal {
13
+ IPumpStaking(PUMP_STAKING).stake(amount);
14
+ }
15
+
16
+ function _instantUnstake(uint256 amount) internal {
17
+ IPumpStaking(PUMP_STAKING).unstakeInstant(amount);
18
+ }
19
+
20
+ function _previewInstantUnstake(uint256 amount) internal view returns (uint256) {
21
+ bool onlyStakeAllowed = IPumpStaking(PUMP_STAKING).onlyAllowStake();
22
+ uint256 maxAmountRedeemable = IPumpStaking(PUMP_STAKING).pendingStakeAmount();
23
+
24
+ require(
25
+ !onlyStakeAllowed && amount <= maxAmountRedeemable,
26
+ "PumpStaking: redeem not allowed"
27
+ );
28
+
29
+ uint256 feeRate = IPumpStaking(PUMP_STAKING).instantUnstakeFee();
30
+ return amount - amount * feeRate / FEE_DENOM;
31
+ }
32
+ }
@@ -0,0 +1,103 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseUpg.sol";
5
+ import "./PendleSolvHelper.sol";
6
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
7
+
8
+ contract PendleSolvBTCBBNSYUpg is SYBaseUpg {
9
+ event SetNewExchangeRateOracle(address oracle);
10
+
11
+ address public constant WBTC = PendleSolvHelper.WBTC;
12
+ address public constant SOLV_BTC = PendleSolvHelper.SOLV_BTC_TOKEN;
13
+ address public constant SOLV_BTCBBN = PendleSolvHelper.SOLV_BTCBBN_TOKEN;
14
+
15
+ address public exchangeRateOracle;
16
+
17
+ constructor() SYBaseUpg(SOLV_BTCBBN) {}
18
+
19
+ function initialize(address _initialExchangeRateOracle) external initializer {
20
+ __SYBaseUpg_init("SY SolvBTC Babylon", "SY-SolvBTC.BBN");
21
+ _setExchangeRateOracle(_initialExchangeRateOracle);
22
+ _safeApproveInf(WBTC, PendleSolvHelper.SOLV_BTC_ROUTER);
23
+ _safeApproveInf(SOLV_BTC, PendleSolvHelper.SOLV_BTCBBN_ROUTER);
24
+ }
25
+
26
+ /*///////////////////////////////////////////////////////////////
27
+ DEPOSIT/REDEEM USING BASE TOKENS
28
+ //////////////////////////////////////////////////////////////*/
29
+
30
+ function _deposit(address tokenIn, uint256 amountDeposited) internal virtual override returns (uint256) {
31
+ if (tokenIn == SOLV_BTCBBN) {
32
+ return amountDeposited;
33
+ }
34
+ return PendleSolvHelper._mintBTCBBN(tokenIn, amountDeposited);
35
+ }
36
+
37
+ function _redeem(
38
+ address receiver,
39
+ address /*tokenOut*/,
40
+ uint256 amountSharesToRedeem
41
+ ) internal virtual override returns (uint256) {
42
+ _transferOut(SOLV_BTCBBN, receiver, amountSharesToRedeem);
43
+ return amountSharesToRedeem;
44
+ }
45
+
46
+ /*///////////////////////////////////////////////////////////////
47
+ EXCHANGE-RATE
48
+ //////////////////////////////////////////////////////////////*/
49
+
50
+ function exchangeRate() public view virtual override returns (uint256) {
51
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
52
+ }
53
+
54
+ function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
55
+ _setExchangeRateOracle(newOracle);
56
+ }
57
+
58
+ function _setExchangeRateOracle(address newOracle) internal virtual {
59
+ exchangeRateOracle = newOracle;
60
+ emit SetNewExchangeRateOracle(newOracle);
61
+ }
62
+
63
+ /*///////////////////////////////////////////////////////////////
64
+ MISC FUNCTIONS FOR METADATA
65
+ //////////////////////////////////////////////////////////////*/
66
+
67
+ function _previewDeposit(
68
+ address tokenIn,
69
+ uint256 amountTokenToDeposit
70
+ ) internal view virtual override returns (uint256 /*amountSharesOut*/) {
71
+ if (tokenIn == SOLV_BTCBBN) {
72
+ return amountTokenToDeposit;
73
+ }
74
+ return PendleSolvHelper._previewMintBTCBBN(tokenIn, amountTokenToDeposit);
75
+ }
76
+
77
+ function _previewRedeem(
78
+ address /*tokenOut*/,
79
+ uint256 amountSharesToRedeem
80
+ ) internal view virtual override returns (uint256 amountTokenOut) {
81
+ return amountSharesToRedeem;
82
+ }
83
+
84
+ function getTokensIn() public view virtual override returns (address[] memory) {
85
+ return ArrayLib.create(WBTC, SOLV_BTC, SOLV_BTCBBN);
86
+ }
87
+
88
+ function getTokensOut() public view virtual override returns (address[] memory) {
89
+ return ArrayLib.create(SOLV_BTCBBN);
90
+ }
91
+
92
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
93
+ return token == WBTC || token == SOLV_BTC || token == SOLV_BTCBBN;
94
+ }
95
+
96
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
97
+ return token == SOLV_BTCBBN;
98
+ }
99
+
100
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
101
+ return (AssetType.TOKEN, WBTC, IERC20Metadata(WBTC).decimals());
102
+ }
103
+ }
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../../../interfaces/Solv/ISolvRouter.sol";
5
+ import "../../../../interfaces/Solv/ISolvOpenFundMarket.sol";
6
+ import "../../../../interfaces/Solv/ISolvOracle.sol";
7
+ import "../../../../interfaces/Solv/ISolvERC3525.sol";
8
+
9
+ library PendleSolvHelper {
10
+ address public constant SOLV_BTCBBN_ROUTER = 0x01024AaeD5561fa6237C0ad4073417576C591261;
11
+ address public constant SOLV_BTCBBN_TOKEN = 0xd9D920AA40f578ab794426F5C90F6C731D159DEf;
12
+ bytes32 public constant SOLV_BTCBBN_POOLID = 0xefcca1eb946cdc7b56509489a56b45b75aff74b8bb84dad5b893012157e0df93;
13
+
14
+ address public constant SOLV_BTC_ROUTER = 0x1fF7d7C0A7D8E94046708C611DeC5056A9d2B823;
15
+ address public constant SOLV_BTC_TOKEN = 0x7A56E1C57C7475CCf742a1832B028F0456652F97;
16
+ bytes32 public constant SOLV_BTC_POOLID = 0x716db7dc196abe78d5349c7166896f674ab978af26ada3e5b3ea74c5a1b48307;
17
+
18
+ address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
19
+
20
+ address public constant SOLV_OPEN_FUND_MARKET = 0x57bB6a8563a8e8478391C79F3F433C6BA077c567;
21
+
22
+ function _mintBTCBBN(address tokenIn, uint256 amountIn) internal returns (uint256) {
23
+ assert(tokenIn == WBTC || tokenIn == SOLV_BTC_TOKEN);
24
+
25
+ if (tokenIn == WBTC) {
26
+ amountIn = ISolvRouter(SOLV_BTC_ROUTER).createSubscription(SOLV_BTC_POOLID, amountIn);
27
+ }
28
+ return ISolvRouter(SOLV_BTCBBN_ROUTER).createSubscription(SOLV_BTCBBN_POOLID, amountIn);
29
+ }
30
+
31
+ function _previewMintBTCBBN(address tokenIn, uint256 amountIn) internal view returns (uint256) {
32
+ assert(tokenIn == WBTC || tokenIn == SOLV_BTC_TOKEN);
33
+
34
+ if (tokenIn == WBTC) {
35
+ amountIn = _convertToShare(WBTC, amountIn);
36
+ }
37
+ return _convertToShare(SOLV_BTC_TOKEN, amountIn);
38
+ }
39
+
40
+ function _convertToShare(address tokenIn, uint256 amountIn) internal view returns (uint256) {
41
+ bytes32 poolId = tokenIn == WBTC ? SOLV_BTC_POOLID : SOLV_BTCBBN_POOLID;
42
+ ISolvOpenFundMarket.PoolInfo memory info = ISolvOpenFundMarket(SOLV_OPEN_FUND_MARKET).poolInfos(poolId);
43
+ uint256 numerator = 10 ** ISolvERC3525(info.poolSFTInfo.openFundShare).valueDecimals();
44
+ (uint256 price, ) = ISolvOracle(info.navOracle).getSubscribeNav(poolId, block.timestamp);
45
+ return (amountIn * numerator) / price;
46
+ }
47
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ interface ICornSilo {
5
+ function deposit(address token, uint256 assets) external returns (uint256 shares);
6
+
7
+ function redeemToken(address token, uint256 shares) external returns (uint256 assets);
8
+ }
@@ -3,8 +3,6 @@ pragma solidity ^0.8.0;
3
3
 
4
4
  import "../router/base/MarketApproxLib.sol";
5
5
  import "./IPAllActionTypeV3.sol";
6
- import "./IStandardizedYield.sol";
7
- import "./IPMarket.sol";
8
6
 
9
7
  /*
10
8
  *******************************************************************************************************************
@@ -28,14 +26,6 @@ interface IPActionMiscV3 {
28
26
  bytes returnData;
29
27
  }
30
28
 
31
- struct RedeemYtIncomeToTokenStruct {
32
- IPYieldToken yt;
33
- bool doRedeemInterest;
34
- bool doRedeemRewards;
35
- address tokenRedeemSy;
36
- uint256 minTokenRedeemOut;
37
- }
38
-
39
29
  struct ExitPreExpReturnParams {
40
30
  uint256 netPtFromRemove;
41
31
  uint256 netSyFromRemove;
@@ -195,20 +185,6 @@ interface IPActionMiscV3 {
195
185
  address[] calldata markets
196
186
  ) external;
197
187
 
198
- function redeemDueInterestAndRewardsV2(
199
- IStandardizedYield[] calldata SYs,
200
- RedeemYtIncomeToTokenStruct[] calldata YTs,
201
- IPMarket[] calldata markets,
202
- IPSwapAggregator pendleSwap,
203
- SwapDataExtra[] calldata swaps
204
- ) external returns (uint256[] memory netOutFromSwaps, uint256[] memory netInterests);
205
-
206
- function swapTokensToTokens(
207
- IPSwapAggregator pendleSwap,
208
- SwapDataExtra[] calldata swaps,
209
- uint256[] calldata netSwaps
210
- ) external payable returns (uint256[] memory netOutFromSwaps);
211
-
212
188
  function swapTokenToToken(
213
189
  address receiver,
214
190
  uint256 minTokenOut,
@@ -0,0 +1,14 @@
1
+ // SPDX-License-Identifier: BUSL-1.1
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface IPumpStaking {
5
+ function stake(uint256 amount) external;
6
+
7
+ function unstakeInstant(uint256 amount) external;
8
+
9
+ function onlyAllowStake() external view returns (bool);
10
+
11
+ function instantUnstakeFee() external view returns (uint256);
12
+
13
+ function pendingStakeAmount() external view returns (uint256);
14
+ }
@@ -0,0 +1,13 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface ISolvERC3525 {
5
+ /**
6
+ * @notice Get the number of decimals the token uses for value - e.g. 6, means the user
7
+ * representation of the value of a token can be calculated by dividing it by 1,000,000.
8
+ * Considering the compatibility with third-party wallets, this function is defined as
9
+ * `valueDecimals()` instead of `decimals()` to avoid conflict with ERC20 tokens.
10
+ * @return The number of decimals for value
11
+ */
12
+ function valueDecimals() external view returns (uint8);
13
+ }
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface ISolvOpenFundMarket {
5
+ struct SFTInfo {
6
+ address manager;
7
+ bool isValid;
8
+ }
9
+ struct SubscribeLimitInfo {
10
+ uint256 hardCap;
11
+ uint256 subscribeMin;
12
+ uint256 subscribeMax;
13
+ uint64 fundraisingStartTime;
14
+ uint64 fundraisingEndTime;
15
+ }
16
+ struct PoolSFTInfo {
17
+ address openFundShare;
18
+ address openFundRedemption;
19
+ uint256 openFundShareSlot;
20
+ uint256 latestRedeemSlot;
21
+ }
22
+ struct PoolFeeInfo {
23
+ uint16 carryRate;
24
+ address carryCollector;
25
+ uint64 latestProtocolFeeSettleTime;
26
+ }
27
+ struct ManagerInfo {
28
+ address poolManager;
29
+ address subscribeNavManager;
30
+ address redeemNavManager;
31
+ }
32
+ struct PoolInfo {
33
+ PoolSFTInfo poolSFTInfo;
34
+ PoolFeeInfo poolFeeInfo;
35
+ ManagerInfo managerInfo;
36
+ SubscribeLimitInfo subscribeLimitInfo;
37
+ address vault;
38
+ address currency;
39
+ address navOracle;
40
+ uint64 valueDate;
41
+ bool permissionless;
42
+ uint256 fundraisingAmount;
43
+ }
44
+
45
+ function poolInfos(bytes32) external view returns (PoolInfo memory);
46
+ }
@@ -0,0 +1,10 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity ^0.8.0;
4
+
5
+ interface ISolvOracle {
6
+ function setSubscribeNavOnlyMarket(bytes32 poolId_, uint256 time_, uint256 nav_) external;
7
+ function updateAllTimeHighRedeemNavOnlyMarket(bytes32 poolId_, uint256 nav_) external;
8
+ function getSubscribeNav(bytes32 poolId_, uint256 time_) external view returns (uint256 nav_, uint256 navTime_);
9
+ function getAllTimeHighRedeemNav(bytes32 poolId_) external view returns (uint256);
10
+ }
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.0;
3
+
4
+ interface ISolvRouter {
5
+ function createSubscription(bytes32 poolId_, uint256 currencyAmount_) external returns (uint256 shareValue_);
6
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../core/libraries/math/PMath.sol";
5
+ import "../interfaces/IPExchangeRateOracle.sol";
6
+
7
+ contract PendleBoringOneracle is IPExchangeRateOracle {
8
+ function getExchangeRate() external pure returns (uint256) {
9
+ return PMath.ONE;
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../core/libraries/math/PMath.sol";
5
+ import "../interfaces/IPExchangeRateOracle.sol";
6
+
7
+ contract PendleBoringSolvBTCOneracle is IPExchangeRateOracle {
8
+ function getExchangeRate() external pure returns (uint256) {
9
+ return 10 ** 8;
10
+ }
11
+ }
@@ -6,9 +6,6 @@ import "../interfaces/IPActionMiscV3.sol";
6
6
  import "../interfaces/IPReflector.sol";
7
7
 
8
8
  contract ActionMiscV3 is IPActionMiscV3, ActionBase {
9
- uint256 private constant NOT_FOUND = type(uint256).max;
10
- address private constant SKIP_REDEEM_SY = address(0x1);
11
-
12
9
  function mintSyFromToken(
13
10
  address receiver,
14
11
  address SY,
@@ -96,75 +93,6 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
96
93
  }
97
94
  }
98
95
 
99
- /// @dev The interface might change in the future, check with Pendle team before use
100
- function redeemDueInterestAndRewardsV2(
101
- IStandardizedYield[] calldata SYs,
102
- RedeemYtIncomeToTokenStruct[] calldata YTs,
103
- IPMarket[] calldata markets,
104
- IPSwapAggregator pendleSwap,
105
- SwapDataExtra[] calldata swaps
106
- ) external returns (uint256[] memory netOutFromSwaps, uint256[] memory netInterests) {
107
- netOutFromSwaps = new uint256[](swaps.length);
108
- uint256[] memory netSwaps = new uint256[](swaps.length);
109
-
110
- for (uint256 i = 0; i < SYs.length; ++i) {
111
- _add(swaps, netSwaps, SYs[i].getRewardTokens(), SYs[i].claimRewards(msg.sender));
112
- }
113
-
114
- netInterests = new uint256[](YTs.length);
115
- for (uint256 i = 0; i < YTs.length; ++i) {
116
- uint256[] memory netRewards;
117
- (netInterests[i], netRewards) = YTs[i].yt.redeemDueInterestAndRewards(
118
- msg.sender,
119
- YTs[i].doRedeemInterest,
120
- YTs[i].doRedeemRewards
121
- );
122
-
123
- if (YTs[i].doRedeemRewards) _add(swaps, netSwaps, YTs[i].yt.getRewardTokens(), netRewards);
124
- }
125
-
126
- for (uint256 i = 0; i < markets.length; ++i) {
127
- _add(swaps, netSwaps, markets[i].getRewardTokens(), markets[i].redeemRewards(msg.sender));
128
- }
129
-
130
- for (uint256 i = 0; i < swaps.length; ++i) {
131
- _transferIn(swaps[i].tokenIn, msg.sender, netSwaps[i]);
132
- }
133
-
134
- for (uint256 i = 0; i < YTs.length; ++i) {
135
- if (netInterests[i] == 0) continue;
136
- IStandardizedYield SY = IStandardizedYield(YTs[i].yt.SY());
137
- netInterests[i] = _redeemSyAndAdd(
138
- swaps,
139
- netSwaps,
140
- SY,
141
- netInterests[i],
142
- YTs[i].tokenRedeemSy,
143
- YTs[i].minTokenRedeemOut
144
- );
145
- }
146
-
147
- for (uint256 i = 0; i < swaps.length; ++i) netOutFromSwaps[i] = _swap(swaps[i], netSwaps[i], pendleSwap, true);
148
- }
149
-
150
- /// @dev The interface might change in the future, check with Pendle team before use
151
- function swapTokensToTokens(
152
- IPSwapAggregator pendleSwap,
153
- SwapDataExtra[] calldata swaps,
154
- uint256[] calldata netSwaps
155
- ) external payable returns (uint256[] memory netOutFromSwaps) {
156
- netOutFromSwaps = new uint256[](swaps.length);
157
-
158
- for (uint256 i = 0; i < swaps.length; ++i) {
159
- _transferIn(swaps[i].tokenIn, msg.sender, netSwaps[i]);
160
- }
161
-
162
- for (uint256 i = 0; i < swaps.length; ++i) {
163
- netOutFromSwaps[i] = _swap(swaps[i], netSwaps[i], pendleSwap, false);
164
- }
165
- }
166
-
167
- /// @dev Deprecated, please use swapTokensToTokens which support unwrapping ETH too
168
96
  function swapTokenToToken(
169
97
  address receiver,
170
98
  uint256 minTokenOut,
@@ -178,7 +106,6 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
178
106
  _transferOut(inp.tokenMintSy, receiver, netTokenOut);
179
107
  }
180
108
 
181
- /// @dev The interface might change in the future, check with Pendle team before use
182
109
  function swapTokenToTokenViaSy(
183
110
  address receiver,
184
111
  address SY,
@@ -190,6 +117,7 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
190
117
  netTokenOut = IStandardizedYield(SY).redeem(receiver, netSyInterm, tokenRedeemSy, minTokenOut, true);
191
118
  }
192
119
 
120
+ /// @dev The interface might change in the future, check with Pendle team before use
193
121
  function exitPreExpToToken(
194
122
  address receiver,
195
123
  address market,
@@ -207,6 +135,7 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
207
135
  emit ExitPreExpToToken(msg.sender, market, output.tokenOut, receiver, netLpIn, totalTokenOut, params);
208
136
  }
209
137
 
138
+ /// @dev The interface might change in the future, check with Pendle team before use
210
139
  function exitPreExpToSy(
211
140
  address receiver,
212
141
  address market,
@@ -299,73 +228,6 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
299
228
  emit ExitPostExpToSy(msg.sender, market, receiver, netLpIn, params);
300
229
  }
301
230
 
302
- function _redeemSyAndAdd(
303
- SwapDataExtra[] calldata swaps,
304
- uint256[] memory netSwaps,
305
- IStandardizedYield SY,
306
- uint256 netSyToRedeem,
307
- address tokenRedeemSy,
308
- uint256 minTokenRedeemSy
309
- ) internal returns (uint256 netTokenOut) {
310
- _transferFrom(SY, msg.sender, address(SY), netSyToRedeem);
311
-
312
- uint256 index = _find(swaps, tokenRedeemSy);
313
- if (index == NOT_FOUND) {
314
- return SY.redeem(msg.sender, netSyToRedeem, tokenRedeemSy, minTokenRedeemSy, true);
315
- }
316
-
317
- netTokenOut = SY.redeem(address(this), netSyToRedeem, tokenRedeemSy, minTokenRedeemSy, true);
318
- netSwaps[index] += netTokenOut;
319
- }
320
-
321
- function _add(
322
- SwapDataExtra[] calldata swaps,
323
- uint256[] memory netSwaps,
324
- address[] memory tokens,
325
- uint256[] memory amounts
326
- ) internal pure {
327
- for (uint256 i = 0; i < tokens.length; ++i) {
328
- uint256 index = _find(swaps, tokens[i]);
329
- if (index == NOT_FOUND) continue;
330
-
331
- netSwaps[index] += amounts[i];
332
- }
333
- }
334
-
335
- function _swap(
336
- SwapDataExtra calldata $,
337
- uint256 netSwap,
338
- IPSwapAggregator pendleSwap,
339
- bool needScale
340
- ) internal returns (uint256 netTokenOut) {
341
- SwapType swapType = $.swapData.swapType;
342
- assert(swapType != SwapType.NONE);
343
-
344
- if (swapType == SwapType.ETH_WETH) {
345
- _wrap_unwrap_ETH($.tokenIn, $.tokenOut, netSwap);
346
-
347
- netTokenOut = netSwap;
348
- } else {
349
- assert($.swapData.needScale == needScale);
350
-
351
- _transferOut($.tokenIn, address(pendleSwap), netSwap);
352
-
353
- uint256 preBalance = _selfBalance($.tokenOut);
354
- IPSwapAggregator(pendleSwap).swap($.tokenIn, netSwap, $.swapData);
355
- netTokenOut = _selfBalance($.tokenOut) - preBalance;
356
- }
357
-
358
- require(netTokenOut >= $.minOut, "Slippage: INSUFFICIENT_TOKEN_OUT");
359
- _transferOut($.tokenOut, msg.sender, netTokenOut);
360
- }
361
-
362
- function _find(SwapDataExtra[] calldata swaps, address token) internal pure returns (uint256 index) {
363
- for (uint256 i = 0; i < swaps.length; ++i) {
364
- if (swaps[i].tokenIn == token) return i;
365
- }
366
- return NOT_FOUND;
367
- }
368
-
369
231
  function _exitPostExpToSy(
370
232
  bool setReceiverToSy,
371
233
  address receiver,
@@ -8,13 +8,6 @@ struct SwapData {
8
8
  bool needScale;
9
9
  }
10
10
 
11
- struct SwapDataExtra {
12
- address tokenIn;
13
- address tokenOut;
14
- uint256 minOut;
15
- SwapData swapData;
16
- }
17
-
18
11
  enum SwapType {
19
12
  NONE,
20
13
  KYBERSWAP,
@@ -6,9 +6,11 @@ import "./IPSwapAggregator.sol";
6
6
  import "./kyberswap/l1-contracts/InputScalingHelper.sol";
7
7
  import "./kyberswap/l2-contracts/InputScalingHelperL2.sol";
8
8
 
9
- abstract contract PendleSwapBase is IPSwapAggregator, TokenHelper {
9
+ contract PendleSwap is IPSwapAggregator, TokenHelper {
10
10
  using Address for address;
11
11
 
12
+ address public immutable KYBER_SCALING_HELPER = 0x2f577A41BeC1BE1152AeEA12e73b7391d15f655D;
13
+
12
14
  function swap(address tokenIn, uint256 amountIn, SwapData calldata data) external payable {
13
15
  _safeApproveInf(tokenIn, data.extRouter);
14
16
  data.extRouter.functionCallWithValue(
@@ -21,36 +23,26 @@ abstract contract PendleSwapBase is IPSwapAggregator, TokenHelper {
21
23
  SwapType swapType,
22
24
  bytes calldata rawCallData,
23
25
  uint256 amountIn
24
- ) internal pure returns (bytes memory scaledCallData) {
26
+ ) internal view returns (bytes memory scaledCallData) {
25
27
  if (swapType == SwapType.KYBERSWAP) {
26
- scaledCallData = _getKyberScaledInputData(rawCallData, amountIn);
28
+ bool isSuccess;
29
+ (isSuccess, scaledCallData) = IKyberScalingHelper(KYBER_SCALING_HELPER).getScaledInputData(
30
+ rawCallData,
31
+ amountIn
32
+ );
33
+
34
+ require(isSuccess, "PendleSwap: Kyber scaling failed");
27
35
  } else {
28
36
  assert(false);
29
37
  }
30
38
  }
31
39
 
32
- function _getKyberScaledInputData(
33
- bytes calldata rawCallData,
34
- uint256 amountIn
35
- ) internal pure virtual returns (bytes memory scaledCallData);
36
-
37
40
  receive() external payable {}
38
41
  }
39
42
 
40
- contract PendleSwapL1 is PendleSwapBase {
41
- function _getKyberScaledInputData(
42
- bytes calldata rawCallData,
43
- uint256 amountIn
44
- ) internal pure override returns (bytes memory) {
45
- return InputScalingHelper._getScaledInputData(rawCallData, amountIn);
46
- }
47
- }
48
-
49
- contract PendleSwapL2 is PendleSwapBase {
50
- function _getKyberScaledInputData(
51
- bytes calldata rawCallData,
52
- uint256 amountIn
53
- ) internal pure override returns (bytes memory) {
54
- return InputScalingHelperL2._getScaledInputData(rawCallData, amountIn);
55
- }
43
+ interface IKyberScalingHelper {
44
+ function getScaledInputData(
45
+ bytes calldata inputData,
46
+ uint256 newAmount
47
+ ) external view returns (bool isSuccess, bytes memory data);
56
48
  }
@@ -20,17 +20,17 @@
20
20
  "governanceProxy": "0x2aD631F72fB16d91c4953A7f4260A97C2fE2f31e",
21
21
  "yieldContractFactory": "0x70ee0A6DB4F5a2Dc4d9c0b57bE97B9987e75BAFD",
22
22
  "marketFactory": "0x27b1dAcd74688aF24a64BD3C9C1B143118740784",
23
- "router": "0xD0715C2bf65a6EE65876F30BAEEc8d57664DAB26",
23
+ "router": "0x888888888889758F76e7103c6CbF23ABbF58F946",
24
24
  "routerFacets": {
25
25
  "ActionAddRemoveLiqV3": "0xb7631b93189900745Db51d960Ba64b8E6C658843",
26
26
  "ActionSwapPTV3": "0xbFA3aAD535e1b996396698f89FFeC7ada0df17E8",
27
27
  "ActionSwapYTV3": "0x8903dBFFcA66b3Fbc027aC81912ea64Fa61A5219",
28
- "ActionMiscV3": "0xa57c944C85B6D00581A16df82B7356E2DdC5fD7a",
28
+ "ActionMiscV3": "0x9afd337e41f59e5c2e6f2be05f32e958a4dbcd9a",
29
29
  "ActionCallbackV3": "0x997FBC511a8Ad11F84a400feACD66E2A3fa805d2",
30
30
  "ActionStorageV4": "0x6a0Ed0A9193FCBe7ae9B0F3D90F88e365Cca64fC"
31
31
  },
32
32
  "routerStatic": "0x263833d47eA3fA4a30f269323aba6a107f9eB14C",
33
- "pendleSwap": "0x0Cc097AC029A7541C4e894c789c7aaa2A9794A29",
33
+ "pendleSwap": "0x2E6ffA05cd6920dcc0d169efce2F4C96E774eCd2",
34
34
  "pyYtLpOracle": "0x9a9fa8338dd5e5b2188006f1cd2ef26d921650c2",
35
35
  "yieldContractFactoryV3": "0xdF3601014686674e53d1Fa52F7602525483F9122",
36
36
  "marketFactoryV3": "0x1A6fCc85557BC4fB7B534ed835a03EF056552D52",
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "SY Corn LBTC",
3
+ "SY": "0x9d6Ec7a7B051B32205F74B140A0fa6f09D7F223E",
4
+ "YT": "0x1caE47aA3e10A77C55Ee32f8623D6B5ACC947344",
5
+ "PT": "0x332A8ee60EdFf0a11CF3994b1b846BBC27d3DcD6",
6
+ "market": "0xCaE62858DB831272A03768f5844cbe1B40bB381f",
7
+ "expiry": 1735171200,
8
+ "scalarRoot": "16084248220000000000",
9
+ "initAnchor": "1041917834000000000",
10
+ "lnFeeRateRoot": "999500333000000",
11
+ "deployTxHash": "0x317f54b060e78eb9d2973dce74f2ff58f87f5569e49ee50bc66b944fd3e4c2fa",
12
+ "deployBlockNumber": 20712332,
13
+ "reversedFee": 0.09999999999164011
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "Corn pumpBTC",
3
+ "SY": "0x56bb34A12b70046b0a03EE63392C09cdDDAaA430",
4
+ "YT": "0xABb4F186F67c6517A9caFc54a5B93cFF2Aa4c5Eb",
5
+ "PT": "0xa76f0C6e5f286bFF151b891d2A0245077F1Ad74c",
6
+ "market": "0xf8208fB52BA80075aF09840A683143C22DC5B4dd",
7
+ "expiry": 1735171200,
8
+ "scalarRoot": "30856137291000000000",
9
+ "initAnchor": "1019119040000000000",
10
+ "lnFeeRateRoot": "999500333000000",
11
+ "deployTxHash": "0xbb9e913006fe76901e1fdd9ac288c2d5a0ad11b0a4fb38c5ff095c0907f34626",
12
+ "deployBlockNumber": 20824952,
13
+ "reversedFee": 0.09999999999164011
14
+ }