@pendle/core-v2 6.3.1 → 6.3.2-swaphubtest

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 (324) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  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/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableV2.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
  47. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +1 -1
  48. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +1 -1
  49. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +1 -1
  50. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.dbg.json +1 -1
  51. package/build/artifacts/contracts/cross-chain/swap-hub/DepositBox.sol/DepositBox.dbg.json +4 -0
  52. package/build/artifacts/contracts/cross-chain/swap-hub/DepositBox.sol/DepositBox.json +201 -0
  53. package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.dbg.json +4 -0
  54. package/build/artifacts/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol/PendleCrossChainSwapHub.json +1301 -0
  55. package/build/artifacts/contracts/cross-chain/swap-hub/SwapHubBase.sol/SwapHubBase.dbg.json +4 -0
  56. package/build/artifacts/contracts/cross-chain/swap-hub/SwapHubBase.sol/SwapHubBase.json +1272 -0
  57. package/build/artifacts/contracts/cross-chain/swap-hub/swap/IPSwapExecutor.sol/IPSwapExecutor.dbg.json +4 -0
  58. package/build/artifacts/contracts/cross-chain/swap-hub/swap/IPSwapExecutor.sol/IPSwapExecutor.json +56 -0
  59. package/build/artifacts/contracts/cross-chain/swap-hub/swap/SwapExecutor.sol/SwapExecutor.dbg.json +4 -0
  60. package/build/artifacts/contracts/cross-chain/swap-hub/swap/SwapExecutor.sol/SwapExecutor.json +60 -0
  61. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  62. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  63. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  64. package/build/artifacts/contracts/interfaces/ILPWrapper.sol/ILPWrapper.dbg.json +1 -1
  65. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  66. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  67. package/build/artifacts/contracts/interfaces/IMarketSweed.sol/IMarketSweed.dbg.json +4 -0
  68. package/build/artifacts/contracts/interfaces/IMarketSweed.sol/IMarketSweed.json +141 -0
  69. package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPCommonPoolDeployHelperV2.sol/IPCommonPoolDeployHelperV2.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPCrossChainSwapHub.sol/IPCrossChainSwapHub.dbg.json +4 -0
  98. package/build/artifacts/contracts/interfaces/IPCrossChainSwapHub.sol/IPCrossChainSwapHub.json +1135 -0
  99. package/build/artifacts/contracts/interfaces/IPDepositBox.sol/IPDepositBox.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/IPDepositBox.sol/IPDepositBox.json +150 -0
  101. package/build/artifacts/contracts/interfaces/IPExchangeRateOracle.sol/IPExchangeRateOracle.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPGovernanceProxy.sol/IPGovernanceProxy.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPLPWrapperFactory.sol/IPLPWrapperFactory.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IPMerkleDistributor.sol/IPMerkleDistributor.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IPMultiTokenMerkleDistributor.sol/IPMultiTokenMerkleDistributor.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IPOffchainStorage.sol/IPOffchainStorage.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPOracleForSy.sol/IPOracleForSy.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPPausingInterface.sol/IPPausingInterface.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/IPPriceFeed.sol/IPPriceFeed.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPReflector.sol/IPReflector.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IPTokenWithSupplyCap.sol/IPTokenWithSupplyCap.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IRedstonePriceFeed.sol/IRedstonePriceFeed.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  147. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  148. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  149. package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.dbg.json +1 -1
  150. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  151. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/AutomateReady.dbg.json +1 -1
  152. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IAutomate.dbg.json +1 -1
  153. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IOpsProxyFactory.dbg.json +1 -1
  154. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/ITaskTreasuryUpgradable.dbg.json +1 -1
  155. package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.dbg.json +1 -1
  156. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  157. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  158. package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.dbg.json +1 -1
  159. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  160. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +1 -1
  161. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.dbg.json +1 -1
  162. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/StarNFTV1.dbg.json +1 -1
  163. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
  164. package/build/artifacts/contracts/offchain-helpers/MarketSweed.sol/MarketSweed.dbg.json +4 -0
  165. package/build/artifacts/contracts/offchain-helpers/MarketSweed.sol/MarketSweed.json +314 -0
  166. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  167. package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.dbg.json +1 -1
  168. package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +1 -1
  169. package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.dbg.json +1 -1
  170. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.dbg.json +1 -1
  171. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.dbg.json +1 -1
  172. package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.dbg.json +1 -1
  173. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  174. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
  175. package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.dbg.json +1 -1
  176. package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.dbg.json +1 -1
  177. package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.dbg.json +1 -1
  178. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/IPossibleSupplyCapInterface.dbg.json +1 -1
  179. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/SupplyCapReader.dbg.json +1 -1
  180. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
  181. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +1 -1
  182. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  183. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
  184. package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.dbg.json +1 -1
  185. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  186. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  187. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  188. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  189. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  190. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  191. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  192. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  193. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
  194. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
  195. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  196. package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.dbg.json +1 -1
  197. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +1 -1
  198. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +1 -1
  199. package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +1 -1
  200. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  201. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  202. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
  203. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
  204. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
  205. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
  206. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  207. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  208. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  209. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  210. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.dbg.json +1 -1
  211. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +1 -1
  212. package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
  213. package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
  214. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/LPExpiry.dbg.json +1 -1
  215. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/PendleLpLinearDiscountOracle.dbg.json +1 -1
  216. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracleFactory.sol/PendleLpLinearDiscountOracleFactory.dbg.json +1 -1
  217. package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
  218. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
  219. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
  220. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  221. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  222. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  223. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  224. package/build/artifacts/contracts/router/RouterStorage.sol/RouterStorage.dbg.json +1 -1
  225. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  226. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  227. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  228. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  229. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.dbg.json +1 -1
  230. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  231. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  232. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
  233. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
  234. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  235. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
  236. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
  237. package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.dbg.json +1 -1
  238. package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.dbg.json +1 -1
  239. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  240. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
  241. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  242. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  243. package/contracts/cross-chain/swap-hub/DepositBox.sol +72 -0
  244. package/contracts/cross-chain/swap-hub/PendleCrossChainSwapHub.sol +162 -0
  245. package/contracts/cross-chain/swap-hub/SwapHubBase.sol +303 -0
  246. package/contracts/cross-chain/swap-hub/swap/IPSwapExecutor.sol +14 -0
  247. package/contracts/cross-chain/swap-hub/swap/SwapExecutor.sol +33 -0
  248. package/contracts/interfaces/IMarketSweed.sol +23 -0
  249. package/contracts/interfaces/IPCrossChainSwapHub.sol +163 -0
  250. package/contracts/interfaces/IPDepositBox.sol +25 -0
  251. package/contracts/offchain-helpers/MarketSweed.sol +250 -0
  252. package/contracts/router/swap-aggregator/OKXScaleHelper.sol +25 -90
  253. package/deployments/1-core.json +2 -1
  254. package/deployments/10-core.json +2 -1
  255. package/deployments/146-core.json +2 -1
  256. package/deployments/42161-core.json +2 -1
  257. package/deployments/5000-core.json +2 -1
  258. package/deployments/56-core.json +2 -1
  259. package/deployments/80094-core.json +2 -1
  260. package/deployments/8453-core.json +2 -1
  261. package/deployments/9745-core.json +2 -1
  262. package/deployments/999-core.json +2 -1
  263. package/package.json +2 -2
  264. package/typechain-types/DepositBox.ts +304 -0
  265. package/typechain-types/IMarketSweed.ts +203 -0
  266. package/typechain-types/IPCrossChainSwapHub.ts +1002 -0
  267. package/typechain-types/IPDepositBox.ts +257 -0
  268. package/typechain-types/IPSwapExecutor.ts +129 -0
  269. package/typechain-types/MarketSweed.ts +242 -0
  270. package/typechain-types/PendleCrossChainSwapHub.ts +1226 -0
  271. package/typechain-types/SwapExecutor.ts +129 -0
  272. package/typechain-types/SwapHubBase.ts +1201 -0
  273. package/typechain-types/factories/DepositBox__factory.ts +259 -0
  274. package/typechain-types/factories/{IPActionCrossChain__factory.ts → IMarketSweed__factory.ts} +61 -22
  275. package/typechain-types/factories/IPCrossChainSwapHub__factory.ts +1152 -0
  276. package/typechain-types/factories/IPDepositBox__factory.ts +162 -0
  277. package/typechain-types/factories/IPSwapExecutor__factory.ts +71 -0
  278. package/typechain-types/factories/MarketSweed__factory.ts +364 -0
  279. package/typechain-types/factories/PendleCrossChainSwapHub__factory.ts +1372 -0
  280. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  281. package/typechain-types/factories/SwapExecutor__factory.ts +110 -0
  282. package/typechain-types/factories/{BasePendleBridgedPrincipalToken__factory.ts → SwapHubBase__factory.ts} +693 -955
  283. package/typechain-types/hardhat.d.ts +90 -54
  284. package/typechain-types/index.ts +18 -12
  285. package/typechain-types/ActionCrossChain.ts +0 -161
  286. package/typechain-types/ActionDelegateBase.ts +0 -57
  287. package/typechain-types/BasePendleBridgedPrincipalToken.ts +0 -1689
  288. package/typechain-types/EIP712.ts +0 -135
  289. package/typechain-types/ERC20Permit.ts +0 -586
  290. package/typechain-types/IERC5267.ts +0 -135
  291. package/typechain-types/IPActionCrossChain.ts +0 -161
  292. package/typechain-types/IPMarketFactoryV3.ts +0 -321
  293. package/typechain-types/IPMarketV3.ts +0 -1068
  294. package/typechain-types/LimitBackendHelper.ts +0 -287
  295. package/typechain-types/OverfillMathLib.ts +0 -81
  296. package/typechain-types/PendleBridgedPrincipalToken_18Decimals.ts +0 -1689
  297. package/typechain-types/PendleBridgedPrincipalToken_6Decimals.ts +0 -1689
  298. package/typechain-types/PendleBridgedPrincipalToken_8Decimals.ts +0 -1689
  299. package/typechain-types/PendleERC20Permit.ts +0 -508
  300. package/typechain-types/PendleERC20PermitUpg.ts +0 -517
  301. package/typechain-types/PendleERC20Upg.ts +0 -348
  302. package/typechain-types/PendleMarketFactoryV3.ts +0 -719
  303. package/typechain-types/PendleMarketV3.ts +0 -1195
  304. package/typechain-types/PendleYieldContractFactory.ts +0 -801
  305. package/typechain-types/ShortStrings.ts +0 -57
  306. package/typechain-types/factories/ActionCrossChain__factory.ts +0 -152
  307. package/typechain-types/factories/ActionDelegateBase__factory.ts +0 -80
  308. package/typechain-types/factories/EIP712__factory.ts +0 -85
  309. package/typechain-types/factories/ERC20Permit__factory.ts +0 -433
  310. package/typechain-types/factories/IERC5267__factory.ts +0 -72
  311. package/typechain-types/factories/IPMarketFactoryV3__factory.ts +0 -217
  312. package/typechain-types/factories/IPMarketV3__factory.ts +0 -845
  313. package/typechain-types/factories/LimitBackendHelper__factory.ts +0 -232
  314. package/typechain-types/factories/OverfillMathLib__factory.ts +0 -77
  315. package/typechain-types/factories/PendleBridgedPrincipalToken_18Decimals__factory.ts +0 -1652
  316. package/typechain-types/factories/PendleBridgedPrincipalToken_6Decimals__factory.ts +0 -1650
  317. package/typechain-types/factories/PendleBridgedPrincipalToken_8Decimals__factory.ts +0 -1650
  318. package/typechain-types/factories/PendleERC20PermitUpg__factory.ts +0 -389
  319. package/typechain-types/factories/PendleERC20Permit__factory.ts +0 -470
  320. package/typechain-types/factories/PendleERC20Upg__factory.ts +0 -261
  321. package/typechain-types/factories/PendleMarketFactoryV3__factory.ts +0 -714
  322. package/typechain-types/factories/PendleMarketV3__factory.ts +0 -1211
  323. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +0 -674
  324. package/typechain-types/factories/ShortStrings__factory.ts +0 -77
@@ -0,0 +1,250 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity ^0.8.17;
4
+
5
+ import "../interfaces/IPMarket.sol";
6
+ import "../router/math/MarketApproxLibOnchain.sol";
7
+ import "../router/base/ActionBase.sol";
8
+ import "../interfaces/IMarketSweed.sol";
9
+
10
+ contract MarketSweed is ActionBase, IMarketSweed {
11
+ using PMath for uint256;
12
+ using PMath for int256;
13
+ using PYIndexLib for PYIndex;
14
+ using MarketMathCore for MarketState;
15
+ using PYIndexLib for IPYieldToken;
16
+
17
+ struct MarketTokens {
18
+ IStandardizedYield SY;
19
+ IPPrincipalToken PT;
20
+ IPYieldToken YT;
21
+ }
22
+
23
+ // solhint-disable no-empty-blocks
24
+ constructor() {}
25
+
26
+ function seedAtImpliedRate(
27
+ address receiver,
28
+ address market,
29
+ uint256 minLpOut,
30
+ uint256 minYtOut,
31
+ TokenInput calldata input,
32
+ ApproxSweedParams calldata sweedParams
33
+ ) external payable returns (uint256 netLpOut, uint256 netYtOut, int256 guessedAmountPtToSwap) {
34
+ MarketTokens memory tokens;
35
+ (tokens.SY, tokens.PT, tokens.YT) = IPMarket(market).readTokens();
36
+
37
+ _mintSyFromToken(address(this), address(tokens.SY), 1, input);
38
+
39
+ uint256 netPtOut;
40
+ (netPtOut, netYtOut, guessedAmountPtToSwap) = _swap(receiver, market, tokens, sweedParams);
41
+
42
+ uint256 netYtFromSeed;
43
+ (netLpOut, netYtFromSeed, ) = _seed(receiver, market, tokens, _selfBalance(tokens.SY), netPtOut);
44
+ netYtOut += netYtFromSeed;
45
+
46
+ if (netLpOut < minLpOut) revert("Slippage: INSUFFICIENT_LP_OUT");
47
+ if (netYtOut < minYtOut) revert("Slippage: INSUFFICIENT_YT_OUT");
48
+ }
49
+
50
+ function mintPYFromToken__noCall(
51
+ address YT,
52
+ TokenInput calldata input
53
+ ) external payable returns (uint256 netPYOut) {
54
+ address SY = IPYieldToken(YT).SY();
55
+ _mintSyFromToken(YT, SY, 1, input);
56
+ netPYOut = IPYieldToken(YT).mintPY(msg.sender, msg.sender);
57
+ }
58
+
59
+ function _seed(
60
+ address receiver,
61
+ address market,
62
+ MarketTokens memory tokens,
63
+ uint256 netSyIn,
64
+ uint256 netPtIn
65
+ ) internal returns (uint256 /*netLpOut*/, uint256 /*netYtOut*/, uint256 /*netSyMintPy*/) {
66
+ uint256 netSyMintPy = _calcSyToMintPYSeed(market, tokens, netSyIn, netPtIn);
67
+
68
+ // transfer SY to mint PY
69
+ _transferOut(address(tokens.SY), address(tokens.YT), netSyMintPy);
70
+ uint256 netPYMinted = tokens.YT.mintPY(market, receiver);
71
+
72
+ // the rest of SY goes to market
73
+ uint256 netSyAddLiquidity = netSyIn - netSyMintPy;
74
+ _transferOut(address(tokens.SY), market, netSyAddLiquidity);
75
+ _transferOut(address(tokens.PT), market, netPtIn);
76
+
77
+ (uint256 netLpOut, , ) = IPMarket(market).mint(receiver, netSyAddLiquidity, netPYMinted + netPtIn);
78
+ return (netLpOut, netPYMinted, netSyMintPy);
79
+ }
80
+
81
+ function _swap(
82
+ address receiver,
83
+ address market,
84
+ MarketTokens memory tokens,
85
+ ApproxSweedParams memory sweedParams
86
+ ) internal returns (uint256 amountPtToAccount, uint256 amountYTToAccount, int256 guessedSwap) {
87
+ PYIndex index = _getPYIndex(market);
88
+ MarketState memory state = _readMarket(market);
89
+ MarketPreCompute memory comp = state.getMarketPreCompute(index, block.timestamp);
90
+
91
+ if (PMath.isAApproxB(state.lastLnImpliedRate, sweedParams.targetLnImpliedRate, sweedParams.eps)) {
92
+ return (0, 0, 0);
93
+ }
94
+
95
+ if (state.lastLnImpliedRate > sweedParams.targetLnImpliedRate) {
96
+ // Normalize maxPtToSwap
97
+ sweedParams.maxPtToSwap = PMath.min(
98
+ sweedParams.maxPtToSwap,
99
+ MarketApproxPtOutLibOnchain.calcMaxPtOut(comp, state.totalPt)
100
+ );
101
+
102
+ int256 amountSyToAccount;
103
+
104
+ (guessedSwap, amountSyToAccount) = _calcAmountPtToBuy(state, index, sweedParams);
105
+ amountPtToAccount = guessedSwap.Uint();
106
+
107
+ _transferOut(address(tokens.SY), market, amountSyToAccount.abs());
108
+ IPMarket(market).swapSyForExactPt(address(this), guessedSwap.abs(), EMPTY_BYTES);
109
+ } else {
110
+ // Normalize maxPtToSwap
111
+ sweedParams.maxPtToSwap = PMath.min(
112
+ sweedParams.maxPtToSwap,
113
+ MarketApproxPtInLibOnchain.calcSoftMaxPtIn(state, comp)
114
+ );
115
+
116
+ guessedSwap = _calcAmountPtToSell(state, index, sweedParams);
117
+
118
+ uint256 amountPtToSell = guessedSwap.neg().Uint();
119
+ amountYTToAccount = amountPtToSell;
120
+
121
+ _transferOut(address(tokens.SY), address(tokens.YT), index.assetToSyUp(amountPtToSell));
122
+ uint256 amountPYOut = tokens.YT.mintPY(market, receiver);
123
+
124
+ assert(amountPYOut >= amountPtToSell);
125
+
126
+ // this amount of SY will be used to add liquidity in later step
127
+ IPMarket(market).swapExactPtForSy(address(this), amountPtToSell, EMPTY_BYTES);
128
+ }
129
+ }
130
+
131
+ function _calcAmountPtToBuy(
132
+ MarketState memory state,
133
+ PYIndex index,
134
+ ApproxSweedParams memory sweedParams
135
+ ) internal view returns (int256 amountPtToSwapToAccount, int256 amountSyToAccount) {
136
+ int256 refAmt = sweedParams.maxPtToSwap.Int();
137
+ int256 accPtToAccount = 0;
138
+ MarketState memory localState;
139
+
140
+ for (uint256 iter = 0; iter < sweedParams.maxIteration; ++iter) {
141
+ int256 guess;
142
+ if (iter == 0 && _isValidGuessOffchain(sweedParams, true)) {
143
+ guess = sweedParams.guessOffchain;
144
+ } else {
145
+ refAmt /= 2;
146
+ guess = accPtToAccount + refAmt;
147
+ }
148
+
149
+ _makeACopyTo(state, localState);
150
+ // Will not revert. maxPtToBuy should already be normalized
151
+ (int256 localAmountSyToAccount, , ) = localState.executeTradeCore(index, guess, block.timestamp);
152
+
153
+ if (PMath.isAApproxB(localState.lastLnImpliedRate, sweedParams.targetLnImpliedRate, sweedParams.eps)) {
154
+ return (guess, localAmountSyToAccount);
155
+ }
156
+
157
+ if (localState.lastLnImpliedRate > sweedParams.targetLnImpliedRate) {
158
+ accPtToAccount = guess;
159
+ }
160
+ }
161
+ revert("_calcAmountPtToBuy: failed");
162
+ }
163
+
164
+ function _calcAmountPtToSell(
165
+ MarketState memory state,
166
+ PYIndex index,
167
+ ApproxSweedParams memory sweedParams
168
+ ) internal view returns (int256 amountPtToSwapToAccount) {
169
+ int256 refAmt = sweedParams.maxPtToSwap.Int();
170
+ int256 accPtToAccount = 0;
171
+ MarketState memory localState;
172
+
173
+ for (uint256 iter = 0; iter < sweedParams.maxIteration; ++iter) {
174
+ int256 guess;
175
+ if (iter == 0 && _isValidGuessOffchain(sweedParams, false)) {
176
+ guess = sweedParams.guessOffchain;
177
+ } else {
178
+ refAmt /= 2;
179
+ guess = accPtToAccount - refAmt;
180
+ }
181
+
182
+ _makeACopyTo(state, localState);
183
+
184
+ // Will not revert. maxPtToSell should already be normalized
185
+ localState.executeTradeCore(index, guess, block.timestamp);
186
+
187
+ if (PMath.isAApproxB(localState.lastLnImpliedRate, sweedParams.targetLnImpliedRate, sweedParams.eps)) {
188
+ return guess;
189
+ }
190
+
191
+ if (localState.lastLnImpliedRate < sweedParams.targetLnImpliedRate) {
192
+ accPtToAccount = guess;
193
+ }
194
+ }
195
+ revert("_calcAmountPtToSell: failed");
196
+ }
197
+
198
+ function _calcSyToMintPYSeed(
199
+ address market,
200
+ MarketTokens memory tokens,
201
+ uint256 netSyIn,
202
+ uint256 netPtIn
203
+ ) internal returns (uint256 /* netSyMintPy */) {
204
+ uint256 netSyMintPy = netSyIn;
205
+ if (netPtIn > 0) {
206
+ (, , uint256 netSyDual, uint256 netPtDual) = _readMarket(market).addLiquidity(
207
+ netSyIn,
208
+ netPtIn,
209
+ block.timestamp
210
+ );
211
+ if (netPtDual < netPtIn) {
212
+ revert("MS: Bought too much PT");
213
+ }
214
+ netSyMintPy -= netSyDual;
215
+ }
216
+
217
+ MarketState memory state = _readMarket(market);
218
+ PYIndex pyIndex = tokens.YT.newIndex();
219
+ netSyMintPy =
220
+ (netSyMintPy * state.totalPt.Uint()) /
221
+ (state.totalPt.Uint() + pyIndex.syToAsset(state.totalSy.Uint()));
222
+
223
+ return netSyMintPy;
224
+ }
225
+
226
+ function _getPYIndex(address market) internal returns (PYIndex) {
227
+ (, , IPYieldToken YT) = IPMarket(market).readTokens();
228
+ return PYIndex.wrap(YT.pyIndexCurrent());
229
+ }
230
+
231
+ function _makeACopyTo(MarketState memory state, MarketState memory copiedState) internal pure {
232
+ copiedState.totalPt = state.totalPt;
233
+ copiedState.totalSy = state.totalSy;
234
+ copiedState.totalLp = state.totalLp;
235
+ copiedState.treasury = state.treasury;
236
+
237
+ copiedState.scalarRoot = state.scalarRoot;
238
+ copiedState.expiry = state.expiry;
239
+
240
+ copiedState.lnFeeRateRoot = state.lnFeeRateRoot;
241
+ copiedState.reserveFeePercent = state.reserveFeePercent;
242
+ copiedState.lastLnImpliedRate = state.lastLnImpliedRate;
243
+ }
244
+
245
+ function _isValidGuessOffchain(ApproxSweedParams memory sweedParams, bool isBuyingPt) internal pure returns (bool) {
246
+ if (sweedParams.guessOffchain == 0) return false;
247
+ if (isBuyingPt != (sweedParams.guessOffchain > 0)) return false;
248
+ return sweedParams.guessOffchain.abs() <= sweedParams.maxPtToSwap;
249
+ }
250
+ }
@@ -161,7 +161,7 @@ abstract contract OKXScaleHelper {
161
161
  revert("PendleSwap: OKX selector not supported");
162
162
  }
163
163
 
164
- scaledCallData = _scaleTrimInfo(dataToDecode, scaledCallData, actualAmount, rawAmountIn);
164
+ scaledCallData = _scaleTrimInfo(rawCallData, scaledCallData, actualAmount, rawAmountIn);
165
165
  return scaledCallData;
166
166
  }
167
167
 
@@ -176,104 +176,42 @@ abstract contract OKXScaleHelper {
176
176
  }
177
177
  }
178
178
 
179
- // ┌─────────────┬─────────────┬─────────────────┬─────────────┬─────────────┬─────────────────┐
180
- // │ trim_flag │ padding │ expect_amount │ trim_flag │ trim_rate │ trim_address │
181
- // │ 6 bytes │ 6 bytes │ 20 bytes │ 6 bytes │ 6 bytes │ 20 bytes │
182
- // │0x777777771111│0x000000000000│ │0x777777771111│ │ │
183
- // └─────────────┴─────────────┴─────────────────┴─────────────┴─────────────┴─────────────────┘
184
- // ←────────────── 32 bytes ──────────────→
185
- // ←────────────── 32 bytes ──────────────→
186
-
187
- // ┌─────────────┬─────────────┬─────────────────┬─────────────┬─────────────┬─────────────────┬─────────────┬─────────────┬─────────────────┐
188
- // │ trim_flag │ charge_rate │ charge_address │ trim_flag │ padding │ expect_amount │
189
- // trim_flag │ trim_rate1 │ trim_address1 │
190
- // │ 6 bytes │ 6 bytes │ 20 bytes │ 6 bytes │ 6 bytes │ 20 bytes │ 6
191
- // bytes │ 6 bytes │ 20 bytes │ │0x777777772222│ │
192
- // │0x777777772222│0x000000000000│ │0x77777772222│ │ │
193
- // └─────────────┴─────────────┴─────────────────┴─────────────┴─────────────┴─────────────────┴─────────────┴─────────────┴─────────────────┘
194
- // ←────────────── 32 bytes ──────────────→
195
- // ←────────────── 32 bytes ──────────────→
196
- // ←────────────── 32 bytes ──────────────→
197
179
  function _scaleTrimInfo(
198
- bytes calldata dataToDecode,
180
+ bytes calldata rawCallData,
199
181
  bytes memory scaledCallData,
200
182
  uint256 actualAmountIn,
201
183
  uint256 rawAmountIn
202
184
  ) internal pure returns (bytes memory) {
203
- uint256 length = dataToDecode.length;
185
+ bytes memory tail = rawCallData[scaledCallData.length:];
204
186
  // search trim flag from back to front, get the index
205
- uint256 firstFlagIndex = length - 32;
206
- while (firstFlagIndex > 0) {
207
- if (
208
- uint256(bytes32(dataToDecode[firstFlagIndex:firstFlagIndex + 32])) & TRIM_FLAG_MASK == TRIM_FLAG
209
- || uint256(bytes32(dataToDecode[firstFlagIndex:firstFlagIndex + 32])) & TRIM_FLAG_MASK
210
- == TRIM_DUAL_FLAG
211
- ) {
212
- break;
213
- }
214
- firstFlagIndex -= 32;
215
- }
216
- require(
217
- firstFlagIndex == 0 || firstFlagIndex > scaledCallData.length + 32,
218
- "PendleSwap: OKX calldata length mismatch"
219
- );
220
- if (firstFlagIndex > scaledCallData.length + 32) {
221
- uint256 middleFlagIndex = firstFlagIndex - 32;
222
- uint256 data = uint256(bytes32(dataToDecode[middleFlagIndex:middleFlagIndex + 32]));
223
- require(
224
- data & TRIM_FLAG_MASK == TRIM_FLAG || data & TRIM_FLAG_MASK == TRIM_DUAL_FLAG,
225
- "PendleSwap: OKX trim flag not found in expected position"
226
- );
227
- uint256 expectAmountOut =
228
- uint256(bytes32(dataToDecode[middleFlagIndex:middleFlagIndex + 32])) & TRIM_EXPECT_AMOUNT_OUT_MASK;
229
-
230
- uint256 acutalExpectAmountOut = (expectAmountOut * actualAmountIn) / rawAmountIn;
231
-
232
- if (data & TRIM_FLAG_MASK == TRIM_FLAG) {
233
- bytes32 middle = bytes32(
234
- abi.encodePacked(bytes6(bytes32(uint256(TRIM_FLAG))), uint48(0), uint160(acutalExpectAmountOut))
235
- );
236
- bytes32 first = bytes32(dataToDecode[firstFlagIndex:firstFlagIndex + 32]);
237
- scaledCallData = abi.encodePacked(scaledCallData, middle, first);
238
- } else {
239
- bytes32 last = bytes32(dataToDecode[middleFlagIndex - 32:middleFlagIndex]);
240
- bytes32 middle = bytes32(
241
- abi.encodePacked(
242
- bytes6(bytes32(uint256(TRIM_DUAL_FLAG))), uint48(0), uint160(acutalExpectAmountOut)
243
- )
244
- );
245
- bytes32 first = bytes32(dataToDecode[firstFlagIndex:firstFlagIndex + 32]);
246
-
247
- scaledCallData = abi.encodePacked(scaledCallData, last, middle, first);
187
+ assembly {
188
+ let endPtr := add(add(tail, 32), mload(tail))
189
+ let startPtr := add(tail, 32)
190
+ let shown := 0
191
+
192
+ for { let i := sub(endPtr, 32) } or(gt(i, startPtr), eq(i, startPtr)) { i := sub(i, 32) } {
193
+ let data := mload(i)
194
+ if or(eq(and(data, TRIM_FLAG_MASK), TRIM_FLAG), eq(and(data, TRIM_FLAG_MASK), TRIM_DUAL_FLAG)) {
195
+ shown := add(shown, 1)
196
+ if eq(shown, 2) {
197
+ let expectAmountOut := and(data, TRIM_EXPECT_AMOUNT_OUT_MASK)
198
+ let acutalExpectAmountOut := mul(expectAmountOut, actualAmountIn)
199
+ acutalExpectAmountOut := div(acutalExpectAmountOut, rawAmountIn)
200
+ acutalExpectAmountOut := and(acutalExpectAmountOut, TRIM_EXPECT_AMOUNT_OUT_MASK)
201
+ data := and(data, not(TRIM_EXPECT_AMOUNT_OUT_MASK))
202
+ data := or(data, acutalExpectAmountOut)
203
+ mstore(i, data)
204
+ break
205
+ }
206
+ }
248
207
  }
249
208
  }
209
+ scaledCallData = bytes.concat(scaledCallData, tail);
250
210
  return scaledCallData;
251
211
  }
252
212
  }
253
213
 
254
214
  interface IOKXDexRouter {
255
- struct CommissionInfo {
256
- bool isFromTokenCommission; //0x00
257
- bool isToTokenCommission; //0x20
258
- uint256 commissionRate; //0x40
259
- address refererAddress; //0x60
260
- address token; //0x80
261
- uint256 commissionRate2; //0xa0
262
- address refererAddress2; //0xc0
263
- bool isToBCommission; //0xe0
264
- uint256 commissionRate3; //0x100
265
- address refererAddress3; //0x120
266
- }
267
-
268
- struct TrimInfo {
269
- bool hasTrim; // 0x00
270
- uint256 trimRate; // 0x20
271
- address trimAddress; // 0x40
272
- uint256 expectAmountOut; // 0x60
273
- uint256 chargeRate; // 0x80
274
- address chargeAddress; // 0xa0
275
- }
276
-
277
215
  struct BaseRequest {
278
216
  uint256 fromToken;
279
217
  address toToken;
@@ -345,10 +283,7 @@ interface IOKXDexRouter {
345
283
  uint256 minReturn,
346
284
  // solhint-disable-next-line no-unused-vars
347
285
  bytes32[] calldata pools
348
- )
349
- external
350
- payable
351
- returns (uint256 returnAmount);
286
+ ) external payable returns (uint256 returnAmount);
352
287
 
353
288
  function smartSwapByOrderId(
354
289
  uint256 orderId,
@@ -52,7 +52,8 @@
52
52
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
53
53
  "experimental": {
54
54
  "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
55
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
55
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
56
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
56
57
  },
57
58
  "vePendle": "0x4f30A9D41B80ecC5B94306AB4364951AE3170210",
58
59
  "senderEndpoint": "0x07b1014c88f14C9E910092526db57A20052E989F",
@@ -52,7 +52,8 @@
52
52
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
53
53
  "experimental": {
54
54
  "PendleChainlinkOracleFactory": "0x2A73e899389cABa2a2f648BaBA35e67f5C00EFee",
55
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
55
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
56
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
56
57
  },
57
58
  "receiverEndpoint": "0xED18de5442297a4Ec1ce59C7c7d9427Adc2A012b",
58
59
  "vePendle": "0xd5C47D2383Fddc19596489280C0A33AC42b2bB18",
@@ -48,7 +48,8 @@
48
48
  "externalRewardsDistributor": "0xae898a7d07f8e27f25e13d0f351a7401f9a5bf9d",
49
49
  "experimental": {
50
50
  "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
51
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
51
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
52
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
52
53
  },
53
54
  "lpWrapperFactory": "0xeCfEB97D7F070DA5b93c5DC274183F1D7f68532F",
54
55
  "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9",
@@ -52,7 +52,8 @@
52
52
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
53
53
  "experimental": {
54
54
  "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
55
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
55
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
56
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
56
57
  },
57
58
  "receiverEndpoint": "0xC9215ae9EC67385F38C755D862C8eE3702B5793A",
58
59
  "vePendle": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
@@ -54,7 +54,8 @@
54
54
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
55
55
  "experimental": {
56
56
  "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
57
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
57
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
58
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
58
59
  },
59
60
  "lpWrapperFactory": "0x6D653C8DAAc8D81c9CE98E038fbF94D7E652e147",
60
61
  "decimalsFactory": "0x992ec6a490a4b7f256bd59e63746951d98b29be9",
@@ -52,7 +52,8 @@
52
52
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
53
53
  "experimental": {
54
54
  "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
55
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
55
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
56
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
56
57
  },
57
58
  "receiverEndpoint": "0x998CF52b2585e05494BF9F2bF502351a9C7FdA8f",
58
59
  "vePendle": "0x8A09574b0401A856d89d1b583eE22E8cb0C5530B",
@@ -45,7 +45,8 @@
45
45
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
46
46
  "experimental": {
47
47
  "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
48
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
48
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
49
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
49
50
  },
50
51
  "receiverEndpoint": "0xd5C47D2383Fddc19596489280C0A33AC42b2bB18",
51
52
  "vePendle": "0x6875e4A945E498FE1B90BbB13CFbAF0b68658C9C",
@@ -45,7 +45,8 @@
45
45
  "externalRewardsDistributor": "0x33305665f69B4642D1275f4Ce81c23651674D21C",
46
46
  "experimental": {
47
47
  "PendleChainlinkOracleFactory": "0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd",
48
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
48
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
49
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
49
50
  },
50
51
  "receiverEndpoint": "0xeE708FC793a02F1eDd5BB9DBD7fD13010D1F7136",
51
52
  "vePendle": "0x051dcd6a80f11fE68F77Fb0EBdE03853FA96B1fD",
@@ -45,7 +45,8 @@
45
45
  "externalRewardsDistributor": "0x1Cb446fAE25Ae19878f9f71189902e2a6A6A749c",
46
46
  "experimental": {
47
47
  "PendleChainlinkOracleFactory": "0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26",
48
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
48
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
49
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
49
50
  },
50
51
  "receiverEndpoint": "0x5C3DdC827c40964728336229808E27C6374F07Bf",
51
52
  "vePendle": "0x0d7432A9f5C51fdd2407332D90D9b814827982Bf",
@@ -43,7 +43,8 @@
43
43
  "sparkLinearDiscountOracleFactory": "0x34C91651A070664279866E5f3d6B4d5F65cbbFFb",
44
44
  "experimental": {
45
45
  "PendleChainlinkOracleFactory": "0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26",
46
- "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579"
46
+ "PendleSparkLinearDiscountOracleFactoryWrapper": "0x9E80e2525c7289ebd6352B428f2beC53b5A4e579",
47
+ "MarketSweed": "0x9205aCD8A2fFD56917d4b9139bA423b4f2a70EE5"
47
48
  },
48
49
  "vePendle": "0x1fBaCedf510dAA79dfD9B41227A7ba192d5D548D",
49
50
  "receiverEndpoint": "0xaD511b12F73c145Cf158EB92E4fa256937d952A4",
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "6.3.1",
5
+ "version": "6.3.2-swaphubtest",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -55,4 +55,4 @@
55
55
  "publishConfig": {
56
56
  "access": "public"
57
57
  }
58
- }
58
+ }