@pendle/core-v2 6.3.0 → 6.3.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 (610) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  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/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +2 -2
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  34. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  39. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.json +2 -2
  42. package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.json +2 -2
  44. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  48. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  52. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.json +2 -2
  54. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  56. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  58. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  60. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
  62. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  64. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.json +2 -2
  66. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableV2.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +18 -2
  69. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
  71. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
  74. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  77. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
  78. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +1 -1
  79. package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +2 -2
  80. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +1 -1
  81. package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.json +2 -2
  82. package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +1 -1
  83. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.dbg.json +1 -1
  84. package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.json +2 -2
  85. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  86. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  87. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  88. package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  89. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/ILPWrapper.sol/ILPWrapper.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/IPCommonPoolDeployHelperV2.sol/IPCommonPoolDeployHelperV2.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IPExchangeRateOracle.sol/IPExchangeRateOracle.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.json +135 -0
  124. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/IPGovernanceProxy.sol/IPGovernanceProxy.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IPLPWrapperFactory.sol/IPLPWrapperFactory.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +42 -0
  138. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +13 -0
  141. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPMerkleDistributor.sol/IPMerkleDistributor.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IPMultiTokenMerkleDistributor.sol/IPMultiTokenMerkleDistributor.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/IPOffchainStorage.sol/IPOffchainStorage.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IPOracleForSy.sol/IPOracleForSy.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPPausingInterface.sol/IPPausingInterface.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IPPriceFeed.sol/IPPriceFeed.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/IPReflector.sol/IPReflector.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IPTokenWithSupplyCap.sol/IPTokenWithSupplyCap.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IRedstonePriceFeed.sol/IRedstonePriceFeed.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  170. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  171. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  172. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  173. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  174. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  175. package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.dbg.json +1 -1
  176. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  177. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +2 -2
  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/BalanceReader.json +2 -2
  184. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  185. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  186. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  187. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  188. package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.dbg.json +1 -1
  189. package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.json +2 -2
  190. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  191. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.json +2 -2
  192. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +1 -1
  193. package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.json +2 -2
  194. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.dbg.json +1 -1
  195. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.json +2 -2
  196. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/StarNFTV1.dbg.json +1 -1
  197. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
  198. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.json +2 -2
  199. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  200. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
  201. package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.dbg.json +1 -1
  202. package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.json +2 -2
  203. package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +4 -0
  204. package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.json +326 -0
  205. package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.dbg.json +1 -1
  206. package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.json +2 -2
  207. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.dbg.json +1 -1
  208. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.json +2 -2
  209. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.dbg.json +1 -1
  210. package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.json +2 -2
  211. package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.dbg.json +1 -1
  212. package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.json +2 -2
  213. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  214. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.json +2 -2
  215. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
  216. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.json +2 -2
  217. package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.dbg.json +1 -1
  218. package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.json +2 -2
  219. package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.dbg.json +1 -1
  220. package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.json +2 -2
  221. package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.dbg.json +1 -1
  222. package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.json +2 -2
  223. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/IPossibleSupplyCapInterface.dbg.json +1 -1
  224. package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/SupplyCapReader.dbg.json +1 -1
  225. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
  226. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +2 -2
  227. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +1 -1
  228. package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.json +2 -2
  229. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  230. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  231. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
  232. package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.json +2 -2
  233. package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.dbg.json +1 -1
  234. package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.json +2 -2
  235. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  236. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +2 -2
  237. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  238. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  239. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  240. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  241. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  242. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  243. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  244. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  245. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  246. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  247. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  248. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  249. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  250. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  251. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
  252. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json +2 -2
  253. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
  254. package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json +2 -2
  255. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  256. package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.dbg.json +1 -1
  257. package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.json +13 -13
  258. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +1 -1
  259. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.json +150 -12
  260. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +1 -1
  261. package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.json +2 -2
  262. package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +1 -1
  263. package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.json +2 -2
  264. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  265. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  266. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  267. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
  268. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
  269. package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.json +2 -2
  270. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
  271. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +2 -2
  272. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
  273. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +2 -2
  274. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
  275. package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +2 -2
  276. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  277. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  278. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
  279. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  280. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
  281. package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  282. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.dbg.json +1 -1
  283. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +1 -1
  284. package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.json +2 -2
  285. package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
  286. package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
  287. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/LPExpiry.dbg.json +1 -1
  288. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/PendleLpLinearDiscountOracle.dbg.json +1 -1
  289. package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracleFactory.sol/PendleLpLinearDiscountOracleFactory.dbg.json +1 -1
  290. package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
  291. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
  292. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
  293. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
  294. package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
  295. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  296. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
  297. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
  298. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
  299. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  300. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
  301. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  302. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
  303. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  304. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
  305. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  306. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
  307. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  308. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
  309. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  310. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  311. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  312. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  313. package/build/artifacts/contracts/router/RouterStorage.sol/RouterStorage.dbg.json +1 -1
  314. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  315. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  316. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  317. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  318. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  319. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  320. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.dbg.json +1 -1
  321. package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.json +2 -2
  322. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  323. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  324. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  325. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  326. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
  327. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json +2 -2
  328. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
  329. package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json +2 -2
  330. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  331. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
  332. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.json +171 -0
  333. package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
  334. package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.dbg.json +1 -1
  335. package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.dbg.json +1 -1
  336. package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.json +2 -2
  337. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
  338. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
  339. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  340. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  341. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +15 -17
  342. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +1 -1
  343. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +14 -16
  344. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +2 -3
  345. package/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol +9 -12
  346. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +12 -12
  347. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +8 -10
  348. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -12
  349. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +4 -11
  350. package/contracts/LiquidityMining/PendleMerkleDistributor.sol +11 -13
  351. package/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol +17 -22
  352. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +21 -28
  353. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +31 -27
  354. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +19 -23
  355. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +7 -8
  356. package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +6 -5
  357. package/contracts/core/Market/MarketMathCore.sol +78 -112
  358. package/contracts/core/Market/OracleLib.sol +34 -41
  359. package/contracts/core/Market/PendleGauge.sol +8 -8
  360. package/contracts/core/Market/PendleMarketFactoryV6Upg.sol +19 -16
  361. package/contracts/core/Market/PendleMarketV6.sol +63 -65
  362. package/contracts/core/RewardManager/RewardManager.sol +8 -8
  363. package/contracts/core/RewardManager/RewardManagerAbstract.sol +6 -5
  364. package/contracts/core/StandardizedYield/PYIndex.sol +2 -2
  365. package/contracts/core/YieldContracts/InterestManagerYT.sol +8 -9
  366. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +4 -8
  367. package/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol +15 -12
  368. package/contracts/core/YieldContracts/PendleYieldToken.sol +54 -41
  369. package/contracts/core/erc20/PendleERC20.sol +9 -6
  370. package/contracts/core/libraries/ArrayLib.sol +11 -13
  371. package/contracts/core/libraries/BaseSplitCodeFactory.sol +22 -29
  372. package/contracts/core/libraries/BoringOwnableUpgradeableV2.sol +2 -1
  373. package/contracts/core/libraries/Errors.sol +2 -4
  374. package/contracts/core/libraries/ExpiryUtilsLib.sol +10 -10
  375. package/contracts/core/libraries/StringLib.sol +13 -13
  376. package/contracts/core/libraries/TokenHelper.sol +3 -3
  377. package/contracts/core/libraries/math/LogExpMath.sol +77 -67
  378. package/contracts/cross-chain/FixedPricePTAMM.sol +38 -39
  379. package/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol +1 -1
  380. package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol +1 -1
  381. package/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol +15 -12
  382. package/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol +21 -24
  383. package/contracts/interfaces/ILayerZeroEndpoint.sol +5 -3
  384. package/contracts/interfaces/IPActionCallbackV3.sol +1 -1
  385. package/contracts/interfaces/IPActionInfoStatic.sol +1 -3
  386. package/contracts/interfaces/IPActionMarketAuxStatic.sol +11 -15
  387. package/contracts/interfaces/IPActionMarketCoreStatic.sol +58 -109
  388. package/contracts/interfaces/IPActionMintRedeemStatic.sol +21 -26
  389. package/contracts/interfaces/IPActionMiscV3.sol +24 -44
  390. package/contracts/interfaces/IPActionSimple.sol +24 -43
  391. package/contracts/interfaces/IPActionVePendleStatic.sol +4 -5
  392. package/contracts/interfaces/IPAllActionTypeV3.sol +14 -16
  393. package/contracts/interfaces/IPAllActionV3.sol +4 -4
  394. package/contracts/interfaces/IPAllEventsV3.sol +5 -21
  395. package/contracts/interfaces/IPBridgedPrincipalToken.sol +2 -2
  396. package/contracts/interfaces/IPCommonSYFactory.sol +3 -6
  397. package/contracts/interfaces/IPExchangeRateOracleApp.sol +44 -17
  398. package/contracts/interfaces/IPFeeDistributorV2.sol +13 -16
  399. package/contracts/interfaces/IPFixedPricePTAMM.sol +22 -34
  400. package/contracts/interfaces/IPGovernanceProxy.sol +2 -6
  401. package/contracts/interfaces/IPInterestManagerYTV2.sol +4 -3
  402. package/contracts/interfaces/IPLimitRouter.sol +16 -16
  403. package/contracts/interfaces/IPMarket.sol +25 -35
  404. package/contracts/interfaces/IPMarketFactory.sol +9 -16
  405. package/contracts/interfaces/IPMerkleDistributor.sol +6 -10
  406. package/contracts/interfaces/IPMsgSendEndpoint.sol +7 -12
  407. package/contracts/interfaces/IPMultiTokenMerkleDistributor.sol +6 -12
  408. package/contracts/interfaces/IPPYLpOracle.sol +1 -4
  409. package/contracts/interfaces/IPRouterStatic.sol +3 -3
  410. package/contracts/interfaces/IPVotingController.sol +4 -4
  411. package/contracts/interfaces/IPVotingEscrowMainchain.sol +1 -1
  412. package/contracts/interfaces/IPYieldContractFactory.sol +3 -5
  413. package/contracts/interfaces/IPYieldToken.sol +8 -11
  414. package/contracts/interfaces/IPYieldTokenV2.sol +8 -11
  415. package/contracts/interfaces/IStandardizedYield.sol +16 -17
  416. package/contracts/limit/LimitMathCore.sol +38 -56
  417. package/contracts/limit/LimitRouterBase.sol +66 -88
  418. package/contracts/limit/PendleLimitRouter.sol +11 -7
  419. package/contracts/offchain-helpers/AddressProvider.sol +1 -1
  420. package/contracts/offchain-helpers/AutomateReady.sol +2 -2
  421. package/contracts/offchain-helpers/BalanceReader.sol +21 -9
  422. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +5 -7
  423. package/contracts/offchain-helpers/Broadcaster.sol +3 -3
  424. package/contracts/offchain-helpers/BytesLib.sol +3 -5
  425. package/contracts/offchain-helpers/EmptyUUPS.sol +2 -2
  426. package/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol +5 -8
  427. package/contracts/offchain-helpers/LegacyNFTHelper.sol +1 -5
  428. package/contracts/offchain-helpers/LimitBackendHelperV2.sol +12 -12
  429. package/contracts/offchain-helpers/Multicall2.sol +9 -7
  430. package/contracts/offchain-helpers/PendleExchangeRateOracle.sol +4 -8
  431. package/contracts/offchain-helpers/PendleFeeSetter.sol +149 -0
  432. package/contracts/offchain-helpers/PendleGovernanceProxy.sol +7 -10
  433. package/contracts/offchain-helpers/PendleLPWrapper.sol +12 -3
  434. package/contracts/offchain-helpers/PendleLPWrapperFactory.sol +2 -2
  435. package/contracts/offchain-helpers/PendleMulticallV1.sol +7 -7
  436. package/contracts/offchain-helpers/PendleMulticallV2.sol +13 -12
  437. package/contracts/offchain-helpers/PendleOffchainStorage.sol +1 -1
  438. package/contracts/offchain-helpers/PendleWstETHPriceFeed.sol +4 -2
  439. package/contracts/offchain-helpers/SimulateHelper.sol +7 -6
  440. package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +13 -32
  441. package/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol +7 -11
  442. package/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol +16 -35
  443. package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +15 -35
  444. package/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol +12 -13
  445. package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +1 -4
  446. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +1 -1
  447. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +12 -9
  448. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +60 -91
  449. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +103 -190
  450. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +26 -26
  451. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +3 -3
  452. package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +8 -10
  453. package/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol +100 -40
  454. package/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol +18 -9
  455. package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol +118 -52
  456. package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol +2 -3
  457. package/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol +12 -12
  458. package/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol +17 -20
  459. package/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol +15 -19
  460. package/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol +7 -6
  461. package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol +13 -9
  462. package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol +20 -21
  463. package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol +4 -7
  464. package/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol +2 -2
  465. package/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol +13 -10
  466. package/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol +13 -10
  467. package/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol +6 -5
  468. package/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol +1 -1
  469. package/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol +3 -3
  470. package/contracts/router/ActionAddRemoveLiqV3.sol +55 -150
  471. package/contracts/router/ActionCallbackV3.sol +20 -13
  472. package/contracts/router/ActionMiscV3.sol +54 -78
  473. package/contracts/router/ActionSimple.sol +76 -128
  474. package/contracts/router/ActionSwapPTV3.sol +7 -19
  475. package/contracts/router/ActionSwapYTV3.sol +8 -20
  476. package/contracts/router/PendleRouterV4.sol +1 -1
  477. package/contracts/router/Reflector.sol +15 -21
  478. package/contracts/router/base/ActionBase.sol +61 -105
  479. package/contracts/router/base/ActionDelegateBase.sol +39 -38
  480. package/contracts/router/base/CallbackHelper.sol +21 -19
  481. package/contracts/router/math/ApproxStateLib.sol +28 -28
  482. package/contracts/router/math/MarketApproxEstimateLib.sol +11 -13
  483. package/contracts/router/math/MarketApproxLibOnchain.sol +47 -24
  484. package/contracts/router/math/MarketApproxLibV2.sol +63 -44
  485. package/contracts/router/swap-aggregator/OKXScaleHelper.sol +191 -55
  486. package/contracts/router/swap-aggregator/ParaswapScaleHelper.sol +34 -48
  487. package/contracts/router/swap-aggregator/PendleSwap.sol +26 -28
  488. package/deployments/1-offchain-helper.json +2 -1
  489. package/deployments/10-offchain-helper.json +2 -1
  490. package/deployments/146-offchain-helper.json +2 -1
  491. package/deployments/42161-offchain-helper.json +2 -1
  492. package/deployments/5000-offchain-helper.json +2 -1
  493. package/deployments/56-offchain-helper.json +2 -1
  494. package/deployments/80094-offchain-helper.json +2 -1
  495. package/deployments/8453-offchain-helper.json +2 -1
  496. package/deployments/9745-offchain-helper.json +2 -1
  497. package/deployments/999-offchain-helper.json +2 -1
  498. package/package.json +3 -5
  499. package/typechain-types/ActionCrossChain.ts +161 -0
  500. package/typechain-types/BasePendleBridgedPrincipalToken.ts +1689 -0
  501. package/typechain-types/IOKXDexRouter.ts +99 -0
  502. package/typechain-types/IPActionCrossChain.ts +161 -0
  503. package/typechain-types/IPExchangeRateOracleApp.ts +83 -0
  504. package/typechain-types/IPLimitRouter.ts +69 -0
  505. package/typechain-types/IPMarket.ts +13 -0
  506. package/typechain-types/LimitBackendHelper.ts +287 -0
  507. package/typechain-types/PendleBridgedPrincipalToken_18Decimals.ts +1689 -0
  508. package/typechain-types/PendleBridgedPrincipalToken_6Decimals.ts +1689 -0
  509. package/typechain-types/PendleBridgedPrincipalToken_8Decimals.ts +1689 -0
  510. package/typechain-types/PendleCrossChainOracleBaseApp_Init.ts +13 -19
  511. package/typechain-types/PendleExchangeRateOracleApp.ts +73 -9
  512. package/typechain-types/PendleFeeSetter.ts +522 -0
  513. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
  514. package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
  515. package/typechain-types/factories/ActionCrossChain__factory.ts +152 -0
  516. package/typechain-types/factories/ActionDelegateBase__factory.ts +1 -1
  517. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  518. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  519. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  520. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  521. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
  522. package/typechain-types/factories/ActionSimple__factory.ts +1 -1
  523. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  524. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
  525. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
  526. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
  527. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  528. package/typechain-types/factories/AddressProvider__factory.ts +1 -1
  529. package/typechain-types/factories/BalanceReader__factory.ts +1 -1
  530. package/typechain-types/factories/BasePendleBridgedPrincipalToken__factory.ts +1548 -0
  531. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  532. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  533. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
  534. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
  535. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  536. package/typechain-types/factories/EmptyUUPS__factory.ts +1 -1
  537. package/typechain-types/factories/Errors__factory.ts +17 -1
  538. package/typechain-types/factories/ExchangeRateMsgCodec__factory.ts +1 -1
  539. package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
  540. package/typechain-types/factories/FixedPricePTAMM__factory.ts +1 -1
  541. package/typechain-types/factories/IOKXDexRouter__factory.ts +171 -0
  542. package/typechain-types/factories/{IMarketSweed__factory.ts → IPActionCrossChain__factory.ts} +22 -61
  543. package/typechain-types/factories/IPExchangeRateOracleApp__factory.ts +135 -0
  544. package/typechain-types/factories/IPLimitRouter__factory.ts +42 -0
  545. package/typechain-types/factories/IPMarket__factory.ts +13 -0
  546. package/typechain-types/factories/LegacyNFTHelper__factory.ts +1 -1
  547. package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
  548. package/typechain-types/factories/LimitBackendHelper__factory.ts +232 -0
  549. package/typechain-types/factories/Multicall2__factory.ts +1 -1
  550. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  551. package/typechain-types/factories/OverfillMathLib__factory.ts +1 -1
  552. package/typechain-types/factories/PendleBridgedPrincipalToken_18Decimals__factory.ts +1652 -0
  553. package/typechain-types/factories/PendleBridgedPrincipalToken_6Decimals__factory.ts +1650 -0
  554. package/typechain-types/factories/PendleBridgedPrincipalToken_8Decimals__factory.ts +1650 -0
  555. package/typechain-types/factories/PendleBridgedPrincipalToken__factory.ts +1 -1
  556. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
  557. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -1
  558. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -1
  559. package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +1 -1
  560. package/typechain-types/factories/PendleCommonSYFactory__factory.ts +1 -1
  561. package/typechain-types/factories/PendleCrossChainOracleBaseApp_Init__factory.ts +13 -13
  562. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  563. package/typechain-types/factories/PendleExchangeRateOracleApp__factory.ts +150 -19
  564. package/typechain-types/factories/PendleExchangeRateOracleV2__factory.ts +1 -1
  565. package/typechain-types/factories/PendleExchangeRateOracle__factory.ts +1 -1
  566. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  567. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  568. package/typechain-types/factories/PendleFeeSetter__factory.ts +395 -0
  569. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  570. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  571. package/typechain-types/factories/PendleGovernanceProxy__factory.ts +1 -1
  572. package/typechain-types/factories/PendleLPWrapperFactory__factory.ts +1 -1
  573. package/typechain-types/factories/PendleLPWrapper__factory.ts +1 -1
  574. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  575. package/typechain-types/factories/PendleMarketFactoryV6Upg__factory.ts +1 -1
  576. package/typechain-types/factories/PendleMarketV6__factory.ts +1 -1
  577. package/typechain-types/factories/PendleMerkleDistributor__factory.ts +1 -1
  578. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  579. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  580. package/typechain-types/factories/PendleMultiTokenMerkleDistributor__factory.ts +1 -1
  581. package/typechain-types/factories/PendleMulticallOwnerV1__factory.ts +1 -1
  582. package/typechain-types/factories/PendleMulticallV1__factory.ts +1 -1
  583. package/typechain-types/factories/PendleMulticallV2__factory.ts +1 -1
  584. package/typechain-types/factories/PendleOffchainStorage__factory.ts +1 -1
  585. package/typechain-types/factories/PendlePTOFTAdapterFactory__factory.ts +1 -1
  586. package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
  587. package/typechain-types/factories/PendlePoolDeployHelperV2__factory.ts +1 -1
  588. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  589. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  590. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  591. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  592. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactoryWrapper__factory.ts +1 -1
  593. package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
  594. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  595. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  596. package/typechain-types/factories/PendleWstETHPriceFeed__factory.ts +1 -1
  597. package/typechain-types/factories/PendleYieldContractFactoryUpg__factory.ts +1 -1
  598. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  599. package/typechain-types/factories/Reflector__factory.ts +1 -1
  600. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1 -1
  601. package/typechain-types/factories/SimulateHelper__factory.ts +1 -1
  602. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  603. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  604. package/typechain-types/hardhat.d.ts +27 -27
  605. package/typechain-types/index.ts +6 -6
  606. package/typechain-types/IMarketSweed.ts +0 -203
  607. package/typechain-types/LimitMathCore.ts +0 -102
  608. package/typechain-types/MarketSweed.ts +0 -255
  609. package/typechain-types/factories/LimitMathCore__factory.ts +0 -87
  610. package/typechain-types/factories/MarketSweed__factory.ts +0 -385
@@ -1,10 +1,10 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.17;
3
3
 
4
+ import "../../../LiquidityMining/libraries/VeBalanceLib.sol";
4
5
  import "../../../core/libraries/MiniHelpers.sol";
5
6
  import "../../../interfaces/IPRouterStatic.sol";
6
7
  import "../../../interfaces/IPVotingEscrowMainchain.sol";
7
- import "../../../LiquidityMining/libraries/VeBalanceLib.sol";
8
8
 
9
9
  contract ActionVePendleStatic is IPActionVePendleStatic {
10
10
  using VeBalanceLib for VeBalance;
@@ -19,11 +19,11 @@ contract ActionVePendleStatic is IPActionVePendleStatic {
19
19
  vePENDLE = _vePENDLE;
20
20
  }
21
21
 
22
- function increaseLockPositionStatic(
23
- address user,
24
- uint128 additionalAmountToLock,
25
- uint128 newExpiry
26
- ) external view returns (uint128 newVeBalance) {
22
+ function increaseLockPositionStatic(address user, uint128 additionalAmountToLock, uint128 newExpiry)
23
+ external
24
+ view
25
+ returns (uint128 newVeBalance)
26
+ {
27
27
  if (!WeekMath.isValidWTime(newExpiry)) revert Errors.InvalidWTime(newExpiry);
28
28
  if (MiniHelpers.isTimeInThePast(newExpiry)) revert Errors.ExpiryInThePast(newExpiry);
29
29
 
@@ -44,10 +44,8 @@ contract ActionVePendleStatic is IPActionVePendleStatic {
44
44
 
45
45
  uint128 additionalDurationToLock = newExpiry - oldPosition.expiry;
46
46
 
47
- LockedPosition memory newPosition = LockedPosition(
48
- oldPosition.amount + additionalAmountToLock,
49
- oldPosition.expiry + additionalDurationToLock
50
- );
47
+ LockedPosition memory newPosition =
48
+ LockedPosition(oldPosition.amount + additionalAmountToLock, oldPosition.expiry + additionalDurationToLock);
51
49
 
52
50
  VeBalance memory newBalance = newPosition.convertToVeBalance();
53
51
  return newBalance.getCurrentValue();
@@ -1,23 +1,25 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../../../core/libraries/math/PMath.sol";
5
4
  import "../../../core/Market/MarketMathCore.sol";
5
+ import "../../../core/libraries/math/PMath.sol";
6
6
  import {ApproxParams} from "../../../interfaces/IPAllActionTypeV3.sol";
7
7
 
8
- /// Further explanation of the eps. Take swapExactSyForPt for example. To calc the corresponding amount of Pt to swap out,
9
- /// it's necessary to run an approximation algorithm, because by default there only exists the Pt to Sy formula
8
+ /// Further explanation of the eps. Take swapExactSyForPt for example. To calc the corresponding amount of Pt to swap
9
+ /// out, it's necessary to run an approximation algorithm, because by default there only exists the Pt to Sy formula
10
10
  /// To approx, the 5 values above will have to be provided, and the approx process will run as follows:
11
11
  /// mid = (guessMin + guessMax) / 2 // mid here is the current guess of the amount of Pt out
12
12
  /// netSyNeed = calcSwapSyForExactPt(mid)
13
13
  /// if (netSyNeed > exactSyIn) guessMax = mid - 1 // since the maximum Sy in can't exceed the exactSyIn
14
14
  /// else guessMin = mid (1)
15
15
  /// For the (1), since netSyNeed <= exactSyIn, the result might be usable. If the netSyNeed is within eps of
16
- /// exactSyIn (ex eps=0.1% => we have used 99.9% the amount of Sy specified), mid will be chosen as the final guess result
16
+ /// exactSyIn (ex eps=0.1% => we have used 99.9% the amount of Sy specified), mid will be chosen as the final guess
17
+ /// result
17
18
 
18
19
  /// for guessOffchain, this is to provide a shortcut to guessing. The offchain SDK can precalculate the exact result
19
- /// before the tx is sent. When the tx reaches the contract, the guessOffchain will be checked first, and if it satisfies the
20
- /// approximation, it will be used (and save all the guessing). It's expected that this shortcut will be used in most cases
20
+ /// before the tx is sent. When the tx reaches the contract, the guessOffchain will be checked first, and if it
21
+ /// satisfies the approximation, it will be used (and save all the guessing). It's expected that this shortcut will be
22
+ /// used in most cases
21
23
  /// except in cases that there is a trade in the same market right before the tx
22
24
 
23
25
  library MarketApproxPtInLibV1 {
@@ -40,7 +42,15 @@ library MarketApproxPtInLibV1 {
40
42
  uint256 minSyOut,
41
43
  uint256 blockTime,
42
44
  ApproxParams memory approx
43
- ) internal pure returns (uint256, /*netPtIn*/ uint256, /*netSyOut*/ uint256 /*netSyFee*/) {
45
+ )
46
+ internal
47
+ pure
48
+ returns (
49
+ uint256, /*netPtIn*/
50
+ uint256, /*netSyOut*/
51
+ uint256 /*netSyFee*/
52
+ )
53
+ {
44
54
  MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
45
55
  if (approx.guessOffchain == 0) {
46
56
  // no limit on min
@@ -50,7 +60,7 @@ library MarketApproxPtInLibV1 {
50
60
 
51
61
  for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
52
62
  uint256 guess = nextGuess(approx, iter);
53
- (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
63
+ (uint256 netSyOut, uint256 netSyFee,) = calcSyOut(market, comp, index, guess);
54
64
 
55
65
  if (netSyOut >= minSyOut) {
56
66
  if (PMath.isAGreaterApproxB(netSyOut, minSyOut, approx.eps)) {
@@ -79,7 +89,15 @@ library MarketApproxPtInLibV1 {
79
89
  uint256 exactSyIn,
80
90
  uint256 blockTime,
81
91
  ApproxParams memory approx
82
- ) internal pure returns (uint256, /*netYtOut*/ uint256 /*netSyFee*/, uint256 /*iter*/) {
92
+ )
93
+ internal
94
+ pure
95
+ returns (
96
+ uint256, /*netYtOut*/
97
+ uint256, /*netSyFee*/
98
+ uint256 /*iter*/
99
+ )
100
+ {
83
101
  MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
84
102
  if (approx.guessOffchain == 0) {
85
103
  approx.guessMin = PMath.max(approx.guessMin, index.syToAsset(exactSyIn));
@@ -92,7 +110,7 @@ library MarketApproxPtInLibV1 {
92
110
  for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
93
111
  uint256 guess = nextGuess(approx, iter);
94
112
 
95
- (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
113
+ (uint256 netSyOut, uint256 netSyFee,) = calcSyOut(market, comp, index, guess);
96
114
 
97
115
  uint256 netSyToTokenizePt = index.assetToSyUp(guess);
98
116
 
@@ -135,7 +153,16 @@ library MarketApproxPtInLibV1 {
135
153
  uint256 _netSyHolding,
136
154
  uint256 _blockTime,
137
155
  ApproxParams memory approx
138
- ) internal pure returns (uint256, /*netPtSwap*/ uint256, /*netSyFromSwap*/ uint256, /*netSyFee*/ uint256 /*iter*/) {
156
+ )
157
+ internal
158
+ pure
159
+ returns (
160
+ uint256, /*netPtSwap*/
161
+ uint256, /*netSyFromSwap*/
162
+ uint256, /*netSyFee*/
163
+ uint256 /*iter*/
164
+ )
165
+ {
139
166
  Args5 memory a = Args5(_market, _index, _totalPtIn, _netSyHolding, _blockTime, approx);
140
167
  MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
141
168
  if (approx.guessOffchain == 0) {
@@ -149,14 +176,8 @@ library MarketApproxPtInLibV1 {
149
176
  for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
150
177
  uint256 guess = nextGuess(approx, iter);
151
178
 
152
- (uint256 syNumerator, uint256 ptNumerator, uint256 netSyOut, uint256 netSyFee, ) = calcNumerators(
153
- a.market,
154
- a.index,
155
- a.totalPtIn,
156
- a.netSyHolding,
157
- comp,
158
- guess
159
- );
179
+ (uint256 syNumerator, uint256 ptNumerator, uint256 netSyOut, uint256 netSyFee,) =
180
+ calcNumerators(a.market, a.index, a.totalPtIn, a.netSyHolding, comp, guess);
160
181
 
161
182
  if (PMath.isAApproxB(syNumerator, ptNumerator, approx.eps)) {
162
183
  return (guess, netSyOut, netSyFee, iter);
@@ -214,7 +235,15 @@ library MarketApproxPtInLibV1 {
214
235
  uint256 exactPtIn,
215
236
  uint256 blockTime,
216
237
  ApproxParams memory approx
217
- ) internal pure returns (uint256, /*netYtOut*/ uint256, /*totalPtToSwap*/ uint256 /*netSyFee*/) {
238
+ )
239
+ internal
240
+ pure
241
+ returns (
242
+ uint256, /*netYtOut*/
243
+ uint256, /*totalPtToSwap*/
244
+ uint256 /*netSyFee*/
245
+ )
246
+ {
218
247
  MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
219
248
  if (approx.guessOffchain == 0) {
220
249
  approx.guessMin = PMath.max(approx.guessMin, exactPtIn);
@@ -225,7 +254,7 @@ library MarketApproxPtInLibV1 {
225
254
  for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
226
255
  uint256 guess = nextGuess(approx, iter);
227
256
 
228
- (uint256 netSyOut, uint256 netSyFee, ) = calcSyOut(market, comp, index, guess);
257
+ (uint256 netSyOut, uint256 netSyFee,) = calcSyOut(market, comp, index, guess);
229
258
 
230
259
  uint256 netAssetOut = index.syToAsset(netSyOut);
231
260
 
@@ -246,12 +275,11 @@ library MarketApproxPtInLibV1 {
246
275
 
247
276
  ////////////////////////////////////////////////////////////////////////////////
248
277
 
249
- function calcSyOut(
250
- MarketState memory market,
251
- MarketPreCompute memory comp,
252
- PYIndex index,
253
- uint256 netPtIn
254
- ) internal pure returns (uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve) {
278
+ function calcSyOut(MarketState memory market, MarketPreCompute memory comp, PYIndex index, uint256 netPtIn)
279
+ internal
280
+ pure
281
+ returns (uint256 netSyOut, uint256 netSyFee, uint256 netSyToReserve)
282
+ {
255
283
  (int256 _netSyOut, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(comp, index, -int256(netPtIn));
256
284
  netSyOut = uint256(_netSyOut);
257
285
  netSyFee = uint256(_netSyFee);
@@ -323,7 +351,15 @@ library MarketApproxPtOutLibV1 {
323
351
  uint256 exactSyIn,
324
352
  uint256 blockTime,
325
353
  ApproxParams memory approx
326
- ) internal pure returns (uint256, /*netPtOut*/ uint256 /*netSyFee*/, uint256 /*iter*/) {
354
+ )
355
+ internal
356
+ pure
357
+ returns (
358
+ uint256, /*netPtOut*/
359
+ uint256, /*netSyFee*/
360
+ uint256 /*iter*/
361
+ )
362
+ {
327
363
  MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
328
364
  if (approx.guessOffchain == 0) {
329
365
  // no limit on min
@@ -334,7 +370,7 @@ library MarketApproxPtOutLibV1 {
334
370
  for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
335
371
  uint256 guess = nextGuess(approx, iter);
336
372
 
337
- (uint256 netSyIn, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
373
+ (uint256 netSyIn, uint256 netSyFee,) = calcSyIn(market, comp, index, guess);
338
374
 
339
375
  if (netSyIn <= exactSyIn) {
340
376
  if (PMath.isASmallerApproxB(netSyIn, exactSyIn, approx.eps)) {
@@ -363,7 +399,15 @@ library MarketApproxPtOutLibV1 {
363
399
  uint256 minSyOut,
364
400
  uint256 blockTime,
365
401
  ApproxParams memory approx
366
- ) internal pure returns (uint256, /*netYtIn*/ uint256, /*netSyOut*/ uint256 /*netSyFee*/) {
402
+ )
403
+ internal
404
+ pure
405
+ returns (
406
+ uint256, /*netYtIn*/
407
+ uint256, /*netSyOut*/
408
+ uint256 /*netSyFee*/
409
+ )
410
+ {
367
411
  MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
368
412
  if (approx.guessOffchain == 0) {
369
413
  // no limit on min
@@ -374,7 +418,7 @@ library MarketApproxPtOutLibV1 {
374
418
  for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
375
419
  uint256 guess = nextGuess(approx, iter);
376
420
 
377
- (uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
421
+ (uint256 netSyOwed, uint256 netSyFee,) = calcSyIn(market, comp, index, guess);
378
422
 
379
423
  uint256 netAssetToRepay = index.syToAssetUp(netSyOwed);
380
424
  uint256 netSyOut = index.assetToSy(guess - netAssetToRepay);
@@ -415,7 +459,16 @@ library MarketApproxPtOutLibV1 {
415
459
  uint256 _netPtHolding,
416
460
  uint256 _blockTime,
417
461
  ApproxParams memory _approx
418
- ) internal pure returns (uint256, /*netPtFromSwap*/ uint256, /*netSySwap*/ uint256, /*netSyFee*/ uint256 /*iter*/) {
462
+ )
463
+ internal
464
+ pure
465
+ returns (
466
+ uint256, /*netPtFromSwap*/
467
+ uint256, /*netSySwap*/
468
+ uint256, /*netSyFee*/
469
+ uint256 /*iter*/
470
+ )
471
+ {
419
472
  Args6 memory a = Args6(_market, _index, _totalSyIn, _netPtHolding, _blockTime, _approx);
420
473
 
421
474
  MarketPreCompute memory comp = a.market.getMarketPreCompute(a.index, a.blockTime);
@@ -482,7 +535,15 @@ library MarketApproxPtOutLibV1 {
482
535
  uint256 exactYtIn,
483
536
  uint256 blockTime,
484
537
  ApproxParams memory approx
485
- ) internal pure returns (uint256, /*netPtOut*/ uint256, /*totalPtSwapped*/ uint256 /*netSyFee*/) {
538
+ )
539
+ internal
540
+ pure
541
+ returns (
542
+ uint256, /*netPtOut*/
543
+ uint256, /*totalPtSwapped*/
544
+ uint256 /*netSyFee*/
545
+ )
546
+ {
486
547
  MarketPreCompute memory comp = market.getMarketPreCompute(index, blockTime);
487
548
  if (approx.guessOffchain == 0) {
488
549
  approx.guessMin = PMath.max(approx.guessMin, exactYtIn);
@@ -493,7 +554,7 @@ library MarketApproxPtOutLibV1 {
493
554
  for (uint256 iter = 0; iter < approx.maxIteration; ++iter) {
494
555
  uint256 guess = nextGuess(approx, iter);
495
556
 
496
- (uint256 netSyOwed, uint256 netSyFee, ) = calcSyIn(market, comp, index, guess);
557
+ (uint256 netSyOwed, uint256 netSyFee,) = calcSyIn(market, comp, index, guess);
497
558
 
498
559
  uint256 netYtToPull = index.syToAssetUp(netSyOwed);
499
560
 
@@ -511,12 +572,11 @@ library MarketApproxPtOutLibV1 {
511
572
 
512
573
  ////////////////////////////////////////////////////////////////////////////////
513
574
 
514
- function calcSyIn(
515
- MarketState memory market,
516
- MarketPreCompute memory comp,
517
- PYIndex index,
518
- uint256 netPtOut
519
- ) internal pure returns (uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve) {
575
+ function calcSyIn(MarketState memory market, MarketPreCompute memory comp, PYIndex index, uint256 netPtOut)
576
+ internal
577
+ pure
578
+ returns (uint256 netSyIn, uint256 netSyFee, uint256 netSyToReserve)
579
+ {
520
580
  (int256 _netSyIn, int256 _netSyFee, int256 _netSyToReserve) = market.calcTrade(comp, index, int256(netPtOut));
521
581
 
522
582
  // all safe since totalPt and totalSy is int128
@@ -1,22 +1,31 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import {OAppUpgradeable, Origin, MessagingFee, MessagingReceipt} from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol";
5
- import {OAppOptionsType3Upgradeable} from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/libs/OAppOptionsType3Upgradeable.sol";
4
+ import {ILayerZeroEndpointV2} from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
5
+ import {
6
+ MessagingFee,
7
+ MessagingReceipt,
8
+ OAppUpgradeable,
9
+ Origin
10
+ } from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol";
11
+ import {
12
+ OAppOptionsType3Upgradeable
13
+ } from "@layerzerolabs/oapp-evm-upgradeable/contracts/oapp/libs/OAppOptionsType3Upgradeable.sol";
6
14
 
7
15
  abstract contract PendleCrossChainOracleBaseApp_Init is OAppUpgradeable, OAppOptionsType3Upgradeable {
8
- address payable public immutable refundAddress;
16
+ uint32 public immutable eid;
9
17
 
10
18
  uint256[100] private __gap;
11
19
 
12
- constructor(address _endpoint, address payable _refundAddress) OAppUpgradeable(_endpoint) {
13
- refundAddress = _refundAddress;
20
+ constructor(address _endpoint) OAppUpgradeable(_endpoint) {
21
+ eid = ILayerZeroEndpointV2(_endpoint).eid();
14
22
  }
15
23
 
16
- function __PendleCrossChainOracleBaseApp_initialize(
17
- address _owner,
18
- address _delegate
19
- ) internal virtual onlyInitializing {
24
+ function __PendleCrossChainOracleBaseApp_initialize(address _owner, address _delegate)
25
+ internal
26
+ virtual
27
+ onlyInitializing
28
+ {
20
29
  __OApp_init(_delegate);
21
30
  _transferOwnership(_owner);
22
31
  }
@@ -1,12 +1,11 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.0;
3
3
 
4
- import "../base/PendleCrossChainOracleBaseApp_Init.sol";
5
- import {ILayerZeroEndpointV2} from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol";
4
+ import {Errors} from "../../../core/libraries/Errors.sol";
6
5
  import "../../../interfaces/IPExchangeRateOracleApp.sol";
7
6
  import {IStandardizedYield} from "../../../interfaces/IStandardizedYield.sol";
7
+ import "../base/PendleCrossChainOracleBaseApp_Init.sol";
8
8
  import {ExchangeRateMsgCodec} from "../libraries/ExchangeRateMsgCodec.sol";
9
- import {Errors} from "../../../core/libraries/Errors.sol";
10
9
 
11
10
  /**
12
11
  * @title PendleExchangeRateOracleApp
@@ -16,27 +15,17 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
16
15
  using ExchangeRateMsgCodec for bytes;
17
16
  using ExchangeRateMsgCodec for bytes32;
18
17
 
19
- uint32 public immutable eid;
20
18
  mapping(uint32 srcEid => mapping(bytes32 source => ExchangeRateData)) private feedData;
21
19
 
22
20
  address public allowedSender;
23
21
 
24
- modifier validateDstEid(uint32 dstEid) {
25
- if (dstEid == eid) revert Errors.InvalidDestinationEid();
26
- _;
27
- }
28
-
29
22
  modifier onlyOwnerOrAllowedSender() {
30
23
  require(msg.sender == owner() || msg.sender == allowedSender, "Not authorized");
31
24
  _;
32
25
  }
33
26
 
34
- constructor(
35
- address _endpoint,
36
- address payable _refundAddress
37
- ) PendleCrossChainOracleBaseApp_Init(_endpoint, _refundAddress) {
27
+ constructor(address _endpoint) PendleCrossChainOracleBaseApp_Init(_endpoint) {
38
28
  _disableInitializers();
39
- eid = ILayerZeroEndpointV2(_endpoint).eid();
40
29
  }
41
30
 
42
31
  function initialize(address _owner, address _delegate, address _allowedSender) external initializer {
@@ -45,40 +34,65 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
45
34
  }
46
35
 
47
36
  /// @inheritdoc IPExchangeRateOracleApp
48
- function quoteSendExchangeRate(
49
- SendExchangeRateParam calldata sendParam,
50
- bool payInLzToken
51
- ) external view returns (MessagingFee memory fee) {
52
- uint256 exchangeRate = _getExchangeRateFromSource(sendParam.exchangeRateSource);
53
- (bytes memory message, bytes memory options) = _buildMsgAndOptions(sendParam, exchangeRate);
37
+ function quoteSendExchangeRateBatch(SendExchangeRateParam[] calldata sendParams, bool[] calldata payInLzTokens)
38
+ external
39
+ view
40
+ returns (MessagingFee[] memory fees)
41
+ {
42
+ if (sendParams.length != payInLzTokens.length) revert Errors.ArrayLengthMismatch();
54
43
 
55
- fee = _quote(sendParam.dstEid, message, options, payInLzToken);
44
+ uint256 length = sendParams.length;
45
+ fees = new MessagingFee[](length);
46
+
47
+ for (uint256 i = 0; i < length; ++i) {
48
+ fees[i] = _quoteSendExchangeRate(sendParams[i], payInLzTokens[i]);
49
+ }
56
50
  }
57
51
 
58
52
  /// @inheritdoc IPExchangeRateOracleApp
59
- function sendExchangeRate(
60
- SendExchangeRateParam calldata sendParam,
61
- MessagingFee calldata fee
62
- )
53
+ function quoteSendExchangeRate(SendExchangeRateParam calldata sendParam, bool payInLzToken)
54
+ external
55
+ view
56
+ returns (MessagingFee memory fee)
57
+ {
58
+ return _quoteSendExchangeRate(sendParam, payInLzToken);
59
+ }
60
+
61
+ /// @inheritdoc IPExchangeRateOracleApp
62
+ function sendExchangeRateBatch(SendExchangeRateParam[] calldata sendParams, MessagingFee[] calldata fees)
63
63
  external
64
64
  payable
65
65
  onlyOwnerOrAllowedSender
66
- validateDstEid(sendParam.dstEid)
67
- returns (MessagingReceipt memory receipt)
66
+ returns (MessagingReceipt[] memory receipts)
68
67
  {
69
- uint256 exchangeRate = _getExchangeRateFromSource(sendParam.exchangeRateSource);
70
- (bytes memory message, bytes memory options) = _buildMsgAndOptions(sendParam, exchangeRate);
68
+ if (sendParams.length != fees.length) revert Errors.ArrayLengthMismatch();
69
+ _validateNativeFees(fees);
71
70
 
72
- receipt = _lzSend(sendParam.dstEid, message, options, fee, refundAddress);
71
+ uint256 length = sendParams.length;
72
+ receipts = new MessagingReceipt[](length);
73
73
 
74
- emit ExchangeRateSent(receipt.guid, sendParam.dstEid, sendParam.exchangeRateSource, exchangeRate);
74
+ for (uint256 i = 0; i < length; ++i) {
75
+ receipts[i] = _sendExchangeRate(sendParams[i], fees[i]);
76
+ }
77
+ }
78
+
79
+ /// @inheritdoc IPExchangeRateOracleApp
80
+ function sendExchangeRate(SendExchangeRateParam calldata sendParam, MessagingFee calldata fee)
81
+ external
82
+ payable
83
+ onlyOwnerOrAllowedSender
84
+ returns (MessagingReceipt memory receipt)
85
+ {
86
+ _validateNativeFee(fee);
87
+ return _sendExchangeRate(sendParam, fee);
75
88
  }
76
89
 
77
90
  /// @inheritdoc IPExchangeRateOracleApp
78
- function getExchangeRate(
79
- uint32 _srcEid,
80
- bytes32 exchangeRateSource
81
- ) external view returns (ExchangeRateData memory exchangeRateData) {
91
+ function getExchangeRate(uint32 _srcEid, bytes32 exchangeRateSource)
92
+ external
93
+ view
94
+ returns (ExchangeRateData memory exchangeRateData)
95
+ {
82
96
  if (_srcEid == eid) {
83
97
  uint256 exchangeRate = _getExchangeRateFromSource(exchangeRateSource.bytes32ToAddress());
84
98
  return ExchangeRateData(exchangeRate, block.timestamp);
@@ -89,13 +103,42 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
89
103
  if (exchangeRateData.updatedAt == 0) revert Errors.FeedNotInitialized();
90
104
  }
91
105
 
106
+ function _quoteSendExchangeRate(SendExchangeRateParam calldata sendParam, bool payInLzToken)
107
+ internal
108
+ view
109
+ returns (MessagingFee memory fee)
110
+ {
111
+ _validateDstEid(sendParam.dstEid);
112
+ uint256 exchangeRate = _getExchangeRateFromSource(sendParam.exchangeRateSource);
113
+ (bytes memory message, bytes memory options) = _buildMsgAndOptions(sendParam, exchangeRate);
114
+
115
+ fee = _quote(sendParam.dstEid, message, options, payInLzToken);
116
+ }
117
+
118
+ function _sendExchangeRate(SendExchangeRateParam calldata sendParam, MessagingFee calldata fee)
119
+ internal
120
+ returns (MessagingReceipt memory receipt)
121
+ {
122
+ _validateDstEid(sendParam.dstEid);
123
+ uint256 exchangeRate = _getExchangeRateFromSource(sendParam.exchangeRateSource);
124
+ (bytes memory message, bytes memory options) = _buildMsgAndOptions(sendParam, exchangeRate);
125
+
126
+ receipt = _lzSend(sendParam.dstEid, message, options, fee, msg.sender);
127
+
128
+ emit ExchangeRateSent(receipt.guid, sendParam.dstEid, sendParam.exchangeRateSource, exchangeRate);
129
+ }
130
+
92
131
  function _lzReceive(
93
132
  Origin calldata _origin,
94
133
  bytes32 _guid,
95
134
  bytes calldata _message,
96
- address /*_executor*/,
135
+ address,
136
+ /*_executor*/
97
137
  bytes calldata /*_extraData*/
98
- ) internal override {
138
+ )
139
+ internal
140
+ override
141
+ {
99
142
  (bytes32 exchangeRateSource, uint256 exchangeRate, uint256 updatedAt) = _message.decodeMessage();
100
143
 
101
144
  bool rateAccepted = _updateExchangeRate(_origin.srcEid, exchangeRateSource, exchangeRate, updatedAt);
@@ -103,17 +146,15 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
103
146
  emit ExchangeRateReceived(_guid, _origin.srcEid, exchangeRateSource, exchangeRate, updatedAt, rateAccepted);
104
147
  }
105
148
 
106
- function _buildMsgAndOptions(
107
- SendExchangeRateParam calldata sendParam,
108
- uint256 exchangeRate
109
- ) internal view returns (bytes memory message, bytes memory options) {
149
+ function _buildMsgAndOptions(SendExchangeRateParam calldata sendParam, uint256 exchangeRate)
150
+ internal
151
+ view
152
+ returns (bytes memory message, bytes memory options)
153
+ {
110
154
  uint16 msgType;
111
155
 
112
- (msgType, message) = ExchangeRateMsgCodec.encodeExchangeRateMessage(
113
- sendParam.exchangeRateSource,
114
- exchangeRate,
115
- block.timestamp
116
- );
156
+ (msgType, message) =
157
+ ExchangeRateMsgCodec.encodeExchangeRateMessage(sendParam.exchangeRateSource, exchangeRate, block.timestamp);
117
158
 
118
159
  options = combineOptions(sendParam.dstEid, msgType, sendParam.extraOptions);
119
160
  }
@@ -132,12 +173,10 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
132
173
  }
133
174
  }
134
175
 
135
- function _updateExchangeRate(
136
- uint32 _srcEid,
137
- bytes32 exchangeRateSource,
138
- uint256 exchangeRate,
139
- uint256 updatedAt
140
- ) internal returns (bool rateAccepted) {
176
+ function _updateExchangeRate(uint32 _srcEid, bytes32 exchangeRateSource, uint256 exchangeRate, uint256 updatedAt)
177
+ internal
178
+ returns (bool rateAccepted)
179
+ {
141
180
  ExchangeRateData storage currentFeedData = feedData[_srcEid][exchangeRateSource];
142
181
 
143
182
  if (updatedAt > currentFeedData.updatedAt) {
@@ -147,6 +186,33 @@ contract PendleExchangeRateOracleApp is PendleCrossChainOracleBaseApp_Init, IPEx
147
186
  }
148
187
  }
149
188
 
189
+ function _validateDstEid(uint32 dstEid) internal view {
190
+ if (dstEid == eid) revert Errors.InvalidDestinationEid();
191
+ }
192
+
193
+ /**
194
+ * @dev Override of base _payNative function.
195
+ * The original implementation enforced msg.value == _nativeFee, which is incompatible with
196
+ * batching multiple messages. Fee checks are performed by _validateNativeFees / _validateNativeFee,
197
+ * so this implementation simply returns the provided native fee.
198
+ */
199
+ function _payNative(uint256 _nativeFee) internal pure override returns (uint256 nativeFee) {
200
+ return _nativeFee;
201
+ }
202
+
203
+ function _validateNativeFees(MessagingFee[] calldata fees) internal {
204
+ uint256 totalFee = 0;
205
+ for (uint256 i = 0; i < fees.length; ++i) {
206
+ totalFee += fees[i].nativeFee;
207
+ }
208
+
209
+ if (totalFee != msg.value) revert Errors.NotEnoughNativeFee(msg.value, totalFee);
210
+ }
211
+
212
+ function _validateNativeFee(MessagingFee calldata fee) internal {
213
+ if (fee.nativeFee != msg.value) revert Errors.NotEnoughNativeFee(msg.value, fee.nativeFee);
214
+ }
215
+
150
216
  // ====== Admin functions ======
151
217
 
152
218
  function setAllowedSender(address _allowedSender) external onlyOwner {
@@ -16,9 +16,8 @@ contract PendleExchangeRateOracleV2 is IPExchangeRateOracle {
16
16
  }
17
17
 
18
18
  function getExchangeRate() external view returns (uint256) {
19
- IPExchangeRateOracleApp.ExchangeRateData memory exchangeRateData = IPExchangeRateOracleApp(
20
- exchangeRateOracleApp
21
- ).getExchangeRate(srcEid, exchangeRateSource);
19
+ IPExchangeRateOracleApp.ExchangeRateData memory exchangeRateData =
20
+ IPExchangeRateOracleApp(exchangeRateOracleApp).getExchangeRate(srcEid, exchangeRateSource);
22
21
 
23
22
  return exchangeRateData.exchangeRate;
24
23
  }
@@ -6,23 +6,23 @@ import {Errors} from "../../../core/libraries/Errors.sol";
6
6
  library ExchangeRateMsgCodec {
7
7
  uint16 public constant SEND_EXCHANGE_RATE = 1;
8
8
 
9
- function encodeExchangeRateMessage(
10
- address exchangeRateSource,
11
- uint256 exchangeRate,
12
- uint256 updatedAt
13
- ) internal pure returns (uint16 msgType, bytes memory message) {
9
+ function encodeExchangeRateMessage(address exchangeRateSource, uint256 exchangeRate, uint256 updatedAt)
10
+ internal
11
+ pure
12
+ returns (uint16 msgType, bytes memory message)
13
+ {
14
14
  msgType = SEND_EXCHANGE_RATE;
15
15
  message = abi.encode(msgType, exchangeRateSource, exchangeRate, updatedAt);
16
16
  }
17
17
 
18
- function decodeMessage(
19
- bytes calldata message
20
- ) internal pure returns (bytes32 exchangeRateSource, uint256 exchangeRate, uint256 updatedAt) {
18
+ function decodeMessage(bytes calldata message)
19
+ internal
20
+ pure
21
+ returns (bytes32 exchangeRateSource, uint256 exchangeRate, uint256 updatedAt)
22
+ {
21
23
  uint16 msgType;
22
- (msgType, exchangeRateSource, exchangeRate, updatedAt) = abi.decode(
23
- message,
24
- (uint16, bytes32, uint256, uint256)
25
- );
24
+ (msgType, exchangeRateSource, exchangeRate, updatedAt) =
25
+ abi.decode(message, (uint16, bytes32, uint256, uint256));
26
26
  if (msgType != SEND_EXCHANGE_RATE) revert Errors.InvalidMsgType();
27
27
  }
28
28