@pendle/core-v2 6.5.0 → 6.6.1

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 (470) hide show
  1. package/LICENSE +12 -82
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerUpg.sol/PendleGaugeControllerUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerUpg.sol/PendleGaugeControllerUpg.json +58 -2
  10. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/sPendle/StakedPendle.sol/StakedPendle.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/sPendle/StakedPendle.sol/StakedPendle.json +2 -2
  23. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/Market/PendleMarketFactoryV7Upg.sol/PendleMarketFactoryV7Upg.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/Market/PendleMarketV7.sol/PendleMarketV7.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/Market/PendleMarketV7.sol/PendleMarketV7.json +2 -2
  29. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.json +2 -2
  37. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  39. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableV2.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
  52. package/build/artifacts/contracts/cross-chain/FixedPricePTAMMV2.sol/FixedPricePTAMMV2.dbg.json +4 -0
  53. package/build/artifacts/contracts/cross-chain/FixedPricePTAMMV2.sol/FixedPricePTAMMV2.json +766 -0
  54. package/build/artifacts/contracts/cross-chain/PendleSwapHelper.sol/PendleSwapHelper.dbg.json +4 -0
  55. package/build/artifacts/contracts/cross-chain/PendleSwapHelper.sol/PendleSwapHelper.json +99 -0
  56. package/build/artifacts/contracts/cross-chain/deposit-box/DepositBox.sol/DepositBox.dbg.json +4 -0
  57. package/build/artifacts/contracts/cross-chain/deposit-box/DepositBox.sol/DepositBox.json +170 -0
  58. package/build/artifacts/contracts/cross-chain/deposit-box/DepositBoxFactory.sol/DepositBoxFactory.dbg.json +4 -0
  59. package/build/artifacts/contracts/cross-chain/deposit-box/DepositBoxFactory.sol/DepositBoxFactory.json +124 -0
  60. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +1 -1
  61. package/build/artifacts/contracts/cross-chain/funder/BridgeFunder.sol/BridgeFunder.dbg.json +4 -0
  62. package/build/artifacts/contracts/cross-chain/funder/BridgeFunder.sol/BridgeFunder.json +210 -0
  63. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.dbg.json +4 -0
  64. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol/OFTAdapterAltImpl.json +1294 -0
  65. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +1 -1
  66. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.dbg.json +1 -1
  67. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.dbg.json +4 -0
  68. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol/PendleBridgedPrincipalTokenAlt.json +1602 -0
  69. package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.dbg.json +4 -0
  70. package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.json +1005 -0
  71. package/build/artifacts/contracts/cross-chain/swap-hub/SwapHubBase.sol/SwapHubBase.dbg.json +4 -0
  72. package/build/artifacts/contracts/cross-chain/swap-hub/SwapHubBase.sol/SwapHubBase.json +976 -0
  73. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  74. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  75. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/ILPWrapper.sol/ILPWrapper.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IMarketSweed.sol/IMarketSweed.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +0 -88
  96. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPBridgeFunder.sol/IPBridgeFunder.dbg.json +4 -0
  103. package/build/artifacts/contracts/interfaces/IPBridgeFunder.sol/IPBridgeFunder.json +85 -0
  104. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPCommonPoolDeployHelperV2.sol/IPCommonPoolDeployHelperV2.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPCrossChainSwapHub.sol/IPCrossChainSwapHub.dbg.json +4 -0
  112. package/build/artifacts/contracts/interfaces/IPCrossChainSwapHub.sol/IPCrossChainSwapHub.json +813 -0
  113. package/build/artifacts/contracts/interfaces/IPDepositBox.sol/IPDepositBox.dbg.json +4 -0
  114. package/build/artifacts/contracts/interfaces/IPDepositBox.sol/IPDepositBox.json +124 -0
  115. package/build/artifacts/contracts/interfaces/IPDepositBoxFactory.sol/IPDepositBoxFactory.dbg.json +4 -0
  116. package/build/artifacts/contracts/interfaces/IPDepositBoxFactory.sol/IPDepositBoxFactory.json +108 -0
  117. package/build/artifacts/contracts/interfaces/IPExchangeRateOracle.sol/IPExchangeRateOracle.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMMV2.sol/IPFixedPricePTAMMSwapCallback.dbg.json +4 -0
  122. package/build/artifacts/contracts/interfaces/{IPFixedPricePTAMM.sol → IPFixedPricePTAMMV2.sol}/IPFixedPricePTAMMSwapCallback.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMMV2.sol/IPFixedPricePTAMMV2.dbg.json +4 -0
  124. package/build/artifacts/contracts/interfaces/{IPFixedPricePTAMM.sol/IPFixedPricePTAMM.json → IPFixedPricePTAMMV2.sol/IPFixedPricePTAMMV2.json} +285 -93
  125. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.json +56 -0
  128. package/build/artifacts/contracts/interfaces/IPGovernanceProxy.sol/IPGovernanceProxy.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/IPLPWrapperFactory.sol/IPLPWrapperFactory.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +387 -0
  135. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IPMerkleDistributor.sol/IPMerkleDistributor.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPMultiTokenMerkleDistributor.sol/IPMultiTokenMerkleDistributor.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPOffchainStorage.sol/IPOffchainStorage.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPOracleForSy.sol/IPOracleForSy.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/IPPausingInterface.sol/IPPausingInterface.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPPriceFeed.sol/IPPriceFeed.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPReflector.sol/IPReflector.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IPStakedPendle.sol/IPStakedPendle.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IPSwapHelper.sol/IPSwapHelper.dbg.json +4 -0
  156. package/build/artifacts/contracts/interfaces/{IPActionCrossChain.sol/IPActionCrossChain.json → IPSwapHelper.sol/IPSwapHelper.json} +2 -2
  157. package/build/artifacts/contracts/interfaces/IPTokenWithSupplyCap.sol/IPTokenWithSupplyCap.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IRedstonePriceFeed.sol/IRedstonePriceFeed.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  168. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  169. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  170. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  171. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.json +473 -11
  172. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  173. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +480 -13
  174. package/build/artifacts/contracts/limit/helpers/MintSyHelper.sol/MintSyHelper.dbg.json +4 -0
  175. package/build/artifacts/contracts/limit/helpers/MintSyHelper.sol/MintSyHelper.json +156 -0
  176. package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.dbg.json +1 -1
  177. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  178. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/AutomateReady.dbg.json +1 -1
  179. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IAutomate.dbg.json +1 -1
  180. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IOpsProxyFactory.dbg.json +1 -1
  181. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/ITaskTreasuryUpgradable.dbg.json +1 -1
  182. package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.dbg.json +1 -1
  183. package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/ILegacyMarket.dbg.json +1 -1
  184. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  185. package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.dbg.json +1 -1
  186. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  187. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +1 -1
  188. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.json +2 -2
  189. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.dbg.json +1 -1
  190. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/StarNFTV1.dbg.json +1 -1
  191. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
  192. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.json +2 -2
  193. package/build/artifacts/contracts/offchain-helpers/MarketSweed.sol/MarketSweed.dbg.json +1 -1
  194. package/build/artifacts/contracts/offchain-helpers/MarketSweed.sol/MarketSweed.json +2 -2
  195. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  196. package/build/artifacts/contracts/offchain-helpers/PendleAPIFeeDepositor.sol/PendleAPIFeeDepositor.dbg.json +1 -1
  197. package/build/artifacts/contracts/offchain-helpers/PendleAPIFeeDepositor.sol/PendleAPIFeeDepositor.json +2 -2
  198. package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.dbg.json +1 -1
  199. package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +1 -1
  200. package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.json +33 -2
  201. package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.dbg.json +1 -1
  202. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.dbg.json +1 -1
  203. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.json +2 -2
  204. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.dbg.json +1 -1
  205. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.json +2 -2
  206. package/build/artifacts/contracts/offchain-helpers/PendleMerkleDepositor.sol/PendleMerkleDepositor.dbg.json +1 -1
  207. package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.dbg.json +1 -1
  208. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  209. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
  210. package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.dbg.json +1 -1
  211. package/build/artifacts/contracts/offchain-helpers/PendleProxyAdmin.sol/PendleProxyAdmin.dbg.json +4 -0
  212. package/build/artifacts/contracts/offchain-helpers/PendleProxyAdmin.sol/PendleProxyAdmin.json +171 -0
  213. package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.dbg.json +1 -1
  214. package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.dbg.json +1 -1
  215. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/IPossibleSupplyCapInterface.dbg.json +1 -1
  216. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/SupplyCapReader.dbg.json +1 -1
  217. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
  218. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +2 -2
  219. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +1 -1
  220. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  221. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  222. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
  223. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.json +2 -2
  224. package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.dbg.json +1 -1
  225. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  226. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  227. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  228. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  229. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  230. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  231. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  232. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  233. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  234. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  235. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  236. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  237. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  238. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  239. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  240. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
  241. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json +2 -2
  242. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
  243. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json +2 -2
  244. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  245. package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.dbg.json +1 -1
  246. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +1 -1
  247. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +1 -1
  248. package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +1 -1
  249. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  250. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  251. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
  252. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
  253. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
  254. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
  255. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  256. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  257. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  258. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  259. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.dbg.json +1 -1
  260. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +1 -1
  261. package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
  262. package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
  263. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/LPExpiry.dbg.json +1 -1
  264. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/PendleLpLinearDiscountOracle.dbg.json +1 -1
  265. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracleFactory.sol/PendleLpLinearDiscountOracleFactory.dbg.json +1 -1
  266. package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
  267. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
  268. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
  269. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  270. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  271. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  272. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
  273. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
  274. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  275. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
  276. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  277. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
  278. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  279. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
  280. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  281. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  282. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  283. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  284. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  285. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  286. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  287. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  288. package/build/artifacts/contracts/router/RouterStorage.sol/RouterStorage.dbg.json +1 -1
  289. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  290. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  291. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  292. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  293. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  294. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  295. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.dbg.json +1 -1
  296. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  297. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  298. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  299. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  300. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
  301. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json +2 -2
  302. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
  303. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json +2 -2
  304. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  305. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
  306. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
  307. package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.dbg.json +1 -1
  308. package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.dbg.json +1 -1
  309. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  310. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
  311. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  312. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  313. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerUpg.sol +12 -2
  314. package/contracts/core/libraries/TokenHelper.sol +6 -2
  315. package/contracts/cross-chain/FixedPricePTAMMV2.sol +162 -0
  316. package/contracts/{router/ActionCrossChain.sol → cross-chain/PendleSwapHelper.sol} +11 -7
  317. package/contracts/cross-chain/deposit-box/DepositBox.sol +66 -0
  318. package/contracts/cross-chain/deposit-box/DepositBoxFactory.sol +44 -0
  319. package/contracts/cross-chain/funder/BridgeFunder.sol +61 -0
  320. package/contracts/cross-chain/oftImpl/hub/OFTAdapterAltImpl.sol +55 -0
  321. package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalTokenAlt.sol +64 -0
  322. package/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol +101 -0
  323. package/contracts/cross-chain/swap-hub/SwapHubBase.sol +184 -0
  324. package/contracts/interfaces/IPAllActionTypeV3.sol +1 -0
  325. package/contracts/interfaces/IPAllActionV3.sol +1 -3
  326. package/contracts/interfaces/IPBridgeFunder.sol +17 -0
  327. package/contracts/interfaces/IPCrossChainSwapHub.sol +108 -0
  328. package/contracts/interfaces/IPDepositBox.sol +22 -0
  329. package/contracts/interfaces/IPDepositBoxFactory.sol +19 -0
  330. package/contracts/interfaces/IPFixedPricePTAMMV2.sol +58 -0
  331. package/contracts/interfaces/IPGaugeController.sol +7 -3
  332. package/contracts/interfaces/IPLimitRouter.sol +29 -0
  333. package/contracts/interfaces/{IPActionCrossChain.sol → IPSwapHelper.sol} +1 -1
  334. package/contracts/limit/LimitRouterBase.sol +100 -55
  335. package/contracts/limit/PendleLimitRouter.sol +24 -2
  336. package/contracts/limit/helpers/MintSyHelper.sol +114 -0
  337. package/contracts/offchain-helpers/PendleFeeSetter.sol +19 -1
  338. package/contracts/offchain-helpers/PendleProxyAdmin.sol +11 -0
  339. package/contracts/router/base/ActionBase.sol +16 -2
  340. package/deployments/1-core.json +11 -6
  341. package/deployments/1-offchain-helper.json +1 -1
  342. package/deployments/10-core.json +9 -4
  343. package/deployments/10-offchain-helper.json +1 -1
  344. package/deployments/130-core.json +9 -2
  345. package/deployments/143-core.json +19 -0
  346. package/deployments/146-core.json +9 -4
  347. package/deployments/146-offchain-helper.json +1 -1
  348. package/deployments/42161-core.json +9 -4
  349. package/deployments/42161-offchain-helper.json +1 -1
  350. package/deployments/4217-core.json +14 -0
  351. package/deployments/43114-core.json +6 -2
  352. package/deployments/43114-offchain-helper.json +3 -0
  353. package/deployments/5000-core.json +9 -4
  354. package/deployments/5000-offchain-helper.json +1 -1
  355. package/deployments/56-core.json +9 -4
  356. package/deployments/56-offchain-helper.json +1 -1
  357. package/deployments/57073-core.json +19 -0
  358. package/deployments/747474-core.json +19 -0
  359. package/deployments/80094-core.json +9 -4
  360. package/deployments/80094-offchain-helper.json +1 -1
  361. package/deployments/8453-core.json +9 -4
  362. package/deployments/8453-offchain-helper.json +1 -1
  363. package/deployments/9745-core.json +8 -3
  364. package/deployments/9745-offchain-helper.json +1 -1
  365. package/deployments/999-core.json +8 -3
  366. package/deployments/999-offchain-helper.json +1 -1
  367. package/package.json +2 -2
  368. package/typechain-types/BridgeFunder.ts +344 -0
  369. package/typechain-types/DepositBox.ts +260 -0
  370. package/typechain-types/DepositBoxFactory.ts +226 -0
  371. package/typechain-types/FixedPricePTAMMV2.ts +1104 -0
  372. package/typechain-types/IPAllActionV3.ts +0 -54
  373. package/typechain-types/IPBridgeFunder.ts +165 -0
  374. package/typechain-types/IPCrossChainSwapHub.ts +656 -0
  375. package/typechain-types/IPDepositBox.ts +213 -0
  376. package/typechain-types/IPDepositBoxFactory.ts +226 -0
  377. package/typechain-types/IPFixedPricePTAMMV2.ts +864 -0
  378. package/typechain-types/IPGaugeController.ts +86 -0
  379. package/typechain-types/IPLimitRouter.ts +187 -0
  380. package/typechain-types/IPSwapHelper.ts +161 -0
  381. package/typechain-types/LimitRouterBase.ts +295 -34
  382. package/typechain-types/MintSyHelper.ts +230 -0
  383. package/typechain-types/OFTAdapterAltImpl.ts +1350 -0
  384. package/typechain-types/PendleBridgedPrincipalTokenAlt.ts +1708 -0
  385. package/typechain-types/PendleCrossChainSwapHub.ts +911 -0
  386. package/typechain-types/PendleFeeSetter.ts +53 -0
  387. package/typechain-types/PendleGaugeControllerUpg.ts +86 -0
  388. package/typechain-types/PendleLimitRouter.ts +295 -34
  389. package/typechain-types/PendleProxyAdmin.ts +341 -0
  390. package/typechain-types/PendleSwapHelper.ts +161 -0
  391. package/typechain-types/ProxyAdmin.ts +341 -0
  392. package/typechain-types/SwapHubBase.ts +886 -0
  393. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  394. package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
  395. package/typechain-types/factories/ActionCrossChain__factory.ts +1 -1
  396. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  397. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  398. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  399. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  400. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
  401. package/typechain-types/factories/ActionSimple__factory.ts +1 -1
  402. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  403. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
  404. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  405. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  406. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  407. package/typechain-types/factories/BridgeFunder__factory.ts +265 -0
  408. package/typechain-types/factories/DepositBoxFactory__factory.ts +189 -0
  409. package/typechain-types/factories/DepositBox__factory.ts +222 -0
  410. package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
  411. package/typechain-types/factories/FixedPricePTAMMV2__factory.ts +824 -0
  412. package/typechain-types/factories/FixedPricePTAMM__factory.ts +1 -1
  413. package/typechain-types/factories/IPAllActionV3__factory.ts +0 -88
  414. package/typechain-types/factories/IPBridgeFunder__factory.ts +100 -0
  415. package/typechain-types/factories/IPCrossChainSwapHub__factory.ts +828 -0
  416. package/typechain-types/factories/IPDepositBoxFactory__factory.ts +123 -0
  417. package/typechain-types/factories/IPDepositBox__factory.ts +136 -0
  418. package/typechain-types/factories/IPFixedPricePTAMMV2__factory.ts +621 -0
  419. package/typechain-types/factories/IPGaugeController__factory.ts +56 -0
  420. package/typechain-types/factories/IPLimitRouter__factory.ts +387 -0
  421. package/typechain-types/factories/IPSwapHelper__factory.ts +111 -0
  422. package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
  423. package/typechain-types/factories/LimitRouterBase__factory.ts +473 -11
  424. package/typechain-types/factories/MarketSweed__factory.ts +1 -1
  425. package/typechain-types/factories/MintSyHelper__factory.ts +168 -0
  426. package/typechain-types/factories/OFTAdapterAltImpl__factory.ts +1363 -0
  427. package/typechain-types/factories/PendleAPIFeeDepositor__factory.ts +1 -1
  428. package/typechain-types/factories/PendleBridgedPrincipalTokenAlt__factory.ts +1702 -0
  429. package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +1 -1
  430. package/typechain-types/factories/PendleCrossChainSwapHub__factory.ts +1074 -0
  431. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  432. package/typechain-types/factories/PendleFeeSetter__factory.ts +36 -1
  433. package/typechain-types/factories/PendleGaugeControllerUpg__factory.ts +57 -1
  434. package/typechain-types/factories/PendleLPWrapperFactory__factory.ts +1 -1
  435. package/typechain-types/factories/PendleLPWrapper__factory.ts +1 -1
  436. package/typechain-types/factories/PendleLimitRouter__factory.ts +483 -13
  437. package/typechain-types/factories/PendleMarketV7__factory.ts +1 -1
  438. package/typechain-types/factories/PendleMerkleDistributor__factory.ts +1 -1
  439. package/typechain-types/factories/PendleMultiTokenMerkleDistributor__factory.ts +1 -1
  440. package/typechain-types/factories/PendlePoolDeployHelperV2__factory.ts +1 -1
  441. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  442. package/typechain-types/factories/PendleProxyAdmin__factory.ts +229 -0
  443. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  444. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  445. package/typechain-types/factories/PendleSwapHelper__factory.ts +152 -0
  446. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  447. package/typechain-types/factories/PendleYieldContractFactoryUpg__factory.ts +1 -1
  448. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  449. package/typechain-types/factories/ProxyAdmin__factory.ts +210 -0
  450. package/typechain-types/factories/Reflector__factory.ts +1 -1
  451. package/typechain-types/factories/StakedPendle__factory.ts +1 -1
  452. package/typechain-types/factories/SwapHubBase__factory.ts +988 -0
  453. package/typechain-types/hardhat.d.ts +180 -9
  454. package/typechain-types/index.ts +36 -2
  455. package/build/artifacts/contracts/StPendle.sol/RoundDataLib.dbg.json +0 -4
  456. package/build/artifacts/contracts/StPendle.sol/RoundDataLib.json +0 -10
  457. package/build/artifacts/contracts/StPendle.sol/StPendle.dbg.json +0 -4
  458. package/build/artifacts/contracts/StPendle.sol/StPendle.json +0 -228
  459. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +0 -4
  460. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +0 -667
  461. package/build/artifacts/contracts/interfaces/IPActionCrossChain.sol/IPActionCrossChain.dbg.json +0 -4
  462. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +0 -4
  463. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +0 -4
  464. package/build/artifacts/contracts/router/ActionCrossChain.sol/ActionCrossChain.dbg.json +0 -4
  465. package/build/artifacts/contracts/router/ActionCrossChain.sol/ActionCrossChain.json +0 -99
  466. package/contracts/StPendle.sol +0 -121
  467. package/contracts/cross-chain/FixedPricePTAMM.sol +0 -200
  468. package/contracts/interfaces/IPFixedPricePTAMM.sol +0 -69
  469. package/typechain-types/StPendle.ts +0 -362
  470. package/typechain-types/factories/StPendle__factory.ts +0 -260
@@ -0,0 +1,162 @@
1
+ // SPDX-License-Identifier: SEE LICENSE IN LICENSE
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {IPChainlinkOracleEssential} from "../interfaces/IPChainlinkOracleEssential.sol";
5
+ import {IPFixedPricePTAMMSwapCallback, IPFixedPricePTAMMV2} from "../interfaces/IPFixedPricePTAMMV2.sol";
6
+
7
+ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
8
+ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
9
+ import {
10
+ IERC20MetadataUpgradeable
11
+ } from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol";
12
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
13
+
14
+ import {BoringOwnableUpgradeableV2} from "../core/libraries/BoringOwnableUpgradeableV2.sol";
15
+ import {TokenHelper} from "../core/libraries/TokenHelper.sol";
16
+ import {PMath} from "../core/libraries/math/PMath.sol";
17
+
18
+ contract FixedPricePTAMMV2 is
19
+ IPFixedPricePTAMMV2,
20
+ BoringOwnableUpgradeableV2,
21
+ ERC20Upgradeable,
22
+ ReentrancyGuardUpgradeable,
23
+ TokenHelper
24
+ {
25
+ // cast index-erc7201 "pendle.FixedPricePTAMM.storage"
26
+ uint256 internal constant STORAGE_SLOT = 0xbbf04d9aae855c6bd76c8f4ba7a918994ad0d002f537323e58c83cbfe5249000;
27
+
28
+ using PMath for uint256;
29
+ using PMath for int256;
30
+
31
+ address public immutable outputToken;
32
+
33
+ constructor(address _outputToken) {
34
+ _disableInitializers();
35
+ outputToken = _outputToken;
36
+ }
37
+
38
+ function initialize(address _owner) external initializer {
39
+ __BoringOwnableV2_init(_owner);
40
+ __ERC20_init(
41
+ string.concat(IERC20Metadata(outputToken).name(), " receipt"),
42
+ string.concat(IERC20Metadata(outputToken).symbol(), "-receipt")
43
+ );
44
+ __ReentrancyGuard_init();
45
+ }
46
+
47
+ function decimals() public view override(ERC20Upgradeable, IERC20MetadataUpgradeable) returns (uint8) {
48
+ return IERC20Metadata(outputToken).decimals();
49
+ }
50
+
51
+ struct OracleData {
52
+ bool isPaused;
53
+ address oracle;
54
+ // @notice This can be seen as the price at maturity.
55
+ // @notice This can help with decimals conversion.
56
+ uint256 multiplier;
57
+ }
58
+
59
+ struct Storage {
60
+ mapping(address PT => OracleData) priceOracle;
61
+ mapping(address PT => uint256) totalPT;
62
+ mapping(address user => bool) isWhitelisted;
63
+ }
64
+
65
+ function $() internal pure returns (Storage storage res) {
66
+ assembly ("memory-safe") {
67
+ res.slot := STORAGE_SLOT
68
+ }
69
+ }
70
+
71
+ function priceOracle(address PT)
72
+ public
73
+ view
74
+ returns (bool isPaused, IPChainlinkOracleEssential oracle, uint256 multiplier)
75
+ {
76
+ OracleData memory data = $().priceOracle[PT];
77
+ isPaused = data.isPaused;
78
+ oracle = IPChainlinkOracleEssential(data.oracle);
79
+ multiplier = data.multiplier;
80
+
81
+ require(address(oracle) != address(0), "FixedPricePTAMMV2: oracle not set");
82
+ }
83
+
84
+ function totalPt(address PT) external view returns (uint256) {
85
+ return $().totalPT[PT];
86
+ }
87
+
88
+ function isWhitelisted(address user) external view returns (bool) {
89
+ return $().isWhitelisted[user];
90
+ }
91
+
92
+ function previewSwapExactPtForToken(address PT, uint256 exactPtIn) public view returns (uint256 amountTokenOut) {
93
+ (bool isPaused, IPChainlinkOracleEssential oracle, uint256 multiplier) = priceOracle(PT);
94
+ require(!isPaused, "FixedPricePTAMMV2: trading paused");
95
+
96
+ (, int256 rawPrice,,,) = oracle.latestRoundData();
97
+
98
+ // exactPtIn * rawPrice * multiplier
99
+ return (exactPtIn * rawPrice.Uint() * multiplier) / (PMath.ONE * PMath.ONE);
100
+ }
101
+
102
+ function swapExactPtForToken(address receiver, address PT, uint256 exactPtIn, bytes calldata data)
103
+ external
104
+ nonReentrant
105
+ returns (uint256 netTokenOut)
106
+ {
107
+ netTokenOut = previewSwapExactPtForToken(PT, exactPtIn);
108
+
109
+ _transferOut(outputToken, receiver, netTokenOut);
110
+
111
+ if (data.length > 0) {
112
+ IPFixedPricePTAMMSwapCallback(msg.sender).swapCallback(netTokenOut, exactPtIn, data);
113
+ }
114
+
115
+ $().totalPT[PT] += exactPtIn;
116
+ require(_selfBalance(PT) >= $().totalPT[PT], "FixedPricePTAMMV2: insufficient PT received");
117
+
118
+ emit Swap(msg.sender, receiver, PT, exactPtIn, netTokenOut);
119
+ }
120
+
121
+ // Add/remove funds
122
+
123
+ modifier onlyWhitelisted() {
124
+ require($().isWhitelisted[msg.sender], "FixedPricePTAMMV2: Not whitelisted");
125
+ _;
126
+ }
127
+
128
+ function addFundWhitelisted(uint256 amount) external onlyWhitelisted nonReentrant {
129
+ _transferIn(outputToken, msg.sender, amount);
130
+ _mint(msg.sender, amount);
131
+ emit TokenFunded(msg.sender, amount);
132
+ }
133
+
134
+ function removeFund(uint256 amount) external nonReentrant {
135
+ _burn(msg.sender, amount);
136
+ _transferOut(outputToken, msg.sender, amount);
137
+ emit TokenWithdrawn(msg.sender, amount);
138
+ }
139
+
140
+ // Admin functions
141
+
142
+ function withdrawPt(address PT, uint256 amount) external onlyOwner {
143
+ _transferOut(PT, msg.sender, amount);
144
+ $().totalPT[PT] -= amount;
145
+ }
146
+
147
+ function setWhitelist(address user, bool isWhitelisted_) external onlyOwner {
148
+ $().isWhitelisted[user] = isWhitelisted_;
149
+ emit WhitelistUpdated(user, isWhitelisted_);
150
+ }
151
+
152
+ function setPriceOracle(address PT, address _priceOracle, uint256 _multiplier) external onlyOwner {
153
+ $().priceOracle[PT].oracle = _priceOracle;
154
+ $().priceOracle[PT].multiplier = _multiplier;
155
+ emit PriceOracleUpdated(PT, _priceOracle);
156
+ }
157
+
158
+ function setPausePtTrading(address PT, bool isPaused) external onlyOwner {
159
+ $().priceOracle[PT].isPaused = isPaused;
160
+ emit PauseStatusUpdated(PT, isPaused);
161
+ }
162
+ }
@@ -1,13 +1,13 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import {IPActionCrossChain, TokenOutput} from "../interfaces/IPActionCrossChain.sol";
5
- import {IPFixedPricePTAMM} from "../interfaces/IPFixedPricePTAMM.sol";
6
- import {ActionBase} from "./base/ActionBase.sol";
7
- import {IPSwapAggregator, SwapType} from "./swap-aggregator/IPSwapAggregator.sol";
4
+ import {TokenHelper} from "../core/libraries/TokenHelper.sol";
5
+ import {IPFixedPricePTAMMV2} from "../interfaces/IPFixedPricePTAMMV2.sol";
6
+ import {IPSwapHelper, TokenOutput} from "../interfaces/IPSwapHelper.sol";
7
+ import {IPSwapAggregator, SwapType} from "../router/swap-aggregator/IPSwapAggregator.sol";
8
8
  import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
9
9
 
10
- contract ActionCrossChain is ActionBase, IPActionCrossChain {
10
+ contract PendleSwapHelper is IPSwapHelper, TokenHelper {
11
11
  function swapWithFixedPricePTAMM(
12
12
  address receiver,
13
13
  address fixedPricePTAMM,
@@ -15,9 +15,13 @@ contract ActionCrossChain is ActionBase, IPActionCrossChain {
15
15
  uint256 exactPtIn,
16
16
  TokenOutput calldata out
17
17
  ) external returns (uint256 netTokenOut) {
18
+ require(
19
+ out.tokenRedeemSy == IPFixedPricePTAMMV2(fixedPricePTAMM).outputToken(), "SwapHelper: INVALID_TOKEN_REDEEM"
20
+ );
21
+
18
22
  _transferFrom(IERC20(PT), msg.sender, fixedPricePTAMM, exactPtIn);
19
- uint256 tokenOut = IPFixedPricePTAMM(fixedPricePTAMM)
20
- .swapExactPtForToken(__swapDestination(receiver, out), PT, exactPtIn, out.tokenRedeemSy, EMPTY_BYTES);
23
+ uint256 tokenOut = IPFixedPricePTAMMV2(fixedPricePTAMM)
24
+ .swapExactPtForToken(__swapDestination(receiver, out), PT, exactPtIn, "");
21
25
  return __handleTokenOutput(receiver, tokenOut, out);
22
26
  }
23
27
 
@@ -0,0 +1,66 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.30;
3
+
4
+ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
5
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
6
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
7
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
8
+ import {TokenHelper} from "../../core/libraries/TokenHelper.sol";
9
+ import {ApprovedCall, IPDepositBox} from "../../interfaces/IPDepositBox.sol";
10
+
11
+ contract DepositBox is IPDepositBox, TokenHelper, Initializable {
12
+ using Address for address;
13
+ using SafeERC20 for IERC20;
14
+
15
+ address public immutable MANAGER;
16
+ address public OWNER;
17
+ uint32 public BOX_ID;
18
+
19
+ constructor(address manager_) {
20
+ _disableInitializers();
21
+ MANAGER = manager_;
22
+ }
23
+
24
+ modifier onlyManager() {
25
+ require(msg.sender == MANAGER, "DepositBox: caller is not manager");
26
+ _;
27
+ }
28
+
29
+ function initialize(address owner_, uint32 boxId_) external initializer {
30
+ OWNER = owner_;
31
+ BOX_ID = boxId_;
32
+ }
33
+
34
+ function withdrawTo(address to, address token, uint256 amount) external onlyManager {
35
+ _transferOut(token, to, amount);
36
+ }
37
+
38
+ function approveAndCall(ApprovedCall memory call, address nativeRefund)
39
+ external
40
+ payable
41
+ onlyManager
42
+ returns (bytes memory result)
43
+ {
44
+ uint256 nativeAmount = call.token == NATIVE ? call.amount : 0;
45
+ uint256 nativeFee = msg.value;
46
+
47
+ uint256 initialNativeBalance = _selfBalance(NATIVE) - nativeAmount - nativeFee;
48
+
49
+ _approveForExtRouter(call.token, call.approveTo, call.amount);
50
+ result = call.callTo.functionCallWithValue(call.data, nativeAmount + nativeFee);
51
+ _approveForExtRouter(call.token, call.approveTo, 0);
52
+
53
+ uint256 finalNativeBalance = _selfBalance(NATIVE);
54
+
55
+ if (finalNativeBalance > initialNativeBalance) {
56
+ _transferOut(NATIVE, nativeRefund, finalNativeBalance - initialNativeBalance);
57
+ }
58
+ }
59
+
60
+ function _approveForExtRouter(address token, address extRouter, uint256 amount) internal {
61
+ if (token == NATIVE) return;
62
+ IERC20(token).forceApprove(extRouter, amount);
63
+ }
64
+
65
+ receive() external payable {}
66
+ }
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.30;
3
+
4
+ import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
5
+
6
+ import {IPDepositBox} from "../../interfaces/IPDepositBox.sol";
7
+ import {IPDepositBoxFactory} from "../../interfaces/IPDepositBoxFactory.sol";
8
+ import {DepositBox} from "./DepositBox.sol";
9
+
10
+ contract DepositBoxFactory is IPDepositBoxFactory {
11
+ /// @dev creation code of OpenZeppelin's BeaconProxy
12
+ address public immutable BEACON_PROXY_CODE_CONTRACT;
13
+ address public immutable DEPOSIT_BOX_BEACON;
14
+ bytes32 public immutable DEPOSIT_BOX_CODE_HASH;
15
+
16
+ constructor(address beaconProxyCodeContract_, address depositBoxBeacon_) {
17
+ BEACON_PROXY_CODE_CONTRACT = beaconProxyCodeContract_;
18
+ DEPOSIT_BOX_BEACON = depositBoxBeacon_;
19
+ DEPOSIT_BOX_CODE_HASH =
20
+ keccak256(abi.encodePacked(beaconProxyCodeContract_.code, abi.encode(depositBoxBeacon_, "")));
21
+ }
22
+
23
+ function computeDepositBox(address owner, uint32 boxId)
24
+ public
25
+ view
26
+ returns (address box, bytes32 salt, bool deployed)
27
+ {
28
+ salt = keccak256(abi.encode(owner, boxId));
29
+ box = Create2.computeAddress(salt, DEPOSIT_BOX_CODE_HASH);
30
+ deployed = box.code.length > 0;
31
+ }
32
+
33
+ function deployDepositBox(address owner, uint32 boxId) external returns (IPDepositBox) {
34
+ (address box, bytes32 salt, bool deployed) = computeDepositBox(owner, boxId);
35
+ if (deployed) {
36
+ return IPDepositBox(box);
37
+ }
38
+
39
+ bytes memory bytecode = abi.encodePacked(BEACON_PROXY_CODE_CONTRACT.code, abi.encode(DEPOSIT_BOX_BEACON, ""));
40
+ assert(Create2.deploy(0, salt, bytecode) == box);
41
+ DepositBox(payable(box)).initialize(owner, boxId);
42
+ return IPDepositBox(box);
43
+ }
44
+ }
@@ -0,0 +1,61 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.30;
3
+
4
+ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
7
+ import {BoringOwnableUpgradeableV2} from "../../core/libraries/BoringOwnableUpgradeableV2.sol";
8
+ import {TokenHelper} from "../../core/libraries/TokenHelper.sol";
9
+ import {BridgeData, IPBridgeFunder} from "../../interfaces/IPBridgeFunder.sol";
10
+ import {IPDepositBox} from "../../interfaces/IPDepositBox.sol";
11
+ import {IPDepositBoxFactory} from "../../interfaces/IPDepositBoxFactory.sol";
12
+
13
+ contract BridgeFunder is IPBridgeFunder, BoringOwnableUpgradeableV2, TokenHelper {
14
+ using Address for address;
15
+ using SafeERC20 for IERC20;
16
+
17
+ IPDepositBoxFactory public immutable DEPOSIT_BOX_FACTORY;
18
+
19
+ constructor(address depositBoxFactory_) {
20
+ _disableInitializers();
21
+ DEPOSIT_BOX_FACTORY = IPDepositBoxFactory(depositBoxFactory_);
22
+ }
23
+
24
+ function initialize(address _owner) external initializer {
25
+ __BoringOwnableV2_init(_owner);
26
+ }
27
+
28
+ modifier onlyDepositBox() {
29
+ IPDepositBox box = IPDepositBox(msg.sender);
30
+ address owner = box.OWNER();
31
+ uint32 boxId = box.BOX_ID();
32
+
33
+ (address computedBox,,) = DEPOSIT_BOX_FACTORY.computeDepositBox(owner, boxId);
34
+ require(computedBox == address(box), "BridgeFunder: caller is not deposit box");
35
+ _;
36
+ }
37
+
38
+ function bridge(BridgeData memory $) external onlyDepositBox returns (bytes memory result) {
39
+ require(
40
+ $.bridgeToken != $.feeToken && $.bridgeToken != NATIVE && $.feeToken != NATIVE,
41
+ "BridgeFunder: unsupported token"
42
+ );
43
+
44
+ _transferIn($.bridgeToken, msg.sender, $.bridgeAmount);
45
+ _approveForExtRouter($.bridgeToken, $.bridgeExtRouter, $.bridgeAmount);
46
+ _approveForExtRouter($.feeToken, $.bridgeExtRouter, $.feeAmount);
47
+
48
+ result = $.bridgeExtRouter.functionCall($.bridgeCalldata);
49
+
50
+ _approveForExtRouter($.bridgeToken, $.bridgeExtRouter, 0);
51
+ _approveForExtRouter($.feeToken, $.bridgeExtRouter, 0);
52
+ }
53
+
54
+ function withdraw(address receiver, address token, uint256 amount) external onlyOwner {
55
+ _transferOut(token, receiver, amount);
56
+ }
57
+
58
+ function _approveForExtRouter(address token, address extRouter, uint256 amount) internal {
59
+ IERC20(token).forceApprove(extRouter, amount);
60
+ }
61
+ }
@@ -0,0 +1,55 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+
3
+ pragma solidity ^0.8.0;
4
+
5
+ import {OFTAdapterImpl} from "./OFTAdapterImpl.sol";
6
+ import {
7
+ MessagingParams,
8
+ MessagingFee,
9
+ MessagingReceipt
10
+ } from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
11
+ import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
12
+
13
+ // @notice Base OFT contract, without any additional functionality (like RateLimiter).
14
+ // @dev This contract inherits Ownable from OpenZeppelin v4.
15
+ // @dev Sender is set as the contract owner at deployment.
16
+ contract OFTAdapterAltImpl is OFTAdapterImpl {
17
+ using SafeERC20 for IERC20;
18
+
19
+ error MsgValueNotZero(uint256 msgValue);
20
+ error NativeTokenUnavailable();
21
+
22
+ address public immutable nativeToken;
23
+
24
+ constructor(address _token, address _endpoint, address _delegate) OFTAdapterImpl(_token, _endpoint, _delegate) {
25
+ nativeToken = endpoint.nativeToken();
26
+ }
27
+
28
+ function _lzSend(
29
+ uint32 _dstEid,
30
+ bytes memory _message,
31
+ bytes memory _options,
32
+ MessagingFee memory _fee,
33
+ address _refundAddress
34
+ ) internal override returns (MessagingReceipt memory receipt) {
35
+ // In Alt implementation, msg.value should always be 0 since we use ERC20 tokens for fees
36
+ if (msg.value > 0) revert MsgValueNotZero(msg.value);
37
+
38
+ // Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.
39
+ _payNative(_fee.nativeFee);
40
+ if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);
41
+
42
+ return endpoint.send(
43
+ MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0), _refundAddress
44
+ );
45
+ }
46
+
47
+ function _payNative(uint256 _nativeFee) internal override returns (uint256 nativeFee) {
48
+ if (nativeToken == address(0)) revert NativeTokenUnavailable();
49
+
50
+ // Pay Native token fee by sending tokens to the endpoint.
51
+ IERC20(nativeToken).safeTransferFrom(msg.sender, address(endpoint), _nativeFee);
52
+
53
+ return _nativeFee;
54
+ }
55
+ }
@@ -0,0 +1,64 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {PendleBridgedPrincipalToken} from "./PendleBridgedPrincipalToken.sol";
5
+ import {
6
+ MessagingParams,
7
+ MessagingFee,
8
+ MessagingReceipt
9
+ } from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
10
+ import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
11
+
12
+ contract PendleBridgedPrincipalTokenAlt is PendleBridgedPrincipalToken {
13
+ using SafeERC20 for IERC20;
14
+
15
+ error MsgValueNotZero(uint256 msgValue);
16
+ error NativeTokenUnavailable();
17
+
18
+ address public immutable nativeToken;
19
+
20
+ constructor(
21
+ string memory _name,
22
+ string memory _symbol,
23
+ address _lzEndpoint,
24
+ address _delegate,
25
+ uint256 _expiry,
26
+ uint8 _localDecimals,
27
+ uint8 _sharedDecimals,
28
+ address initialOwner
29
+ )
30
+ PendleBridgedPrincipalToken(
31
+ _name, _symbol, _lzEndpoint, _delegate, _expiry, _localDecimals, _sharedDecimals, initialOwner
32
+ )
33
+ {
34
+ nativeToken = endpoint.nativeToken();
35
+ }
36
+
37
+ function _lzSend(
38
+ uint32 _dstEid,
39
+ bytes memory _message,
40
+ bytes memory _options,
41
+ MessagingFee memory _fee,
42
+ address _refundAddress
43
+ ) internal override returns (MessagingReceipt memory receipt) {
44
+ // In Alt implementation, msg.value should always be 0 since we use ERC20 tokens for fees
45
+ if (msg.value > 0) revert MsgValueNotZero(msg.value);
46
+
47
+ // Push corresponding fees to the endpoint, any excess is sent back to the _refundAddress from the endpoint.
48
+ _payNative(_fee.nativeFee);
49
+ if (_fee.lzTokenFee > 0) _payLzToken(_fee.lzTokenFee);
50
+
51
+ return endpoint.send(
52
+ MessagingParams(_dstEid, _getPeerOrRevert(_dstEid), _message, _options, _fee.lzTokenFee > 0), _refundAddress
53
+ );
54
+ }
55
+
56
+ function _payNative(uint256 _nativeFee) internal override returns (uint256 nativeFee) {
57
+ if (nativeToken == address(0)) revert NativeTokenUnavailable();
58
+
59
+ // Pay Native token fee by sending tokens to the endpoint.
60
+ IERC20(nativeToken).safeTransferFrom(msg.sender, address(endpoint), _nativeFee);
61
+
62
+ return _nativeFee;
63
+ }
64
+ }
@@ -0,0 +1,101 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.30;
3
+
4
+ import {ApprovedCall, IPDepositBox} from "../../interfaces/IPDepositBox.sol";
5
+ import {SwapHubBase} from "./SwapHubBase.sol";
6
+
7
+ contract PendleCrossChainSwapHub is SwapHubBase {
8
+ constructor(address treasury_, address depositBoxFactory_) SwapHubBase(treasury_, depositBoxFactory_) {
9
+ _disableInitializers();
10
+ }
11
+
12
+ function initialize(address _owner) external initializer {
13
+ __EIP712_init("Pendle Cross Chain Swap Hub", "1");
14
+ __BoringOwnableV2_init(_owner);
15
+ }
16
+
17
+ function withdrawToken(WithdrawTokenMessage memory ms, bytes memory sig) external onlyExecutor {
18
+ IPDepositBox box = _checkBoxPermit(ms.permit, hashTypedData(ms), sig);
19
+ _payTreasury(box, ms.token, ms.amountFee);
20
+ _withdrawToken(ms, box);
21
+
22
+ emit WithdrawToken(
23
+ ms.permit.owner,
24
+ ms.permit.boxId,
25
+ ms.permit.requestId,
26
+ ms.permit.nonce,
27
+ ms.token,
28
+ ms.amountWithdraw,
29
+ ms.amountFee
30
+ );
31
+ }
32
+
33
+ function bridgeToken(BridgeTokenMessage memory ms, bytes memory sig) external payable onlyExecutor {
34
+ IPDepositBox box = _checkBoxPermit(ms.permit, hashTypedData(ms), sig);
35
+ _payTreasury(box, ms.token, ms.amountFee);
36
+ _bridgeToken(ms, box, msg.value);
37
+
38
+ emit BridgeToken(
39
+ ms.permit.owner,
40
+ ms.permit.boxId,
41
+ ms.permit.requestId,
42
+ ms.permit.nonce,
43
+ ms.bridgeExtRouter,
44
+ ms.token,
45
+ ms.amountBridge,
46
+ ms.amountFee
47
+ );
48
+ }
49
+
50
+ function swapToken(SwapTokenMessage memory ms, bytes memory sig) external onlyExecutor {
51
+ IPDepositBox box = _checkBoxPermit(ms.permit, hashTypedData(ms), sig);
52
+ // swapToken does not pay treasury
53
+
54
+ uint256 netTokenReceived = _swapToken(ms, box);
55
+ require(netTokenReceived >= ms.minReceived, InsufficientTokenReceived());
56
+
57
+ emit SwapToken(
58
+ ms.permit.owner,
59
+ ms.permit.boxId,
60
+ ms.permit.requestId,
61
+ ms.permit.nonce,
62
+ ms.tokenSpent,
63
+ ms.amountSpent,
64
+ ms.tokenReceived,
65
+ netTokenReceived
66
+ );
67
+ }
68
+
69
+ function _payTreasury(IPDepositBox box, address token, uint256 amount) internal {
70
+ box.withdrawTo(TREASURY, token, amount);
71
+ }
72
+
73
+ function _withdrawToken(WithdrawTokenMessage memory ms, IPDepositBox box) internal {
74
+ box.withdrawTo(ms.permit.owner, ms.token, ms.amountWithdraw);
75
+ }
76
+
77
+ function _bridgeToken(BridgeTokenMessage memory ms, IPDepositBox box, uint256 nativeFee) internal {
78
+ ApprovedCall memory call = ApprovedCall({
79
+ token: ms.token,
80
+ amount: ms.amountBridge,
81
+ approveTo: ms.bridgeApprove,
82
+ callTo: ms.bridgeExtRouter,
83
+ data: ms.bridgeCalldata
84
+ });
85
+ box.approveAndCall{value: nativeFee}(call, msg.sender);
86
+ }
87
+
88
+ function _swapToken(SwapTokenMessage memory ms, IPDepositBox box) internal returns (uint256 rawTokenReceived) {
89
+ ApprovedCall memory call = ApprovedCall({
90
+ token: ms.tokenSpent,
91
+ amount: ms.amountSpent,
92
+ approveTo: ms.swapApprove,
93
+ callTo: ms.swapExtRouter,
94
+ data: ms.swapCalldata
95
+ });
96
+
97
+ uint256 preBalance = _balanceOf(address(box), ms.tokenReceived);
98
+ box.approveAndCall(call, address(box));
99
+ rawTokenReceived = _balanceOf(address(box), ms.tokenReceived) - preBalance;
100
+ }
101
+ }