@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.
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol/PendleMultiTokenMerkleDistributor.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactoryV6Upg.sol/PendleMarketFactoryV6Upg.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketV6.sol/PendleMarketV6.json +2 -2
- package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol/PendleYieldContractFactoryUpg.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableData.json +2 -2
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeableV2.sol/BoringOwnableUpgradeableV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +18 -2
- package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
- package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
- package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/FixedPricePTAMM.sol/FixedPricePTAMM.json +2 -2
- package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol/PendlePTOFTAdapterFactory.json +2 -2
- package/build/artifacts/contracts/cross-chain/oftImpl/hub/OFTAdapterImpl.sol/OFTAdapterImpl.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol/PendleBridgedPrincipalToken.json +2 -2
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
- package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILPWrapper.sol/ILPWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBridgedPrincipalToken.sol/IPBridgedPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleEssential.sol/IPChainlinkOracleEssential.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPCommonPoolDeployHelperV2.sol/IPCommonPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPExchangeRateOracle.sol/IPExchangeRateOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPExchangeRateOracleApp.sol/IPExchangeRateOracleApp.json +135 -0
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMM.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFixedPricePTAMM.sol/IPFixedPricePTAMMSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGovernanceProxy.sol/IPGovernanceProxy.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLPWrapperFactory.sol/IPLPWrapperFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +42 -0
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +13 -0
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMerkleDistributor.sol/IPMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMultiTokenMerkleDistributor.sol/IPMultiTokenMerkleDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPOffchainStorage.sol/IPOffchainStorage.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPOracleForSy.sol/IPOracleForSy.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPTOFTAdapterFactory.sol/IPPTOFTAdapterFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPausingInterface.sol/IPPausingInterface.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPoolDeployHelperV2.sol/IPPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPriceFeed.sol/IPPriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPReflector.sol/IPReflector.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPTokenWithSupplyCap.sol/IPTokenWithSupplyCap.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRedstonePriceFeed.sol/IRedstonePriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
- package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
- package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/AutomateReady.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IAutomate.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IOpsProxyFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/ITaskTreasuryUpgradable.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BytesLib.sol/BytesLib.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/StarNFTV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LimitBackendHelperV2.sol/LimitBackendHelperV2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleExchangeRateOracle.sol/PendleExchangeRateOracle.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/PendleFeeSetter.sol/PendleFeeSetter.json +326 -0
- package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleGovernanceProxy.sol/PendleGovernanceProxy.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapper.sol/PendleLPWrapper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallOwnerV1.sol/PendleMulticallOwnerV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleWstETHPriceFeed.sol/PendleWstETHPriceFeed.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/SimulateHelper.sol/SimulateHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/IPossibleSupplyCapInterface.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/SupplyCapReader.sol/SupplyCapReader.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol/MarketDeployLib.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol/PendleCrossChainOracleBaseApp_Init.json +13 -13
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol/PendleExchangeRateOracleApp.json +150 -12
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol/PendleExchangeRateOracleV2.json +2 -2
- package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol/ExchangeRateMsgCodec.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/StatelessWrapper/PendleLinearDiscountOracleWrapper.sol/PendleLinearDiscountOracleWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol/PendleSparkLinearDiscountOracleFactoryWrapper.json +2 -2
- package/build/artifacts/contracts/oracles/internal/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/LPExpiry.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracle.sol/PendleLpLinearDiscountOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleLpLinearDiscountOracleFactory.sol/PendleLpLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleRedStoneRateOracleAdapter.sol/PendleRedStoneRateOracleAdapter.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PTExpiry.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracle.sol/PendleSparkLinearDiscountOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol/PendleSparkLinearDiscountOracleFactory.json +2 -2
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
- package/build/artifacts/contracts/router/RouterStorage.sol/RouterStorage.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
- package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxEstimateLib.sol/MarketApproxEstimateLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.json +171 -0
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +15 -17
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +1 -1
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +14 -16
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +2 -3
- package/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol +9 -12
- package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +12 -12
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +8 -10
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -12
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +4 -11
- package/contracts/LiquidityMining/PendleMerkleDistributor.sol +11 -13
- package/contracts/LiquidityMining/PendleMultiTokenMerkleDistributor.sol +17 -22
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +21 -28
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +31 -27
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +19 -23
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +7 -8
- package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +6 -5
- package/contracts/core/Market/MarketMathCore.sol +78 -112
- package/contracts/core/Market/OracleLib.sol +34 -41
- package/contracts/core/Market/PendleGauge.sol +8 -8
- package/contracts/core/Market/PendleMarketFactoryV6Upg.sol +19 -16
- package/contracts/core/Market/PendleMarketV6.sol +63 -65
- package/contracts/core/RewardManager/RewardManager.sol +8 -8
- package/contracts/core/RewardManager/RewardManagerAbstract.sol +6 -5
- package/contracts/core/StandardizedYield/PYIndex.sol +2 -2
- package/contracts/core/YieldContracts/InterestManagerYT.sol +8 -9
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +4 -8
- package/contracts/core/YieldContracts/PendleYieldContractFactoryUpg.sol +15 -12
- package/contracts/core/YieldContracts/PendleYieldToken.sol +54 -41
- package/contracts/core/erc20/PendleERC20.sol +9 -6
- package/contracts/core/libraries/ArrayLib.sol +11 -13
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +22 -29
- package/contracts/core/libraries/BoringOwnableUpgradeableV2.sol +2 -1
- package/contracts/core/libraries/Errors.sol +2 -4
- package/contracts/core/libraries/ExpiryUtilsLib.sol +10 -10
- package/contracts/core/libraries/StringLib.sol +13 -13
- package/contracts/core/libraries/TokenHelper.sol +3 -3
- package/contracts/core/libraries/math/LogExpMath.sol +77 -67
- package/contracts/cross-chain/FixedPricePTAMM.sol +38 -39
- package/contracts/cross-chain/factory/hub/PendlePTOFTAdapterFactory.sol +1 -1
- package/contracts/cross-chain/oftImpl/spoke/PendleBridgedPrincipalToken.sol +1 -1
- package/contracts/deprecated/VeDistributor/PendleFeeDistributor.sol +15 -12
- package/contracts/deprecated/VeDistributor/PendleFeeDistributorV2.sol +21 -24
- package/contracts/interfaces/ILayerZeroEndpoint.sol +5 -3
- package/contracts/interfaces/IPActionCallbackV3.sol +1 -1
- package/contracts/interfaces/IPActionInfoStatic.sol +1 -3
- package/contracts/interfaces/IPActionMarketAuxStatic.sol +11 -15
- package/contracts/interfaces/IPActionMarketCoreStatic.sol +58 -109
- package/contracts/interfaces/IPActionMintRedeemStatic.sol +21 -26
- package/contracts/interfaces/IPActionMiscV3.sol +24 -44
- package/contracts/interfaces/IPActionSimple.sol +24 -43
- package/contracts/interfaces/IPActionVePendleStatic.sol +4 -5
- package/contracts/interfaces/IPAllActionTypeV3.sol +14 -16
- package/contracts/interfaces/IPAllActionV3.sol +4 -4
- package/contracts/interfaces/IPAllEventsV3.sol +5 -21
- package/contracts/interfaces/IPBridgedPrincipalToken.sol +2 -2
- package/contracts/interfaces/IPCommonSYFactory.sol +3 -6
- package/contracts/interfaces/IPExchangeRateOracleApp.sol +44 -17
- package/contracts/interfaces/IPFeeDistributorV2.sol +13 -16
- package/contracts/interfaces/IPFixedPricePTAMM.sol +22 -34
- package/contracts/interfaces/IPGovernanceProxy.sol +2 -6
- package/contracts/interfaces/IPInterestManagerYTV2.sol +4 -3
- package/contracts/interfaces/IPLimitRouter.sol +16 -16
- package/contracts/interfaces/IPMarket.sol +25 -35
- package/contracts/interfaces/IPMarketFactory.sol +9 -16
- package/contracts/interfaces/IPMerkleDistributor.sol +6 -10
- package/contracts/interfaces/IPMsgSendEndpoint.sol +7 -12
- package/contracts/interfaces/IPMultiTokenMerkleDistributor.sol +6 -12
- package/contracts/interfaces/IPPYLpOracle.sol +1 -4
- package/contracts/interfaces/IPRouterStatic.sol +3 -3
- package/contracts/interfaces/IPVotingController.sol +4 -4
- package/contracts/interfaces/IPVotingEscrowMainchain.sol +1 -1
- package/contracts/interfaces/IPYieldContractFactory.sol +3 -5
- package/contracts/interfaces/IPYieldToken.sol +8 -11
- package/contracts/interfaces/IPYieldTokenV2.sol +8 -11
- package/contracts/interfaces/IStandardizedYield.sol +16 -17
- package/contracts/limit/LimitMathCore.sol +38 -56
- package/contracts/limit/LimitRouterBase.sol +66 -88
- package/contracts/limit/PendleLimitRouter.sol +11 -7
- package/contracts/offchain-helpers/AddressProvider.sol +1 -1
- package/contracts/offchain-helpers/AutomateReady.sol +2 -2
- package/contracts/offchain-helpers/BalanceReader.sol +21 -9
- package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +5 -7
- package/contracts/offchain-helpers/Broadcaster.sol +3 -3
- package/contracts/offchain-helpers/BytesLib.sol +3 -5
- package/contracts/offchain-helpers/EmptyUUPS.sol +2 -2
- package/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol +5 -8
- package/contracts/offchain-helpers/LegacyNFTHelper.sol +1 -5
- package/contracts/offchain-helpers/LimitBackendHelperV2.sol +12 -12
- package/contracts/offchain-helpers/Multicall2.sol +9 -7
- package/contracts/offchain-helpers/PendleExchangeRateOracle.sol +4 -8
- package/contracts/offchain-helpers/PendleFeeSetter.sol +149 -0
- package/contracts/offchain-helpers/PendleGovernanceProxy.sol +7 -10
- package/contracts/offchain-helpers/PendleLPWrapper.sol +12 -3
- package/contracts/offchain-helpers/PendleLPWrapperFactory.sol +2 -2
- package/contracts/offchain-helpers/PendleMulticallV1.sol +7 -7
- package/contracts/offchain-helpers/PendleMulticallV2.sol +13 -12
- package/contracts/offchain-helpers/PendleOffchainStorage.sol +1 -1
- package/contracts/offchain-helpers/PendleWstETHPriceFeed.sol +4 -2
- package/contracts/offchain-helpers/SimulateHelper.sol +7 -6
- package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +13 -32
- package/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol +7 -11
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol +16 -35
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +15 -35
- package/contracts/offchain-helpers/deploy/lib/MarketDeployLib.sol +12 -13
- package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +1 -4
- package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +1 -1
- package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +12 -9
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +60 -91
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +103 -190
- package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +26 -26
- package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +3 -3
- package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +8 -10
- package/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol +100 -40
- package/contracts/oracles/CrossChainOracle/base/PendleCrossChainOracleBaseApp_Init.sol +18 -9
- package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleApp.sol +118 -52
- package/contracts/oracles/CrossChainOracle/exchangeRate/PendleExchangeRateOracleV2.sol +2 -3
- package/contracts/oracles/CrossChainOracle/libraries/ExchangeRateMsgCodec.sol +12 -12
- package/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol +17 -20
- package/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol +15 -19
- package/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol +7 -6
- package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol +13 -9
- package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol +20 -21
- package/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol +4 -7
- package/contracts/oracles/PtYtLpOracle/samples/BoringLpSeller.sol +2 -2
- package/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol +13 -10
- package/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol +13 -10
- package/contracts/oracles/PtYtLpOracle/samples/BoringPtSeller.sol +6 -5
- package/contracts/oracles/StatelessWrapper/PendleSparkLinearDiscountOracleFactoryWrapper.sol +1 -1
- package/contracts/oracles/internal/PendleSparkLinearDiscountOracleFactory.sol +3 -3
- package/contracts/router/ActionAddRemoveLiqV3.sol +55 -150
- package/contracts/router/ActionCallbackV3.sol +20 -13
- package/contracts/router/ActionMiscV3.sol +54 -78
- package/contracts/router/ActionSimple.sol +76 -128
- package/contracts/router/ActionSwapPTV3.sol +7 -19
- package/contracts/router/ActionSwapYTV3.sol +8 -20
- package/contracts/router/PendleRouterV4.sol +1 -1
- package/contracts/router/Reflector.sol +15 -21
- package/contracts/router/base/ActionBase.sol +61 -105
- package/contracts/router/base/ActionDelegateBase.sol +39 -38
- package/contracts/router/base/CallbackHelper.sol +21 -19
- package/contracts/router/math/ApproxStateLib.sol +28 -28
- package/contracts/router/math/MarketApproxEstimateLib.sol +11 -13
- package/contracts/router/math/MarketApproxLibOnchain.sol +47 -24
- package/contracts/router/math/MarketApproxLibV2.sol +63 -44
- package/contracts/router/swap-aggregator/OKXScaleHelper.sol +191 -55
- package/contracts/router/swap-aggregator/ParaswapScaleHelper.sol +34 -48
- package/contracts/router/swap-aggregator/PendleSwap.sol +26 -28
- package/deployments/1-offchain-helper.json +2 -1
- package/deployments/10-offchain-helper.json +2 -1
- package/deployments/146-offchain-helper.json +2 -1
- package/deployments/42161-offchain-helper.json +2 -1
- package/deployments/5000-offchain-helper.json +2 -1
- package/deployments/56-offchain-helper.json +2 -1
- package/deployments/80094-offchain-helper.json +2 -1
- package/deployments/8453-offchain-helper.json +2 -1
- package/deployments/9745-offchain-helper.json +2 -1
- package/deployments/999-offchain-helper.json +2 -1
- package/package.json +3 -5
- package/typechain-types/ActionCrossChain.ts +161 -0
- package/typechain-types/BasePendleBridgedPrincipalToken.ts +1689 -0
- package/typechain-types/IOKXDexRouter.ts +99 -0
- package/typechain-types/IPActionCrossChain.ts +161 -0
- package/typechain-types/IPExchangeRateOracleApp.ts +83 -0
- package/typechain-types/IPLimitRouter.ts +69 -0
- package/typechain-types/IPMarket.ts +13 -0
- package/typechain-types/LimitBackendHelper.ts +287 -0
- package/typechain-types/PendleBridgedPrincipalToken_18Decimals.ts +1689 -0
- package/typechain-types/PendleBridgedPrincipalToken_6Decimals.ts +1689 -0
- package/typechain-types/PendleBridgedPrincipalToken_8Decimals.ts +1689 -0
- package/typechain-types/PendleCrossChainOracleBaseApp_Init.ts +13 -19
- package/typechain-types/PendleExchangeRateOracleApp.ts +73 -9
- package/typechain-types/PendleFeeSetter.ts +522 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
- package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
- package/typechain-types/factories/ActionCrossChain__factory.ts +152 -0
- package/typechain-types/factories/ActionDelegateBase__factory.ts +1 -1
- package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
- package/typechain-types/factories/ActionSimple__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
- package/typechain-types/factories/AddressProvider__factory.ts +1 -1
- package/typechain-types/factories/BalanceReader__factory.ts +1 -1
- package/typechain-types/factories/BasePendleBridgedPrincipalToken__factory.ts +1548 -0
- package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
- package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
- package/typechain-types/factories/Broadcaster__factory.ts +1 -1
- package/typechain-types/factories/EmptyUUPS__factory.ts +1 -1
- package/typechain-types/factories/Errors__factory.ts +17 -1
- package/typechain-types/factories/ExchangeRateMsgCodec__factory.ts +1 -1
- package/typechain-types/factories/ExpiredLpPtRedeemer__factory.ts +1 -1
- package/typechain-types/factories/FixedPricePTAMM__factory.ts +1 -1
- package/typechain-types/factories/IOKXDexRouter__factory.ts +171 -0
- package/typechain-types/factories/{IMarketSweed__factory.ts → IPActionCrossChain__factory.ts} +22 -61
- package/typechain-types/factories/IPExchangeRateOracleApp__factory.ts +135 -0
- package/typechain-types/factories/IPLimitRouter__factory.ts +42 -0
- package/typechain-types/factories/IPMarket__factory.ts +13 -0
- package/typechain-types/factories/LegacyNFTHelper__factory.ts +1 -1
- package/typechain-types/factories/LimitBackendHelperV2__factory.ts +1 -1
- package/typechain-types/factories/LimitBackendHelper__factory.ts +232 -0
- package/typechain-types/factories/Multicall2__factory.ts +1 -1
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/OverfillMathLib__factory.ts +1 -1
- package/typechain-types/factories/PendleBridgedPrincipalToken_18Decimals__factory.ts +1652 -0
- package/typechain-types/factories/PendleBridgedPrincipalToken_6Decimals__factory.ts +1650 -0
- package/typechain-types/factories/PendleBridgedPrincipalToken_8Decimals__factory.ts +1650 -0
- package/typechain-types/factories/PendleBridgedPrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +1 -1
- package/typechain-types/factories/PendleCommonSYFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleCrossChainOracleBaseApp_Init__factory.ts +13 -13
- package/typechain-types/factories/PendleERC20__factory.ts +1 -1
- package/typechain-types/factories/PendleExchangeRateOracleApp__factory.ts +150 -19
- package/typechain-types/factories/PendleExchangeRateOracleV2__factory.ts +1 -1
- package/typechain-types/factories/PendleExchangeRateOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleFeeSetter__factory.ts +395 -0
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGovernanceProxy__factory.ts +1 -1
- package/typechain-types/factories/PendleLPWrapperFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleLPWrapper__factory.ts +1 -1
- package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketFactoryV6Upg__factory.ts +1 -1
- package/typechain-types/factories/PendleMarketV6__factory.ts +1 -1
- package/typechain-types/factories/PendleMerkleDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMultiTokenMerkleDistributor__factory.ts +1 -1
- package/typechain-types/factories/PendleMulticallOwnerV1__factory.ts +1 -1
- package/typechain-types/factories/PendleMulticallV1__factory.ts +1 -1
- package/typechain-types/factories/PendleMulticallV2__factory.ts +1 -1
- package/typechain-types/factories/PendleOffchainStorage__factory.ts +1 -1
- package/typechain-types/factories/PendlePTOFTAdapterFactory__factory.ts +1 -1
- package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelperV2__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactoryWrapper__factory.ts +1 -1
- package/typechain-types/factories/PendleSparkLinearDiscountOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleSwap__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstETHPriceFeed__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldContractFactoryUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1 -1
- package/typechain-types/factories/SimulateHelper__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +27 -27
- package/typechain-types/index.ts +6 -6
- package/typechain-types/IMarketSweed.ts +0 -203
- package/typechain-types/LimitMathCore.ts +0 -102
- package/typechain-types/MarketSweed.ts +0 -255
- package/typechain-types/factories/LimitMathCore__factory.ts +0 -87
- package/typechain-types/factories/MarketSweed__factory.ts +0 -385
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.0;
|
|
|
4
4
|
library ArrayLib {
|
|
5
5
|
function sum(uint256[] memory input) internal pure returns (uint256) {
|
|
6
6
|
uint256 value = 0;
|
|
7
|
-
for (uint256 i = 0; i < input.length;
|
|
7
|
+
for (uint256 i = 0; i < input.length;) {
|
|
8
8
|
value += input[i];
|
|
9
9
|
unchecked {
|
|
10
10
|
i++;
|
|
@@ -16,7 +16,7 @@ library ArrayLib {
|
|
|
16
16
|
/// @notice return index of the element if found, else return uint256.max
|
|
17
17
|
function find(address[] memory array, address element) internal pure returns (uint256 index) {
|
|
18
18
|
uint256 length = array.length;
|
|
19
|
-
for (uint256 i = 0; i < length;
|
|
19
|
+
for (uint256 i = 0; i < length;) {
|
|
20
20
|
if (array[i] == element) return i;
|
|
21
21
|
unchecked {
|
|
22
22
|
i++;
|
|
@@ -28,7 +28,7 @@ library ArrayLib {
|
|
|
28
28
|
function append(address[] memory inp, address element) internal pure returns (address[] memory out) {
|
|
29
29
|
uint256 length = inp.length;
|
|
30
30
|
out = new address[](length + 1);
|
|
31
|
-
for (uint256 i = 0; i < length;
|
|
31
|
+
for (uint256 i = 0; i < length;) {
|
|
32
32
|
out[i] = inp[i];
|
|
33
33
|
unchecked {
|
|
34
34
|
i++;
|
|
@@ -41,7 +41,7 @@ library ArrayLib {
|
|
|
41
41
|
uint256 length = inp.length;
|
|
42
42
|
out = new address[](length + 1);
|
|
43
43
|
out[0] = element;
|
|
44
|
-
for (uint256 i = 1; i <= length;
|
|
44
|
+
for (uint256 i = 1; i <= length;) {
|
|
45
45
|
out[i] = inp[i - 1];
|
|
46
46
|
unchecked {
|
|
47
47
|
i++;
|
|
@@ -82,7 +82,7 @@ library ArrayLib {
|
|
|
82
82
|
// various version of contains
|
|
83
83
|
function contains(address[] memory array, address element) internal pure returns (bool) {
|
|
84
84
|
uint256 length = array.length;
|
|
85
|
-
for (uint256 i = 0; i < length;
|
|
85
|
+
for (uint256 i = 0; i < length;) {
|
|
86
86
|
if (array[i] == element) return true;
|
|
87
87
|
unchecked {
|
|
88
88
|
i++;
|
|
@@ -93,7 +93,7 @@ library ArrayLib {
|
|
|
93
93
|
|
|
94
94
|
function contains(bytes4[] memory array, bytes4 element) internal pure returns (bool) {
|
|
95
95
|
uint256 length = array.length;
|
|
96
|
-
for (uint256 i = 0; i < length;
|
|
96
|
+
for (uint256 i = 0; i < length;) {
|
|
97
97
|
if (array[i] == element) return true;
|
|
98
98
|
unchecked {
|
|
99
99
|
i++;
|
|
@@ -128,13 +128,11 @@ library ArrayLib {
|
|
|
128
128
|
res[3] = d;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
function create(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
address
|
|
135
|
-
|
|
136
|
-
address e
|
|
137
|
-
) internal pure returns (address[] memory res) {
|
|
131
|
+
function create(address a, address b, address c, address d, address e)
|
|
132
|
+
internal
|
|
133
|
+
pure
|
|
134
|
+
returns (address[] memory res)
|
|
135
|
+
{
|
|
138
136
|
res = new address[](5);
|
|
139
137
|
res[0] = a;
|
|
140
138
|
res[1] = b;
|
|
@@ -87,9 +87,7 @@ library CodeDeployer {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
library BaseSplitCodeFactory {
|
|
90
|
-
function setCreationCode(
|
|
91
|
-
bytes memory creationCode
|
|
92
|
-
)
|
|
90
|
+
function setCreationCode(bytes memory creationCode)
|
|
93
91
|
internal
|
|
94
92
|
returns (
|
|
95
93
|
address creationCodeContractA,
|
|
@@ -104,8 +102,8 @@ library BaseSplitCodeFactory {
|
|
|
104
102
|
|
|
105
103
|
// We are going to deploy two contracts: one with approximately the first half of `creationCode`'s contents
|
|
106
104
|
// (A), and another with the remaining half (B).
|
|
107
|
-
// We store the lengths in both immutable and stack variables, since immutable variables cannot be read
|
|
108
|
-
// construction.
|
|
105
|
+
// We store the lengths in both immutable and stack variables, since immutable variables cannot be read
|
|
106
|
+
// during construction.
|
|
109
107
|
creationCodeSizeA = creationCodeSize / 2;
|
|
110
108
|
|
|
111
109
|
creationCodeSizeB = creationCodeSize - creationCodeSizeA;
|
|
@@ -116,8 +114,8 @@ library BaseSplitCodeFactory {
|
|
|
116
114
|
|
|
117
115
|
// Memory: [ code length ] [ A.data ] [ B.data ]
|
|
118
116
|
|
|
119
|
-
// Creating A's array is simple: we simply replace `creationCode`'s length with A's length. We'll later
|
|
120
|
-
// the original length.
|
|
117
|
+
// Creating A's array is simple: we simply replace `creationCode`'s length with A's length. We'll later
|
|
118
|
+
// restore the original length.
|
|
121
119
|
|
|
122
120
|
bytes memory creationCodeA;
|
|
123
121
|
assembly {
|
|
@@ -130,8 +128,9 @@ library BaseSplitCodeFactory {
|
|
|
130
128
|
|
|
131
129
|
creationCodeContractA = CodeDeployer.deploy(creationCodeA);
|
|
132
130
|
|
|
133
|
-
// Creating B's array is a bit more involved: since we cannot move B's contents, we are going to create a
|
|
134
|
-
// memory array starting at A's last 32 bytes, which will be replaced with B's length. We'll back-up
|
|
131
|
+
// Creating B's array is a bit more involved: since we cannot move B's contents, we are going to create a
|
|
132
|
+
// 'new' memory array starting at A's last 32 bytes, which will be replaced with B's length. We'll back-up
|
|
133
|
+
// this last
|
|
135
134
|
// byte to later restore it.
|
|
136
135
|
|
|
137
136
|
bytes memory creationCodeB;
|
|
@@ -150,7 +149,8 @@ library BaseSplitCodeFactory {
|
|
|
150
149
|
|
|
151
150
|
creationCodeContractB = CodeDeployer.deploy(creationCodeB);
|
|
152
151
|
|
|
153
|
-
// We now restore the original contents of `creationCode` by writing back the original length and A's last
|
|
152
|
+
// We now restore the original contents of `creationCode` by writing back the original length and A's last
|
|
153
|
+
// byte.
|
|
154
154
|
assembly {
|
|
155
155
|
mstore(creationCodeA, creationCodeSize)
|
|
156
156
|
mstore(creationCodeB, lastByteA)
|
|
@@ -167,14 +167,9 @@ library BaseSplitCodeFactory {
|
|
|
167
167
|
address creationCodeContractB,
|
|
168
168
|
uint256 creationCodeSizeB
|
|
169
169
|
) internal view returns (bytes memory) {
|
|
170
|
-
return
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
creationCodeContractA,
|
|
174
|
-
creationCodeSizeA,
|
|
175
|
-
creationCodeContractB,
|
|
176
|
-
creationCodeSizeB
|
|
177
|
-
);
|
|
170
|
+
return _getCreationCodeWithArgs(
|
|
171
|
+
"", creationCodeContractA, creationCodeSizeA, creationCodeContractB, creationCodeSizeB
|
|
172
|
+
);
|
|
178
173
|
}
|
|
179
174
|
|
|
180
175
|
/**
|
|
@@ -188,10 +183,11 @@ library BaseSplitCodeFactory {
|
|
|
188
183
|
uint256 creationCodeSizeB
|
|
189
184
|
) private view returns (bytes memory code) {
|
|
190
185
|
unchecked {
|
|
191
|
-
// This function exists because `abi.encode()` cannot be instructed to place its result at a specific
|
|
192
|
-
// We need for the ABI-encoded constructor arguments to be located immediately after the creation
|
|
193
|
-
//
|
|
194
|
-
//
|
|
186
|
+
// This function exists because `abi.encode()` cannot be instructed to place its result at a specific
|
|
187
|
+
// address. We need for the ABI-encoded constructor arguments to be located immediately after the creation
|
|
188
|
+
// code, but
|
|
189
|
+
// cannot rely on `abi.encodePacked()` to perform concatenation as that would involve copying the creation
|
|
190
|
+
// code, which would be prohibitively expensive.
|
|
195
191
|
// Instead, we compute the creation code in a pre-allocated array that is large enough to hold *both* the
|
|
196
192
|
// creation code and the constructor arguments, and then copy the ABI-encoded arguments (which should not be
|
|
197
193
|
// overly long) right after the end of the creation code.
|
|
@@ -204,8 +200,9 @@ library BaseSplitCodeFactory {
|
|
|
204
200
|
uint256 codeSize = creationCodeSize + constructorArgsSize;
|
|
205
201
|
|
|
206
202
|
assembly {
|
|
207
|
-
// First, we allocate memory for `code` by retrieving the free memory pointer and then moving it ahead
|
|
208
|
-
// `code` by the size of the creation code plus constructor arguments, and 32 bytes for the array
|
|
203
|
+
// First, we allocate memory for `code` by retrieving the free memory pointer and then moving it ahead
|
|
204
|
+
// of `code` by the size of the creation code plus constructor arguments, and 32 bytes for the array
|
|
205
|
+
// length.
|
|
209
206
|
code := mload(0x40)
|
|
210
207
|
mstore(0x40, add(code, add(codeSize, 32)))
|
|
211
208
|
|
|
@@ -246,11 +243,7 @@ library BaseSplitCodeFactory {
|
|
|
246
243
|
) internal returns (address) {
|
|
247
244
|
unchecked {
|
|
248
245
|
bytes memory creationCode = _getCreationCodeWithArgs(
|
|
249
|
-
constructorArgs,
|
|
250
|
-
creationCodeContractA,
|
|
251
|
-
creationCodeSizeA,
|
|
252
|
-
creationCodeContractB,
|
|
253
|
-
creationCodeSizeB
|
|
246
|
+
constructorArgs, creationCodeContractA, creationCodeSizeA, creationCodeContractB, creationCodeSizeB
|
|
254
247
|
);
|
|
255
248
|
return Create2.deploy(amount, salt, creationCode);
|
|
256
249
|
}
|
|
@@ -19,7 +19,8 @@ abstract contract BoringOwnableUpgradeableV2 is BoringOwnableUpgradeableData, In
|
|
|
19
19
|
/// Can only be invoked by the current `owner`.
|
|
20
20
|
/// @param newOwner Address of the new owner.
|
|
21
21
|
/// @param direct True if `newOwner` should be set immediately. False if `newOwner` needs to use `claimOwnership`.
|
|
22
|
-
/// @param renounce Allows the `newOwner` to be `address(0)` if `direct` and `renounce` is True. Has no effect
|
|
22
|
+
/// @param renounce Allows the `newOwner` to be `address(0)` if `direct` and `renounce` is True. Has no effect
|
|
23
|
+
/// otherwise.
|
|
23
24
|
function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner {
|
|
24
25
|
if (direct) {
|
|
25
26
|
// Checks
|
|
@@ -19,10 +19,7 @@ library Errors {
|
|
|
19
19
|
error ApproxFail();
|
|
20
20
|
error ApproxParamsInvalid(uint256 guessMin, uint256 guessMax, uint256 eps);
|
|
21
21
|
error ApproxBinarySearchInputInvalid(
|
|
22
|
-
uint256 approxGuessMin,
|
|
23
|
-
uint256 approxGuessMax,
|
|
24
|
-
uint256 minGuessMin,
|
|
25
|
-
uint256 maxGuessMax
|
|
22
|
+
uint256 approxGuessMin, uint256 approxGuessMax, uint256 minGuessMin, uint256 maxGuessMax
|
|
26
23
|
);
|
|
27
24
|
|
|
28
25
|
// MARKET + MARKET MATH CORE
|
|
@@ -187,4 +184,5 @@ library Errors {
|
|
|
187
184
|
error ExchangeRateCallFailed();
|
|
188
185
|
error InvalidDestinationEid();
|
|
189
186
|
error InvalidMsgType();
|
|
187
|
+
error NotEnoughNativeFee(uint256 msgValue, uint256 totalFee);
|
|
190
188
|
}
|
|
@@ -8,9 +8,9 @@ library ExpiryUtils {
|
|
|
8
8
|
uint8 day;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
uint256 private constant DAY_IN_SECONDS =
|
|
12
|
-
uint256 private constant YEAR_IN_SECONDS =
|
|
13
|
-
uint256 private constant LEAP_YEAR_IN_SECONDS =
|
|
11
|
+
uint256 private constant DAY_IN_SECONDS = 86_400;
|
|
12
|
+
uint256 private constant YEAR_IN_SECONDS = 31_536_000;
|
|
13
|
+
uint256 private constant LEAP_YEAR_IN_SECONDS = 31_622_400;
|
|
14
14
|
uint16 private constant ORIGIN_YEAR = 1970;
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -21,13 +21,13 @@ library ExpiryUtils {
|
|
|
21
21
|
* @param _expiry The expiry in epoch time.
|
|
22
22
|
* @param _delimiter Can be any delimiter, but usually "-" or " ".
|
|
23
23
|
* @return result Returns the concatenated string.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
string memory
|
|
30
|
-
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
function concat(string memory _bt, string memory _yt, uint256 _expiry, string memory _delimiter)
|
|
27
|
+
internal
|
|
28
|
+
pure
|
|
29
|
+
returns (string memory result)
|
|
30
|
+
{
|
|
31
31
|
result = string(abi.encodePacked(_bt, _delimiter, _yt, _delimiter, toRFC2822String(_expiry)));
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -471,12 +471,11 @@ library StringLib {
|
|
|
471
471
|
|
|
472
472
|
// Returns the memory address of the first byte of the first occurrence of
|
|
473
473
|
// `needle` in `self`, or the first byte after `self` if not found.
|
|
474
|
-
function findPtr(
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
uint256
|
|
478
|
-
|
|
479
|
-
) private pure returns (uint256) {
|
|
474
|
+
function findPtr(uint256 selflen, uint256 selfptr, uint256 needlelen, uint256 needleptr)
|
|
475
|
+
private
|
|
476
|
+
pure
|
|
477
|
+
returns (uint256)
|
|
478
|
+
{
|
|
480
479
|
uint256 ptr = selfptr;
|
|
481
480
|
uint256 idx;
|
|
482
481
|
|
|
@@ -528,12 +527,11 @@ library StringLib {
|
|
|
528
527
|
|
|
529
528
|
// Returns the memory address of the first byte after the last occurrence of
|
|
530
529
|
// `needle` in `self`, or the address of `self` if not found.
|
|
531
|
-
function rfindPtr(
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
uint256
|
|
535
|
-
|
|
536
|
-
) private pure returns (uint256) {
|
|
530
|
+
function rfindPtr(uint256 selflen, uint256 selfptr, uint256 needlelen, uint256 needleptr)
|
|
531
|
+
private
|
|
532
|
+
pure
|
|
533
|
+
returns (uint256)
|
|
534
|
+
{
|
|
537
535
|
uint256 ptr;
|
|
538
536
|
|
|
539
537
|
if (needlelen <= selflen) {
|
|
@@ -738,7 +736,9 @@ library StringLib {
|
|
|
738
736
|
if (parts.length == 0) return "";
|
|
739
737
|
|
|
740
738
|
uint256 length = self._len * (parts.length - 1);
|
|
741
|
-
for (uint256 i = 0; i < parts.length; i++)
|
|
739
|
+
for (uint256 i = 0; i < parts.length; i++) {
|
|
740
|
+
length += parts[i]._len;
|
|
741
|
+
}
|
|
742
742
|
|
|
743
743
|
string memory ret = new string(length);
|
|
744
744
|
uint256 retptr;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity ^0.8.0;
|
|
3
3
|
|
|
4
|
+
import "../../interfaces/IWETH.sol";
|
|
4
5
|
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
5
6
|
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
6
|
-
import "../../interfaces/IWETH.sol";
|
|
7
7
|
|
|
8
8
|
abstract contract TokenHelper {
|
|
9
9
|
using SafeERC20 for IERC20;
|
|
@@ -23,7 +23,7 @@ abstract contract TokenHelper {
|
|
|
23
23
|
function _transferOut(address token, address to, uint256 amount) internal {
|
|
24
24
|
if (amount == 0) return;
|
|
25
25
|
if (token == NATIVE) {
|
|
26
|
-
(bool success,
|
|
26
|
+
(bool success,) = to.call{value: amount}("");
|
|
27
27
|
require(success, "eth send failed");
|
|
28
28
|
} else {
|
|
29
29
|
IERC20(token).safeTransfer(to, amount);
|
|
@@ -33,7 +33,7 @@ abstract contract TokenHelper {
|
|
|
33
33
|
function _transferOut(address[] memory tokens, address to, uint256[] memory amounts) internal {
|
|
34
34
|
uint256 numTokens = tokens.length;
|
|
35
35
|
require(numTokens == amounts.length, "length mismatch");
|
|
36
|
-
for (uint256 i = 0; i < numTokens;
|
|
36
|
+
for (uint256 i = 0; i < numTokens;) {
|
|
37
37
|
_transferOut(tokens[i], to, amounts[i]);
|
|
38
38
|
unchecked {
|
|
39
39
|
i++;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
3
|
-
// documentation files (the “Software”), to deal in the Software without restriction, including without limitation
|
|
3
|
+
// documentation files (the “Software”), to deal in the Software without restriction, including without limitation
|
|
4
|
+
// the
|
|
4
5
|
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
|
5
6
|
// permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
7
|
|
|
7
8
|
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
|
|
8
9
|
// Software.
|
|
9
10
|
|
|
10
|
-
// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
11
|
+
// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
12
|
+
// THE
|
|
11
13
|
// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
12
14
|
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
13
15
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -56,32 +58,33 @@ library LogExpMath {
|
|
|
56
58
|
uint256 constant MILD_EXPONENT_BOUND = 2 ** 254 / uint256(ONE_20);
|
|
57
59
|
|
|
58
60
|
// 18 decimal constants
|
|
59
|
-
int256 constant x0 =
|
|
60
|
-
int256 constant a0 =
|
|
61
|
-
|
|
62
|
-
int256 constant
|
|
61
|
+
int256 constant x0 = 128_000_000_000_000_000_000; // 2ˆ7
|
|
62
|
+
int256 constant a0 = 38_877_084_059_945_950_922_200_000_000_000_000_000_000_000_000_000_000_000; // eˆ(x0) (no
|
|
63
|
+
// decimals)
|
|
64
|
+
int256 constant x1 = 64_000_000_000_000_000_000; // 2ˆ6
|
|
65
|
+
int256 constant a1 = 6_235_149_080_811_616_882_910_000_000; // eˆ(x1) (no decimals)
|
|
63
66
|
|
|
64
67
|
// 20 decimal constants
|
|
65
|
-
int256 constant x2 =
|
|
66
|
-
int256 constant a2 =
|
|
67
|
-
int256 constant x3 =
|
|
68
|
-
int256 constant a3 =
|
|
69
|
-
int256 constant x4 =
|
|
70
|
-
int256 constant a4 =
|
|
71
|
-
int256 constant x5 =
|
|
72
|
-
int256 constant a5 =
|
|
73
|
-
int256 constant x6 =
|
|
74
|
-
int256 constant a6 =
|
|
75
|
-
int256 constant x7 =
|
|
76
|
-
int256 constant a7 =
|
|
77
|
-
int256 constant x8 =
|
|
78
|
-
int256 constant a8 =
|
|
79
|
-
int256 constant x9 =
|
|
80
|
-
int256 constant a9 =
|
|
81
|
-
int256 constant x10 =
|
|
82
|
-
int256 constant a10 =
|
|
83
|
-
int256 constant x11 =
|
|
84
|
-
int256 constant a11 =
|
|
68
|
+
int256 constant x2 = 3_200_000_000_000_000_000_000; // 2ˆ5
|
|
69
|
+
int256 constant a2 = 7_896_296_018_268_069_516_100_000_000_000_000; // eˆ(x2)
|
|
70
|
+
int256 constant x3 = 1_600_000_000_000_000_000_000; // 2ˆ4
|
|
71
|
+
int256 constant a3 = 888_611_052_050_787_263_676_000_000; // eˆ(x3)
|
|
72
|
+
int256 constant x4 = 800_000_000_000_000_000_000; // 2ˆ3
|
|
73
|
+
int256 constant a4 = 298_095_798_704_172_827_474_000; // eˆ(x4)
|
|
74
|
+
int256 constant x5 = 400_000_000_000_000_000_000; // 2ˆ2
|
|
75
|
+
int256 constant a5 = 5_459_815_003_314_423_907_810; // eˆ(x5)
|
|
76
|
+
int256 constant x6 = 200_000_000_000_000_000_000; // 2ˆ1
|
|
77
|
+
int256 constant a6 = 738_905_609_893_065_022_723; // eˆ(x6)
|
|
78
|
+
int256 constant x7 = 100_000_000_000_000_000_000; // 2ˆ0
|
|
79
|
+
int256 constant a7 = 271_828_182_845_904_523_536; // eˆ(x7)
|
|
80
|
+
int256 constant x8 = 50_000_000_000_000_000_000; // 2ˆ-1
|
|
81
|
+
int256 constant a8 = 164_872_127_070_012_814_685; // eˆ(x8)
|
|
82
|
+
int256 constant x9 = 25_000_000_000_000_000_000; // 2ˆ-2
|
|
83
|
+
int256 constant a9 = 128_402_541_668_774_148_407; // eˆ(x9)
|
|
84
|
+
int256 constant x10 = 12_500_000_000_000_000_000; // 2ˆ-3
|
|
85
|
+
int256 constant a10 = 113_314_845_306_682_631_683; // eˆ(x10)
|
|
86
|
+
int256 constant x11 = 6_250_000_000_000_000_000; // 2ˆ-4
|
|
87
|
+
int256 constant a11 = 106_449_445_891_785_942_956; // eˆ(x11)
|
|
85
88
|
|
|
86
89
|
/**
|
|
87
90
|
* @dev Natural exponentiation (e^x) with signed 18 decimal fixed point exponent.
|
|
@@ -93,28 +96,29 @@ library LogExpMath {
|
|
|
93
96
|
require(x >= MIN_NATURAL_EXPONENT && x <= MAX_NATURAL_EXPONENT, "Invalid exponent");
|
|
94
97
|
|
|
95
98
|
if (x < 0) {
|
|
96
|
-
// We only handle positive exponents: e^(-x) is computed as 1 / e^x. We can safely make x positive since
|
|
97
|
-
// fits in the signed 256 bit range (as it is larger than MIN_NATURAL_EXPONENT).
|
|
99
|
+
// We only handle positive exponents: e^(-x) is computed as 1 / e^x. We can safely make x positive since
|
|
100
|
+
// it fits in the signed 256 bit range (as it is larger than MIN_NATURAL_EXPONENT).
|
|
98
101
|
// Fixed point division requires multiplying by ONE_18.
|
|
99
102
|
return ((ONE_18 * ONE_18) / exp(-x));
|
|
100
103
|
}
|
|
101
104
|
|
|
102
|
-
// First, we use the fact that e^(x+y) = e^x * e^y to decompose x into a sum of powers of two, which we call
|
|
103
|
-
// where x_n == 2^(7 - n), and e^x_n = a_n has been precomputed. We choose the first x_n, x0, to equal
|
|
105
|
+
// First, we use the fact that e^(x+y) = e^x * e^y to decompose x into a sum of powers of two, which we call
|
|
106
|
+
// x_n, where x_n == 2^(7 - n), and e^x_n = a_n has been precomputed. We choose the first x_n, x0, to equal
|
|
107
|
+
// 2^7
|
|
104
108
|
// because all larger powers are larger than MAX_NATURAL_EXPONENT, and therefore not present in the
|
|
105
109
|
// decomposition.
|
|
106
|
-
// At the end of this process we will have the product of all e^x_n = a_n that apply, and the remainder of
|
|
107
|
-
// decomposition, which will be lower than the smallest x_n.
|
|
110
|
+
// At the end of this process we will have the product of all e^x_n = a_n that apply, and the remainder of
|
|
111
|
+
// this decomposition, which will be lower than the smallest x_n.
|
|
108
112
|
// exp(x) = k_0 * a_0 * k_1 * a_1 * ... + k_n * a_n * exp(remainder), where each k_n equals either 0 or 1.
|
|
109
113
|
// We mutate x by subtracting x_n, making it the remainder of the decomposition.
|
|
110
114
|
|
|
111
115
|
// The first two a_n (e^(2^7) and e^(2^6)) are too large if stored as 18 decimal numbers, and could cause
|
|
112
116
|
// intermediate overflows. Instead we store them as plain integers, with 0 decimals.
|
|
113
|
-
// Additionally, x0 + x1 is larger than MAX_NATURAL_EXPONENT, which means they will not both be present in
|
|
114
|
-
// decomposition.
|
|
117
|
+
// Additionally, x0 + x1 is larger than MAX_NATURAL_EXPONENT, which means they will not both be present in
|
|
118
|
+
// the decomposition.
|
|
115
119
|
|
|
116
|
-
// For each x_n, we test if that term is present in the decomposition (if x is larger than it), and if so
|
|
117
|
-
// it and compute the accumulated product.
|
|
120
|
+
// For each x_n, we test if that term is present in the decomposition (if x is larger than it), and if so
|
|
121
|
+
// deduct it and compute the accumulated product.
|
|
118
122
|
|
|
119
123
|
int256 firstAN;
|
|
120
124
|
if (x >= x0) {
|
|
@@ -131,8 +135,8 @@ library LogExpMath {
|
|
|
131
135
|
// smaller terms.
|
|
132
136
|
x *= 100;
|
|
133
137
|
|
|
134
|
-
// `product` is the accumulated product of all a_n (except a0 and a1), which starts at 20 decimal fixed
|
|
135
|
-
// one. Recall that fixed point multiplication requires dividing by ONE_20.
|
|
138
|
+
// `product` is the accumulated product of all a_n (except a0 and a1), which starts at 20 decimal fixed
|
|
139
|
+
// point one. Recall that fixed point multiplication requires dividing by ONE_20.
|
|
136
140
|
int256 product = ONE_20;
|
|
137
141
|
|
|
138
142
|
if (x >= x2) {
|
|
@@ -170,8 +174,8 @@ library LogExpMath {
|
|
|
170
174
|
|
|
171
175
|
// x10 and x11 are unnecessary here since we have high enough precision already.
|
|
172
176
|
|
|
173
|
-
// Now we need to compute e^x, where x is small (in particular, it is smaller than x9). We use the Taylor
|
|
174
|
-
// expansion for e^x: 1 + x + (x^2 / 2!) + (x^3 / 3!) + ... + (x^n / n!).
|
|
177
|
+
// Now we need to compute e^x, where x is small (in particular, it is smaller than x9). We use the Taylor
|
|
178
|
+
// series expansion for e^x: 1 + x + (x^2 / 2!) + (x^3 / 3!) + ... + (x^n / n!).
|
|
175
179
|
|
|
176
180
|
int256 seriesSum = ONE_20; // The initial one in the sum, with 20 decimal places.
|
|
177
181
|
int256 term; // Each term in the sum, where the nth term is (x^n / n!).
|
|
@@ -219,8 +223,9 @@ library LogExpMath {
|
|
|
219
223
|
// 12 Taylor terms are sufficient for 18 decimal precision.
|
|
220
224
|
|
|
221
225
|
// We now have the first a_n (with no decimals), and the product of all other a_n present, and the Taylor
|
|
222
|
-
// approximation of the exponentiation of the remainder (both with 20 decimals). All that remains is to
|
|
223
|
-
// all three (one 20 decimal fixed point multiplication, dividing by ONE_20, and one integer
|
|
226
|
+
// approximation of the exponentiation of the remainder (both with 20 decimals). All that remains is to
|
|
227
|
+
// multiply all three (one 20 decimal fixed point multiplication, dividing by ONE_20, and one integer
|
|
228
|
+
// multiplication),
|
|
224
229
|
// and then drop two digits to return an 18 decimal value.
|
|
225
230
|
|
|
226
231
|
return (((product * seriesSum) / ONE_20) * firstAN) / 100;
|
|
@@ -266,10 +271,11 @@ library LogExpMath {
|
|
|
266
271
|
require(x < 2 ** 255, "x out of bounds");
|
|
267
272
|
int256 x_int256 = int256(x);
|
|
268
273
|
|
|
269
|
-
// We will compute y * ln(x) in a single step. Depending on the value of x, we can either use ln or ln_36.
|
|
270
|
-
// both cases, we leave the division by ONE_18 (due to fixed point multiplication) to the end.
|
|
274
|
+
// We will compute y * ln(x) in a single step. Depending on the value of x, we can either use ln or ln_36.
|
|
275
|
+
// In both cases, we leave the division by ONE_18 (due to fixed point multiplication) to the end.
|
|
271
276
|
|
|
272
|
-
// This prevents y * ln(x) from overflowing, and at the same time guarantees y fits in the signed 256 bit
|
|
277
|
+
// This prevents y * ln(x) from overflowing, and at the same time guarantees y fits in the signed 256 bit
|
|
278
|
+
// range.
|
|
273
279
|
require(y < MILD_EXPONENT_BOUND, "y out of bounds");
|
|
274
280
|
int256 y_int256 = int256(y);
|
|
275
281
|
|
|
@@ -277,8 +283,8 @@ library LogExpMath {
|
|
|
277
283
|
if (LN_36_LOWER_BOUND < x_int256 && x_int256 < LN_36_UPPER_BOUND) {
|
|
278
284
|
int256 ln_36_x = _ln_36(x_int256);
|
|
279
285
|
|
|
280
|
-
// ln_36_x has 36 decimal places, so multiplying by y_int256 isn't as straightforward, since we can't
|
|
281
|
-
// bring y_int256 to 36 decimal places, as it might overflow. Instead, we perform two 18 decimal
|
|
286
|
+
// ln_36_x has 36 decimal places, so multiplying by y_int256 isn't as straightforward, since we can't
|
|
287
|
+
// just bring y_int256 to 36 decimal places, as it might overflow. Instead, we perform two 18 decimal
|
|
282
288
|
// multiplications and add the results: one with the first 18 decimals of ln_36_x, and one with the
|
|
283
289
|
// (downscaled) last 18 decimals.
|
|
284
290
|
logx_times_y = ((ln_36_x / ONE_18) * y_int256 + ((ln_36_x % ONE_18) * y_int256) / ONE_18);
|
|
@@ -289,8 +295,7 @@ library LogExpMath {
|
|
|
289
295
|
|
|
290
296
|
// Finally, we compute exp(y * ln(x)) to arrive at x^y
|
|
291
297
|
require(
|
|
292
|
-
MIN_NATURAL_EXPONENT <= logx_times_y && logx_times_y <= MAX_NATURAL_EXPONENT,
|
|
293
|
-
"product out of bounds"
|
|
298
|
+
MIN_NATURAL_EXPONENT <= logx_times_y && logx_times_y <= MAX_NATURAL_EXPONENT, "product out of bounds"
|
|
294
299
|
);
|
|
295
300
|
|
|
296
301
|
return uint256(exp(logx_times_y));
|
|
@@ -304,25 +309,27 @@ library LogExpMath {
|
|
|
304
309
|
unchecked {
|
|
305
310
|
if (a < ONE_18) {
|
|
306
311
|
// Since ln(a^k) = k * ln(a), we can compute ln(a) as ln(a) = ln((1/a)^(-1)) = - ln((1/a)). If a is less
|
|
307
|
-
// than one, 1/a will be greater than one, and this if statement will not be entered in the recursive
|
|
308
|
-
// Fixed point division requires multiplying by ONE_18.
|
|
312
|
+
// than one, 1/a will be greater than one, and this if statement will not be entered in the recursive
|
|
313
|
+
// call. Fixed point division requires multiplying by ONE_18.
|
|
309
314
|
return (-_ln((ONE_18 * ONE_18) / a));
|
|
310
315
|
}
|
|
311
316
|
|
|
312
|
-
// First, we use the fact that ln^(a * b) = ln(a) + ln(b) to decompose ln(a) into a sum of powers of two,
|
|
313
|
-
// we call x_n, where x_n == 2^(7 - n), which are the natural logarithm of precomputed quantities a_n
|
|
314
|
-
//
|
|
315
|
-
//
|
|
316
|
-
//
|
|
317
|
-
//
|
|
317
|
+
// First, we use the fact that ln^(a * b) = ln(a) + ln(b) to decompose ln(a) into a sum of powers of two,
|
|
318
|
+
// which we call x_n, where x_n == 2^(7 - n), which are the natural logarithm of precomputed quantities a_n
|
|
319
|
+
// (that is,
|
|
320
|
+
// ln(a_n) = x_n). We choose the first x_n, x0, to equal 2^7 because the exponential of all larger powers
|
|
321
|
+
// cannot be represented as 18 fixed point decimal numbers in 256 bits, and are therefore larger than a.
|
|
322
|
+
// At the end of this process we will have the sum of all x_n = ln(a_n) that apply, and the remainder of
|
|
323
|
+
// this decomposition, which will be lower than the smallest a_n.
|
|
318
324
|
// ln(a) = k_0 * x_0 + k_1 * x_1 + ... + k_n * x_n + ln(remainder), where each k_n equals either 0 or 1.
|
|
319
325
|
// We mutate a by subtracting a_n, making it the remainder of the decomposition.
|
|
320
326
|
|
|
321
|
-
// For reasons related to how `exp` works, the first two a_n (e^(2^7) and e^(2^6)) are not stored as fixed
|
|
322
|
-
// numbers with 18 decimals, but instead as plain integers with 0 decimals, so we need to multiply
|
|
327
|
+
// For reasons related to how `exp` works, the first two a_n (e^(2^7) and e^(2^6)) are not stored as fixed
|
|
328
|
+
// point numbers with 18 decimals, but instead as plain integers with 0 decimals, so we need to multiply
|
|
329
|
+
// them by
|
|
323
330
|
// ONE_18 to convert them to fixed point.
|
|
324
|
-
// For each a_n, we test if that term is present in the decomposition (if a is larger than it), and if so
|
|
325
|
-
// by it and compute the accumulated sum.
|
|
331
|
+
// For each a_n, we test if that term is present in the decomposition (if a is larger than it), and if so
|
|
332
|
+
// divide by it and compute the accumulated sum.
|
|
326
333
|
|
|
327
334
|
int256 sum = 0;
|
|
328
335
|
if (a >= a0 * ONE_18) {
|
|
@@ -335,7 +342,8 @@ library LogExpMath {
|
|
|
335
342
|
sum += x1;
|
|
336
343
|
}
|
|
337
344
|
|
|
338
|
-
// All other a_n and x_n are stored as 20 digit fixed point numbers, so we convert the sum and a to this
|
|
345
|
+
// All other a_n and x_n are stored as 20 digit fixed point numbers, so we convert the sum and a to this
|
|
346
|
+
// format.
|
|
339
347
|
sum *= 100;
|
|
340
348
|
a *= 100;
|
|
341
349
|
|
|
@@ -391,8 +399,8 @@ library LogExpMath {
|
|
|
391
399
|
sum += x11;
|
|
392
400
|
}
|
|
393
401
|
|
|
394
|
-
// a is now a small number (smaller than a_11, which roughly equals 1.06). This means we can use a Taylor
|
|
395
|
-
// that converges rapidly for values of `a` close to one - the same one used in ln_36.
|
|
402
|
+
// a is now a small number (smaller than a_11, which roughly equals 1.06). This means we can use a Taylor
|
|
403
|
+
// series that converges rapidly for values of `a` close to one - the same one used in ln_36.
|
|
396
404
|
// Let z = (a - 1) / (a + 1).
|
|
397
405
|
// ln(a) = 2 * (z + z^3 / 3 + z^5 / 5 + z^7 / 7 + ... + z^(2 * n + 1) / (2 * n + 1))
|
|
398
406
|
|
|
@@ -428,8 +436,9 @@ library LogExpMath {
|
|
|
428
436
|
// Finally, we multiply by 2 (non fixed point) to compute ln(remainder)
|
|
429
437
|
seriesSum *= 2;
|
|
430
438
|
|
|
431
|
-
// We now have the sum of all x_n present, and the Taylor approximation of the logarithm of the remainder
|
|
432
|
-
// with 20 decimals). All that remains is to sum these two, and then drop two digits to return a 18
|
|
439
|
+
// We now have the sum of all x_n present, and the Taylor approximation of the logarithm of the remainder
|
|
440
|
+
// (both with 20 decimals). All that remains is to sum these two, and then drop two digits to return a 18
|
|
441
|
+
// decimal
|
|
433
442
|
// value.
|
|
434
443
|
|
|
435
444
|
return (sum + seriesSum) / 100;
|
|
@@ -437,7 +446,8 @@ library LogExpMath {
|
|
|
437
446
|
}
|
|
438
447
|
|
|
439
448
|
/**
|
|
440
|
-
* @dev Intrnal high precision (36 decimal places) natural logarithm (ln(x)) with signed 18 decimal fixed point
|
|
449
|
+
* @dev Intrnal high precision (36 decimal places) natural logarithm (ln(x)) with signed 18 decimal fixed point
|
|
450
|
+
* argument,
|
|
441
451
|
* for x close to one.
|
|
442
452
|
*
|
|
443
453
|
* Should only be used if x is between LN_36_LOWER_BOUND and LN_36_UPPER_BOUND.
|