@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,73 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleSwap",
4
+ "sourceName": "contracts/router/swap-aggregator/PendleSwap.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "KYBER_SCALING_HELPER",
9
+ "outputs": [
10
+ {
11
+ "internalType": "address",
12
+ "name": "",
13
+ "type": "address"
14
+ }
15
+ ],
16
+ "stateMutability": "view",
17
+ "type": "function"
18
+ },
19
+ {
20
+ "inputs": [
21
+ {
22
+ "internalType": "address",
23
+ "name": "tokenIn",
24
+ "type": "address"
25
+ },
26
+ {
27
+ "internalType": "uint256",
28
+ "name": "amountIn",
29
+ "type": "uint256"
30
+ },
31
+ {
32
+ "components": [
33
+ {
34
+ "internalType": "enum SwapType",
35
+ "name": "swapType",
36
+ "type": "uint8"
37
+ },
38
+ {
39
+ "internalType": "address",
40
+ "name": "extRouter",
41
+ "type": "address"
42
+ },
43
+ {
44
+ "internalType": "bytes",
45
+ "name": "extCalldata",
46
+ "type": "bytes"
47
+ },
48
+ {
49
+ "internalType": "bool",
50
+ "name": "needScale",
51
+ "type": "bool"
52
+ }
53
+ ],
54
+ "internalType": "struct SwapData",
55
+ "name": "data",
56
+ "type": "tuple"
57
+ }
58
+ ],
59
+ "name": "swap",
60
+ "outputs": [],
61
+ "stateMutability": "payable",
62
+ "type": "function"
63
+ },
64
+ {
65
+ "stateMutability": "payable",
66
+ "type": "receive"
67
+ }
68
+ ],
69
+ "bytecode": "0x60a0604052732f577a41bec1be1152aeea12e73b7391d15f655d60805234801561002857600080fd5b506080516109b261004a600039600081816060015261026f01526109b26000f3fe60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c61004736600461061e565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b2604084016020850161067b565b610176565b6101706100ca60808301606084016106ae565b610115576100db60408301836106cb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610718565b61013260408501856106cb565b8661023a565b6001600160a01b0385161561014e576000610150565b835b610160604085016020860161067b565b6001600160a01b03169190610359565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b03610739565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610217919061076d565b1015610236576102298282600061037f565b610236828260001961037f565b5050565b6060600185600381111561025057610250610786565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a89088908890889060040161079c565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed919081019061080f565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b50610351565b6103516108d1565b949350505050565b606061035184848460405180606001604052806029815260200161095460299139610489565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916103db91906108e7565b6000604051808303816000865af19150503d8060008114610418576040519150601f19603f3d011682016040523d82523d6000602084013e61041d565b606091505b50915091508180156104475750805115806104475750808060200190518101906104479190610903565b6104825760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b6060824710156104ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b0316858760405161050691906108e7565b60006040518083038185875af1925050503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b509150915061055987838387610564565b979650505050505050565b606083156105d35782516000036105cc576001600160a01b0385163b6105cc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b5081610351565b61035183838151156105e85781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610920565b80356001600160a01b038116811461061957600080fd5b919050565b60008060006060848603121561063357600080fd5b61063c84610602565b92506020840135915060408401356001600160401b0381111561065e57600080fd5b84016080818703121561067057600080fd5b809150509250925092565b60006020828403121561068d57600080fd5b61069682610602565b9392505050565b80151581146106ab57600080fd5b50565b6000602082840312156106c057600080fd5b81356106968161069d565b6000808335601e198436030181126106e257600080fd5b8301803591506001600160401b038211156106fc57600080fd5b60200191503681900382131561071157600080fd5b9250929050565b60006020828403121561072a57600080fd5b81356004811061069657600080fd5b60006001600160601b038381168061076157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006020828403121561077f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156108065781810151838201526020016107ee565b50506000910152565b6000806040838503121561082257600080fd5b825161082d8161069d565b60208401519092506001600160401b038082111561084a57600080fd5b818501915085601f83011261085e57600080fd5b815181811115610870576108706107d5565b604051601f8201601f19908116603f01168101908382118183101715610898576108986107d5565b816040528281528860208487010111156108b157600080fd5b6108c28360208301602088016107eb565b80955050505050509250929050565b634e487b7160e01b600052600160045260246000fd5b600082516108f98184602087016107eb565b9190910192915050565b60006020828403121561091557600080fd5b81516106968161069d565b602081526000825180602084015261093f8160408501602087016107eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212207c2071b50950c0868bdb4a1a1ca8e3f9a14a0382327284b143139b2989e27b0d64736f6c63430008170033",
70
+ "deployedBytecode": "0x60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c61004736600461061e565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b2604084016020850161067b565b610176565b6101706100ca60808301606084016106ae565b610115576100db60408301836106cb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610718565b61013260408501856106cb565b8661023a565b6001600160a01b0385161561014e576000610150565b835b610160604085016020860161067b565b6001600160a01b03169190610359565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b03610739565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610217919061076d565b1015610236576102298282600061037f565b610236828260001961037f565b5050565b6060600185600381111561025057610250610786565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a89088908890889060040161079c565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed919081019061080f565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b50610351565b6103516108d1565b949350505050565b606061035184848460405180606001604052806029815260200161095460299139610489565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916103db91906108e7565b6000604051808303816000865af19150503d8060008114610418576040519150601f19603f3d011682016040523d82523d6000602084013e61041d565b606091505b50915091508180156104475750805115806104475750808060200190518101906104479190610903565b6104825760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b6060824710156104ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b0316858760405161050691906108e7565b60006040518083038185875af1925050503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b509150915061055987838387610564565b979650505050505050565b606083156105d35782516000036105cc576001600160a01b0385163b6105cc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b5081610351565b61035183838151156105e85781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610920565b80356001600160a01b038116811461061957600080fd5b919050565b60008060006060848603121561063357600080fd5b61063c84610602565b92506020840135915060408401356001600160401b0381111561065e57600080fd5b84016080818703121561067057600080fd5b809150509250925092565b60006020828403121561068d57600080fd5b61069682610602565b9392505050565b80151581146106ab57600080fd5b50565b6000602082840312156106c057600080fd5b81356106968161069d565b6000808335601e198436030181126106e257600080fd5b8301803591506001600160401b038211156106fc57600080fd5b60200191503681900382131561071157600080fd5b9250929050565b60006020828403121561072a57600080fd5b81356004811061069657600080fd5b60006001600160601b038381168061076157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006020828403121561077f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156108065781810151838201526020016107ee565b50506000910152565b6000806040838503121561082257600080fd5b825161082d8161069d565b60208401519092506001600160401b038082111561084a57600080fd5b818501915085601f83011261085e57600080fd5b815181811115610870576108706107d5565b604051601f8201601f19908116603f01168101908382118183101715610898576108986107d5565b816040528281528860208487010111156108b157600080fd5b6108c28360208301602088016107eb565b80955050505050509250929050565b634e487b7160e01b600052600160045260246000fd5b600082516108f98184602087016107eb565b9190910192915050565b60006020828403121561091557600080fd5b81516106968161069d565b602081526000825180602084015261093f8160408501602087016107eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212207c2071b50950c0868bdb4a1a1ca8e3f9a14a0382327284b143139b2989e27b0d64736f6c63430008170033",
71
+ "linkReferences": {},
72
+ "deployedLinkReferences": {}
73
+ }
@@ -27,6 +27,7 @@ abstract contract SYBaseUpg is
27
27
 
28
28
  constructor(address _yieldToken) PendleERC20Upg(IERC20Metadata(_yieldToken).decimals()) {
29
29
  yieldToken = _yieldToken;
30
+ _disableInitializers();
30
31
  }
31
32
 
32
33
  function __SYBaseUpg_init(string memory name_, string memory symbol_) internal onlyInitializing {
@@ -0,0 +1,105 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBase.sol";
5
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
6
+ import "../../../../interfaces/Corn/ICornSilo.sol";
7
+
8
+ abstract contract PendleCornBaseSY is SYBase {
9
+ event SetNewExchangeRateOracle(address oracle);
10
+
11
+ // solhint-disable immutable-vars-naming
12
+ // solhint-disable const-name-snakecase
13
+
14
+ address public constant CORN_SILO = 0x8bc93498b861fd98277c3b51d240e7E56E48F23c;
15
+
16
+ address public immutable depositToken;
17
+ address public immutable assetToken;
18
+ address public exchangeRateOracle;
19
+
20
+ constructor(
21
+ string memory _name,
22
+ string memory _symbol,
23
+ address _depositToken,
24
+ address _assetToken,
25
+ address _initialExchangeRateOracle
26
+ ) SYBase(_name, _symbol, _depositToken) {
27
+ depositToken = _depositToken;
28
+ assetToken = _assetToken;
29
+ _setExchangeRateOracle(_initialExchangeRateOracle);
30
+ _safeApproveInf(_depositToken, CORN_SILO);
31
+ }
32
+
33
+ /*///////////////////////////////////////////////////////////////
34
+ DEPOSIT/REDEEM USING BASE TOKENS
35
+ //////////////////////////////////////////////////////////////*/
36
+
37
+ function _deposit(address /*tokenIn*/, uint256 amountDeposited) internal virtual override returns (uint256) {
38
+ return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
39
+ }
40
+
41
+ function _redeem(
42
+ address receiver,
43
+ address /*tokenOut*/,
44
+ uint256 amountSharesToRedeem
45
+ ) internal virtual override returns (uint256 amountTokenOut) {
46
+ amountTokenOut = ICornSilo(CORN_SILO).redeemToken(depositToken, amountSharesToRedeem);
47
+ _transferOut(depositToken, receiver, amountTokenOut);
48
+ }
49
+
50
+ /*///////////////////////////////////////////////////////////////
51
+ EXCHANGE-RATE
52
+ //////////////////////////////////////////////////////////////*/
53
+
54
+ function exchangeRate() public view virtual override returns (uint256) {
55
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
56
+ }
57
+
58
+ function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
59
+ _setExchangeRateOracle(newOracle);
60
+ }
61
+
62
+ function _setExchangeRateOracle(address newOracle) internal virtual {
63
+ exchangeRateOracle = newOracle;
64
+ emit SetNewExchangeRateOracle(newOracle);
65
+ }
66
+
67
+ /*///////////////////////////////////////////////////////////////
68
+ MISC FUNCTIONS FOR METADATA
69
+ //////////////////////////////////////////////////////////////*/
70
+
71
+ function _previewDeposit(
72
+ address /*tokenIn*/,
73
+ uint256 amountTokenToDeposit
74
+ ) internal view virtual override returns (uint256 /*amountSharesOut*/) {
75
+ // For regular token (not Corn BTC), 1 share = 1 token
76
+ return amountTokenToDeposit;
77
+ }
78
+
79
+ function _previewRedeem(
80
+ address /*tokenOut*/,
81
+ uint256 amountSharesToRedeem
82
+ ) internal view virtual override returns (uint256 amountTokenOut) {
83
+ return amountSharesToRedeem;
84
+ }
85
+
86
+ function getTokensIn() public view virtual override returns (address[] memory) {
87
+ return ArrayLib.create(depositToken);
88
+ }
89
+
90
+ function getTokensOut() public view virtual override returns (address[] memory) {
91
+ return ArrayLib.create(depositToken);
92
+ }
93
+
94
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
95
+ return token == depositToken;
96
+ }
97
+
98
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
99
+ return token == depositToken;
100
+ }
101
+
102
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
103
+ return (AssetType.TOKEN, assetToken, IERC20Metadata(assetToken).decimals());
104
+ }
105
+ }
@@ -0,0 +1,112 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBaseUpg.sol";
5
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
6
+ import "../../../../interfaces/Corn/ICornSilo.sol";
7
+
8
+ abstract contract PendleCornBaseSYUpg is SYBaseUpg {
9
+ event SetNewExchangeRateOracle(address oracle);
10
+
11
+ // solhint-disable immutable-vars-naming
12
+ // solhint-disable const-name-snakecase
13
+
14
+ address public constant CORN_SILO = 0x8bc93498b861fd98277c3b51d240e7E56E48F23c;
15
+
16
+ address public immutable depositToken;
17
+ address public immutable assetToken;
18
+ address public exchangeRateOracle;
19
+
20
+ uint256[48] private __gap;
21
+
22
+ constructor(address _depositToken, address _assetToken) SYBaseUpg(_depositToken) {
23
+ depositToken = _depositToken;
24
+ assetToken = _assetToken;
25
+ }
26
+
27
+ /*///////////////////////////////////////////////////////////////
28
+ DEPOSIT/REDEEM USING BASE TOKENS
29
+ //////////////////////////////////////////////////////////////*/
30
+
31
+ /**
32
+ * @dev calling __SYBaseUpg_init, no onlyInitializing modifier needed
33
+ */
34
+ function __CornBaseSY_init_(
35
+ string memory _name,
36
+ string memory _symbol,
37
+ address _initialExchangeRateOracle
38
+ ) internal {
39
+ __SYBaseUpg_init(_name, _symbol);
40
+ _setExchangeRateOracle(_initialExchangeRateOracle);
41
+ _safeApproveInf(depositToken, CORN_SILO);
42
+ }
43
+
44
+ function _deposit(address /*tokenIn*/, uint256 amountDeposited) internal virtual override returns (uint256) {
45
+ return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
46
+ }
47
+
48
+ function _redeem(
49
+ address receiver,
50
+ address /*tokenOut*/,
51
+ uint256 amountSharesToRedeem
52
+ ) internal virtual override returns (uint256 amountTokenOut) {
53
+ amountTokenOut = ICornSilo(CORN_SILO).redeemToken(depositToken, amountSharesToRedeem);
54
+ _transferOut(depositToken, receiver, amountTokenOut);
55
+ }
56
+
57
+ /*///////////////////////////////////////////////////////////////
58
+ EXCHANGE-RATE
59
+ //////////////////////////////////////////////////////////////*/
60
+
61
+ function exchangeRate() public view virtual override returns (uint256) {
62
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
63
+ }
64
+
65
+ function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
66
+ _setExchangeRateOracle(newOracle);
67
+ }
68
+
69
+ function _setExchangeRateOracle(address newOracle) internal virtual {
70
+ exchangeRateOracle = newOracle;
71
+ emit SetNewExchangeRateOracle(newOracle);
72
+ }
73
+
74
+ /*///////////////////////////////////////////////////////////////
75
+ MISC FUNCTIONS FOR METADATA
76
+ //////////////////////////////////////////////////////////////*/
77
+
78
+ function _previewDeposit(
79
+ address /*tokenIn*/,
80
+ uint256 amountTokenToDeposit
81
+ ) internal view virtual override returns (uint256 /*amountSharesOut*/) {
82
+ // For regular token (not Corn BTC), 1 share = 1 token
83
+ return amountTokenToDeposit;
84
+ }
85
+
86
+ function _previewRedeem(
87
+ address /*tokenOut*/,
88
+ uint256 amountSharesToRedeem
89
+ ) internal view virtual override returns (uint256 amountTokenOut) {
90
+ return amountSharesToRedeem;
91
+ }
92
+
93
+ function getTokensIn() public view virtual override returns (address[] memory) {
94
+ return ArrayLib.create(depositToken);
95
+ }
96
+
97
+ function getTokensOut() public view virtual override returns (address[] memory) {
98
+ return ArrayLib.create(depositToken);
99
+ }
100
+
101
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
102
+ return token == depositToken;
103
+ }
104
+
105
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
106
+ return token == depositToken;
107
+ }
108
+
109
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
110
+ return (AssetType.TOKEN, assetToken, IERC20Metadata(assetToken).decimals());
111
+ }
112
+ }
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "./PendleCornBaseSY.sol";
5
+
6
+ contract PendleCornLBTCSY is PendleCornBaseSY {
7
+ // solhint-disable immutable-vars-naming
8
+ // solhint-disable const-name-snakecase
9
+ address public constant LBTC = 0x8236a87084f8B84306f72007F36F2618A5634494;
10
+ address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
11
+
12
+ constructor(
13
+ address _initialExchangeRateOracle
14
+ ) PendleCornBaseSY("SY Corn Lombard LBTC", "SY-cornLBTC", LBTC, WBTC, _initialExchangeRateOracle) {}
15
+ }
@@ -0,0 +1,80 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "./PendleCornBaseSY.sol";
5
+ import "../Pump/PendlePumpHelperLib.sol";
6
+
7
+ contract PendleCornPumpBTCSY is PendleCornBaseSY {
8
+ address public constant WBTC = PendlePumpHelperLib.WBTC;
9
+ address public constant PUMP_BTC = PendlePumpHelperLib.PUMP_BTC;
10
+
11
+ constructor() PendleCornBaseSY("SY Corn pumpBTC", "SY-corn-pumpBTC", PUMP_BTC, WBTC, address(0)) {
12
+ _safeApproveInf(WBTC, PendlePumpHelperLib.PUMP_STAKING);
13
+ }
14
+
15
+ /*///////////////////////////////////////////////////////////////
16
+ DEPOSIT/REDEEM USING BASE TOKENS
17
+ //////////////////////////////////////////////////////////////*/
18
+
19
+ function _deposit(address tokenIn, uint256 amountDeposited) internal virtual override returns (uint256) {
20
+ if (tokenIn != PUMP_BTC) {
21
+ PendlePumpHelperLib._mintPumpBTC(amountDeposited);
22
+ }
23
+ return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
24
+ }
25
+
26
+ function _redeem(
27
+ address receiver,
28
+ address tokenOut,
29
+ uint256 amountSharesToRedeem
30
+ ) internal virtual override returns (uint256 amountTokenOut) {
31
+ amountTokenOut = ICornSilo(CORN_SILO).redeemToken(depositToken, amountSharesToRedeem);
32
+
33
+ if (tokenOut == PUMP_BTC) {
34
+ _transferOut(depositToken, receiver, amountTokenOut);
35
+ } else {
36
+ // must be WBTC
37
+ PendlePumpHelperLib._instantUnstake(amountTokenOut);
38
+ amountTokenOut = _selfBalance(WBTC);
39
+ _transferOut(WBTC, receiver, amountTokenOut);
40
+ }
41
+ }
42
+
43
+ /*///////////////////////////////////////////////////////////////
44
+ EXCHANGE-RATE
45
+ //////////////////////////////////////////////////////////////*/
46
+
47
+ function exchangeRate() public view virtual override returns (uint256) {
48
+ return PMath.ONE;
49
+ }
50
+
51
+ /*///////////////////////////////////////////////////////////////
52
+ MISC FUNCTIONS FOR METADATA
53
+ //////////////////////////////////////////////////////////////*/
54
+
55
+ function _previewRedeem(
56
+ address tokenOut,
57
+ uint256 amountSharesToRedeem
58
+ ) internal view override returns (uint256 amountTokenOut) {
59
+ if (tokenOut == PUMP_BTC) {
60
+ return amountSharesToRedeem;
61
+ }
62
+ return PendlePumpHelperLib._previewInstantUnstake(amountSharesToRedeem);
63
+ }
64
+
65
+ function getTokensIn() public view virtual override returns (address[] memory) {
66
+ return ArrayLib.create(WBTC, PUMP_BTC);
67
+ }
68
+
69
+ function getTokensOut() public view virtual override returns (address[] memory) {
70
+ return ArrayLib.create(WBTC, PUMP_BTC);
71
+ }
72
+
73
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
74
+ return token == WBTC || token == PUMP_BTC;
75
+ }
76
+
77
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
78
+ return token == WBTC || token == PUMP_BTC;
79
+ }
80
+ }
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "./PendleCornBaseSYUpg.sol";
5
+ import "../Solv/PendleSolvHelper.sol";
6
+
7
+ contract PendleCornSolvBTCBBNSYUpg is PendleCornBaseSYUpg {
8
+ address public constant WBTC = PendleSolvHelper.WBTC;
9
+ address public constant SOLV_BTC = PendleSolvHelper.SOLV_BTC_TOKEN;
10
+ address public constant SOLV_BTCBBN = PendleSolvHelper.SOLV_BTCBBN_TOKEN;
11
+
12
+ constructor() PendleCornBaseSYUpg(SOLV_BTCBBN, WBTC) {}
13
+
14
+ function initialize(address _initialExchangeRateOracle) external initializer {
15
+ _safeApproveInf(WBTC, PendleSolvHelper.SOLV_BTC_ROUTER);
16
+ _safeApproveInf(SOLV_BTC, PendleSolvHelper.SOLV_BTCBBN_ROUTER);
17
+ __CornBaseSY_init_("SY Corn SolvBTC Babylon", "SY-corn-SolvBTC.BBN", _initialExchangeRateOracle);
18
+ }
19
+
20
+ function _deposit(
21
+ address tokenIn,
22
+ uint256 amountDeposited
23
+ ) internal virtual override returns (uint256 /*amountSharesOut*/) {
24
+ if (tokenIn != SOLV_BTCBBN) {
25
+ amountDeposited = PendleSolvHelper._mintBTCBBN(tokenIn, amountDeposited);
26
+ }
27
+ return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
28
+ }
29
+
30
+ function _previewDeposit(
31
+ address tokenIn,
32
+ uint256 amountTokenToDeposit
33
+ ) internal view virtual override returns (uint256 /*amountSharesOut*/) {
34
+ if (tokenIn == depositToken) {
35
+ return amountTokenToDeposit;
36
+ }
37
+ return PendleSolvHelper._previewMintBTCBBN(tokenIn, amountTokenToDeposit);
38
+ }
39
+
40
+ function getTokensIn() public view virtual override returns (address[] memory) {
41
+ return ArrayLib.create(WBTC, SOLV_BTC, depositToken);
42
+ }
43
+
44
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
45
+ return token == WBTC || token == SOLV_BTC || token == depositToken;
46
+ }
47
+ }
@@ -0,0 +1,48 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "./PendleCornBaseSYUpg.sol";
5
+ import "../../../../interfaces/Bedrock/IBedrockUniBTCVault.sol";
6
+
7
+ contract PendleCornUniBTCSYUpg is PendleCornBaseSYUpg {
8
+ // solhint-disable immutable-vars-naming
9
+ // solhint-disable const-name-snakecase
10
+ address public constant VAULT = 0x047D41F2544B7F63A8e991aF2068a363d210d6Da;
11
+ address public constant UNIBTC = 0x004E9C3EF86bc1ca1f0bB5C7662861Ee93350568;
12
+ address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
13
+ address public constant FBTC = 0xC96dE26018A54D51c097160568752c4E3BD6C364;
14
+
15
+ // end contract, no gaps needed
16
+
17
+ constructor() PendleCornBaseSYUpg(UNIBTC, WBTC) {
18
+ _disableInitializers();
19
+ }
20
+
21
+ function initialize(address _initialExchangeRateOracle) external initializer {
22
+ _safeApproveInf(WBTC, VAULT);
23
+ _safeApproveInf(FBTC, VAULT);
24
+ __CornBaseSY_init_("SY Corn Bedrock uniBTC", "SY-corn-uniBTC", _initialExchangeRateOracle);
25
+ }
26
+
27
+ function _deposit(
28
+ address tokenIn,
29
+ uint256 amountDeposited
30
+ ) internal virtual override returns (uint256 /*amountSharesOut*/) {
31
+ if (tokenIn != UNIBTC) {
32
+ uint256 preBalance = _selfBalance(UNIBTC);
33
+ IBedrockUniBTCVault(VAULT).mint(tokenIn, amountDeposited);
34
+ amountDeposited = _selfBalance(UNIBTC) - preBalance;
35
+ }
36
+ return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
37
+ }
38
+
39
+ // preview deposit should still work as amountDeposited = amountSharesOut for all tokens
40
+
41
+ function getTokensIn() public view virtual override returns (address[] memory) {
42
+ return ArrayLib.create(WBTC, FBTC, depositToken);
43
+ }
44
+
45
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
46
+ return token == WBTC || token == FBTC || token == depositToken;
47
+ }
48
+ }
@@ -13,9 +13,10 @@ contract PendleEBTCSY is PendleERC20SYUpg {
13
13
  address public constant eBTC = 0x657e8C867D8B37dCC18fA4Caead9C45EB088C642;
14
14
  address public constant tBTC = 0x18084fbA666a33d37592fA2633fD49a74DD93a88;
15
15
  address public constant wBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
16
+ address public constant LBTC = 0x8236a87084f8B84306f72007F36F2618A5634494;
16
17
  address public constant vedaTeller = 0xe19a43B1b8af6CeE71749Af2332627338B3242D1;
17
18
 
18
- uint256 public constant ONE_SHARE = 10**8;
19
+ uint256 public constant ONE_SHARE = 10 ** 8;
19
20
 
20
21
  address public immutable vedaAccountant;
21
22
 
@@ -26,6 +27,7 @@ contract PendleEBTCSY is PendleERC20SYUpg {
26
27
  function approveAllForTeller() external {
27
28
  _safeApproveInf(tBTC, eBTC);
28
29
  _safeApproveInf(wBTC, eBTC);
30
+ _safeApproveInf(LBTC, eBTC);
29
31
  }
30
32
 
31
33
  function _deposit(
@@ -46,14 +48,14 @@ contract PendleEBTCSY is PendleERC20SYUpg {
46
48
  return amountTokenToDeposit;
47
49
  }
48
50
  uint256 rate = IVedaAccountant(vedaAccountant).getRateInQuoteSafe(tokenIn);
49
- amountSharesOut = amountTokenToDeposit * ONE_SHARE / rate;
51
+ amountSharesOut = (amountTokenToDeposit * ONE_SHARE) / rate;
50
52
  }
51
53
 
52
54
  function isValidTokenIn(address token) public pure override returns (bool) {
53
- return token == eBTC || token == wBTC || token == tBTC;
55
+ return token == eBTC || token == wBTC || token == tBTC || token == LBTC;
54
56
  }
55
57
 
56
58
  function getTokensIn() public pure override returns (address[] memory res) {
57
- return ArrayLib.create(wBTC, tBTC, eBTC);
59
+ return ArrayLib.create(wBTC, tBTC, eBTC, LBTC);
58
60
  }
59
61
  }
@@ -0,0 +1,92 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../SYBase.sol";
5
+ import "../../../../interfaces/IPExchangeRateOracle.sol";
6
+
7
+ contract PendleLBTCSY is SYBase {
8
+ event SetNewExchangeRateOracle(address oracle);
9
+
10
+ // solhint-disable immutable-vars-naming
11
+ // solhint-disable const-name-snakecase
12
+ address public constant LBTC = 0x8236a87084f8B84306f72007F36F2618A5634494;
13
+ address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
14
+
15
+ address public exchangeRateOracle;
16
+
17
+ constructor(address _initialExchangeRateOracle) SYBase("SY Lombard LBTC", "SY-LBTC", LBTC) {
18
+ _setExchangeRateOracle(_initialExchangeRateOracle);
19
+ }
20
+
21
+ /*///////////////////////////////////////////////////////////////
22
+ DEPOSIT/REDEEM USING BASE TOKENS
23
+ //////////////////////////////////////////////////////////////*/
24
+
25
+ function _deposit(address /*tokenIn*/, uint256 amountDeposited) internal virtual override returns (uint256) {
26
+ return amountDeposited;
27
+ }
28
+
29
+ function _redeem(
30
+ address receiver,
31
+ address /*tokenOut*/,
32
+ uint256 amountSharesToRedeem
33
+ ) internal virtual override returns (uint256) {
34
+ _transferOut(LBTC, receiver, amountSharesToRedeem);
35
+ return amountSharesToRedeem;
36
+ }
37
+
38
+ /*///////////////////////////////////////////////////////////////
39
+ EXCHANGE-RATE
40
+ //////////////////////////////////////////////////////////////*/
41
+
42
+ function exchangeRate() public view virtual override returns (uint256) {
43
+ return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
44
+ }
45
+
46
+ function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
47
+ _setExchangeRateOracle(newOracle);
48
+ }
49
+
50
+ function _setExchangeRateOracle(address newOracle) internal virtual {
51
+ exchangeRateOracle = newOracle;
52
+ emit SetNewExchangeRateOracle(newOracle);
53
+ }
54
+
55
+ /*///////////////////////////////////////////////////////////////
56
+ MISC FUNCTIONS FOR METADATA
57
+ //////////////////////////////////////////////////////////////*/
58
+
59
+ function _previewDeposit(
60
+ address /*tokenIn*/,
61
+ uint256 amountTokenToDeposit
62
+ ) internal pure override returns (uint256 /*amountSharesOut*/) {
63
+ return amountTokenToDeposit;
64
+ }
65
+
66
+ function _previewRedeem(
67
+ address /*tokenOut*/,
68
+ uint256 amountSharesToRedeem
69
+ ) internal pure override returns (uint256 amountTokenOut) {
70
+ return amountSharesToRedeem;
71
+ }
72
+
73
+ function getTokensIn() public view virtual override returns (address[] memory) {
74
+ return ArrayLib.create(LBTC);
75
+ }
76
+
77
+ function getTokensOut() public view virtual override returns (address[] memory) {
78
+ return ArrayLib.create(LBTC);
79
+ }
80
+
81
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
82
+ return token == LBTC;
83
+ }
84
+
85
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
86
+ return token == LBTC;
87
+ }
88
+
89
+ function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
90
+ return (AssetType.TOKEN, WBTC, IERC20Metadata(WBTC).decimals());
91
+ }
92
+ }