@pendle/core-v2 5.0.7-beta → 5.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseUpg.sol/SYBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewardsUpg.sol/SYBaseWithRewardsUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV3Upg.sol/PendleAuraBalancerStableLPSYV3Upg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol/PendleCornBaseSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol/PendleCornBaseSY.json +1070 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol/PendleCornBaseSYUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol/PendleCornBaseSYUpg.json +1054 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol/PendleCornLBTCSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol/PendleCornLBTCSY.json +1107 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol/PendleCornPumpBTCSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol/PendleCornPumpBTCSY.json +1101 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol/PendleCornSolvBTCBBNSYUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol/PendleCornSolvBTCBBNSYUpg.json +1111 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol/PendleCornUniBTCSYUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol/PendleCornUniBTCSYUpg.json +1124 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleSUSDEMantleSY.sol/PendleSUSDEMantleSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ethena/PendleUSDEL2SY.sol/PendleUSDEL2SY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol/PendleEBTCSY.json +15 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthkSY.sol/PendleWEEthkSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/EtherFi/PendleWEEthsSY.sol/PendleWEEthsSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultERC20SY.sol/PendleKarakVaultERC20SY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultEzETHSY.sol/PendleKarakVaultEzETHSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSUSDESY.sol/PendleKarakVaultSUSDESY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultSYBaseUpg.sol/PendleKarakVaultSYBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultUSDESY.sol/PendleKarakVaultUSDESY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Karak/PendleKarakVaultWEETHSY.sol/PendleKarakVaultWEETHSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol/PendleLBTCSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol/PendleLBTCSY.json +1068 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC20SYUpg.sol/PendleMellowVaultERC20SYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC20SYUpg.sol/PendleMellowVaultERC20SYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultERC4626SYUpg.sol/PendleMellowVaultERC4626SYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultSYBaseUpg.sol/PendleMellowVaultSYBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultSYBaseUpg.sol/PendleMellowVaultSYBaseUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultWstETHSYUpg.sol/PendleMellowVaultWstETHSYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Mellow/PendleMellowVaultWstETHSYUpg.sol/PendleMellowVaultWstETHSYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20SYUpg.sol/PendleERC20SYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626UpgSY.sol/PendleERC4626SYUpg.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufStETHSY.sol/PendlePufStETHSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Puffer/PendlePufWETHSY.sol/PendlePufWETHSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol/PendlePumpHelperLib.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol/PendlePumpHelperLib.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol/PendleSolvBTCBBNSYUpg.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol/PendleSolvBTCBBNSYUpg.json +1072 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol/PendleSolvHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol/PendleSolvHelper.json +115 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeERC20SY.sol/PendleZtakeERC20SY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeERC20SY.sol/PendleZtakeERC20SY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeEzETHSY.sol/PendleZtakeEzETHSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeEzETHSY.sol/PendleZtakeEzETHSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeRsETHSY.sol/PendleZtakeRsETHSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeRsETHSY.sol/PendleZtakeRsETHSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeUSDESY.sol/PendleZtakeUSDESY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeUSDESY.sol/PendleZtakeUSDESY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeWeETHSY.sol/PendleZtakeWeETHSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Zircuit/PendleZtakeWeETHSY.sol/PendleZtakeWeETHSY.json +2 -2
- package/build/artifacts/contracts/interfaces/Corn/ICornSilo.sol/ICornSilo.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Corn/ICornSilo.sol/ICornSilo.json +59 -0
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +0 -188
- 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/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +0 -188
- package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Pump/IPumpStaking.sol/IPumpStaking.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Pump/IPumpStaking.sol/IPumpStaking.json +76 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvERC3525.sol/ISolvERC3525.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvERC3525.sol/ISolvERC3525.json +24 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvOpenFundMarket.sol/ISolvOpenFundMarket.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvOpenFundMarket.sol/ISolvOpenFundMarket.json +165 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvOracle.sol/ISolvOracle.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvOracle.sol/ISolvOracle.json +100 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvRouter.sol/ISolvRouter.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Solv/ISolvRouter.sol/ISolvRouter.json +35 -0
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/PendleBoringOneracle.sol/PendleBoringOneracle.json +24 -0
- package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/PendleBoringSolvBTCOneracle.sol/PendleBoringSolvBTCOneracle.json +24 -0
- 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/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -190
- 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/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.json +40 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +73 -0
- package/contracts/core/StandardizedYield/SYBaseUpg.sol +1 -0
- package/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSY.sol +105 -0
- package/contracts/core/StandardizedYield/implementations/Corn/PendleCornBaseSYUpg.sol +112 -0
- package/contracts/core/StandardizedYield/implementations/Corn/PendleCornLBTCSY.sol +15 -0
- package/contracts/core/StandardizedYield/implementations/Corn/PendleCornPumpBTCSY.sol +80 -0
- package/contracts/core/StandardizedYield/implementations/Corn/PendleCornSolvBTCBBNSYUpg.sol +47 -0
- package/contracts/core/StandardizedYield/implementations/Corn/PendleCornUniBTCSYUpg.sol +48 -0
- package/contracts/core/StandardizedYield/implementations/EtherFi/PendleEBTCSY.sol +6 -4
- package/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCSY.sol +92 -0
- package/contracts/core/StandardizedYield/implementations/Pump/PendlePumpHelperLib.sol +32 -0
- package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvBTCBBNSYUpg.sol +103 -0
- package/contracts/core/StandardizedYield/implementations/Solv/PendleSolvHelper.sol +47 -0
- package/contracts/interfaces/Corn/ICornSilo.sol +8 -0
- package/contracts/interfaces/IPActionMiscV3.sol +0 -24
- package/contracts/interfaces/Pump/IPumpStaking.sol +14 -0
- package/contracts/interfaces/Solv/ISolvERC3525.sol +13 -0
- package/contracts/interfaces/Solv/ISolvOpenFundMarket.sol +46 -0
- package/contracts/interfaces/Solv/ISolvOracle.sol +10 -0
- package/contracts/interfaces/Solv/ISolvRouter.sol +6 -0
- package/contracts/oracles/PendleBoringOneracle.sol +11 -0
- package/contracts/oracles/PendleBoringSolvBTCOneracle.sol +11 -0
- package/contracts/router/ActionMiscV3.sol +2 -140
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +0 -7
- package/contracts/router/swap-aggregator/PendleSwap.sol +16 -24
- package/deployments/1-core.json +3 -3
- package/deployments/1-markets/CORN-LBTC-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/CORN-PUMPBTC-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/CORN-SOLVBTCBBN-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/CORN-UNIBTC-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/KARAK-SUSDE-MAINNET-JAN2025.json +14 -0
- package/deployments/1-markets/KARAK-USDE-MAINNET-JAN2025.json +14 -0
- package/deployments/1-markets/KARAK-WEETH-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/MELLOW-ENA-MAINNET-MAR2025.json +14 -0
- package/deployments/1-markets/MELLOW-SUSDE-MAINNET-MAR2025.json +14 -0
- package/deployments/1-markets/PUFETH-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/RSWETH-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/SUSDE-MAINNET-MAR2025.json +14 -0
- package/deployments/1-markets/UNIETH-MAINNET-DEC2024.json +14 -0
- package/deployments/1-markets/USDE-MAINNET-MAR2025.json +14 -0
- package/deployments/1-markets/WEETHK-MAINNET-DEC2024.json +14 -0
- package/deployments/10-core.json +2 -2
- package/deployments/42161-core.json +2 -2
- package/deployments/5000-core.json +2 -2
- package/deployments/56-core.json +2 -2
- package/deployments/merkle-distribution/2024-08-29.json +21525 -0
- package/package.json +1 -1
- package/typechain-types/ActionMiscV3.ts +0 -150
- package/typechain-types/ICornSilo.ts +146 -0
- package/typechain-types/IKyberScalingHelper.ts +108 -0
- package/typechain-types/IPActionMiscV3.ts +0 -150
- package/typechain-types/IPAllActionV3.ts +0 -150
- package/typechain-types/IPumpStaking.ts +189 -0
- package/typechain-types/ISolvERC3525.ts +87 -0
- package/typechain-types/ISolvOpenFundMarket.ts +201 -0
- package/typechain-types/ISolvOracle.ts +231 -0
- package/typechain-types/ISolvRouter.ts +110 -0
- package/typechain-types/PendleBoringOneracle.ts +87 -0
- package/typechain-types/PendleBoringSolvBTCOneracle.ts +87 -0
- package/typechain-types/PendleCornBaseSY.ts +1384 -0
- package/typechain-types/PendleCornBaseSYUpg.ts +1384 -0
- package/typechain-types/PendleCornLBTCSY.ts +1410 -0
- package/typechain-types/PendleCornPumpBTCSY.ts +1410 -0
- package/typechain-types/PendleCornSolvBTCBBNSYUpg.ts +1457 -0
- package/typechain-types/PendleCornUniBTCSYUpg.ts +1464 -0
- package/typechain-types/PendleEBTCSY.ts +13 -0
- package/typechain-types/PendleLBTCSY.ts +1362 -0
- package/typechain-types/PendleSolvBTCBBNSYUpg.ts +1409 -0
- package/typechain-types/PendleSolvHelper.ts +220 -0
- package/typechain-types/PendleSwap.ts +21 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -1
- package/typechain-types/factories/ActionMiscV3__factory.ts +1 -189
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
- package/typechain-types/factories/AuraWethVethSYUpg__factory.ts +1 -1
- package/typechain-types/factories/ICornSilo__factory.ts +71 -0
- package/typechain-types/factories/IKyberScalingHelper__factory.ts +55 -0
- package/typechain-types/factories/IPActionMiscV3__factory.ts +0 -188
- package/typechain-types/factories/IPAllActionV3__factory.ts +0 -188
- package/typechain-types/factories/IPumpStaking__factory.ts +88 -0
- package/typechain-types/factories/ISolvERC3525__factory.ts +36 -0
- package/typechain-types/factories/ISolvOpenFundMarket__factory.ts +180 -0
- package/typechain-types/factories/ISolvOracle__factory.ts +112 -0
- package/typechain-types/factories/ISolvRouter__factory.ts +47 -0
- package/typechain-types/factories/PendleBoringOneracle__factory.ts +81 -0
- package/typechain-types/factories/PendleBoringSolvBTCOneracle__factory.ts +83 -0
- package/typechain-types/factories/PendleCornBaseSYUpg__factory.ts +1069 -0
- package/typechain-types/factories/PendleCornBaseSY__factory.ts +1085 -0
- package/typechain-types/factories/PendleCornLBTCSY__factory.ts +1168 -0
- package/typechain-types/factories/PendleCornPumpBTCSY__factory.ts +1154 -0
- package/typechain-types/factories/PendleCornSolvBTCBBNSYUpg__factory.ts +1168 -0
- package/typechain-types/factories/PendleCornUniBTCSYUpg__factory.ts +1181 -0
- package/typechain-types/factories/PendleEBTCSY__factory.ts +14 -1
- package/typechain-types/factories/PendleERC20SYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleERC4626SYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
- package/typechain-types/factories/PendleHlpSY__factory.ts +1 -1
- package/typechain-types/factories/PendleKarakVaultERC20SY__factory.ts +1 -1
- package/typechain-types/factories/PendleKarakVaultEzETHSY__factory.ts +1 -1
- package/typechain-types/factories/PendleKarakVaultSUSDESY__factory.ts +1 -1
- package/typechain-types/factories/PendleKarakVaultUSDESY__factory.ts +1 -1
- package/typechain-types/factories/PendleKarakVaultWEETHSY__factory.ts +1 -1
- package/typechain-types/factories/PendleKyberElasticSYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleLBTCSY__factory.ts +1126 -0
- package/typechain-types/factories/PendleMellowVaultERC20SYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMellowVaultERC4626SYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMellowVaultSYBaseUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMellowVaultWstETHSYUpg__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
- package/typechain-types/factories/PendlePufStETHSY__factory.ts +1 -1
- package/typechain-types/factories/PendlePufWETHSY__factory.ts +1 -1
- package/typechain-types/factories/PendleSUSDEMantleSY__factory.ts +1 -1
- package/typechain-types/factories/PendleSolvBTCBBNSYUpg__factory.ts +1129 -0
- package/typechain-types/factories/PendleSolvHelper__factory.ts +168 -0
- package/typechain-types/factories/PendleStTAOSY__factory.ts +1 -1
- package/typechain-types/factories/PendleSwap__factory.ts +9 -12
- package/typechain-types/factories/PendleUSDEL2SY__factory.ts +1 -1
- package/typechain-types/factories/PendleWEEthkSY__factory.ts +1 -1
- package/typechain-types/factories/PendleWEEthsSY__factory.ts +1 -1
- package/typechain-types/factories/PendleZtakeERC20SY__factory.ts +1 -1
- package/typechain-types/factories/PendleZtakeEzETHSY__factory.ts +1 -1
- package/typechain-types/factories/PendleZtakeRsETHSY__factory.ts +1 -1
- package/typechain-types/factories/PendleZtakeUSDESY__factory.ts +1 -1
- package/typechain-types/factories/PendleZtakeWeETHSY__factory.ts +1 -1
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +166 -13
- package/typechain-types/index.ts +38 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapBase.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapBase.json +0 -60
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.json +0 -60
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.json +0 -60
- /package/deployments/5000-markets/{MNT-MANTLE-SEP2024.json → MNT-MANTLE-OCT2024.json} +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../../../interfaces/Pump/IPumpStaking.sol";
|
|
5
|
+
|
|
6
|
+
library PendlePumpHelperLib {
|
|
7
|
+
address internal constant PUMP_STAKING = 0x1fCca65fb6Ae3b2758b9b2B394CB227eAE404e1E;
|
|
8
|
+
address internal constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
|
|
9
|
+
address internal constant PUMP_BTC = 0xF469fBD2abcd6B9de8E169d128226C0Fc90a012e;
|
|
10
|
+
uint256 internal constant FEE_DENOM = 10_000;
|
|
11
|
+
|
|
12
|
+
function _mintPumpBTC(uint256 amount) internal {
|
|
13
|
+
IPumpStaking(PUMP_STAKING).stake(amount);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function _instantUnstake(uint256 amount) internal {
|
|
17
|
+
IPumpStaking(PUMP_STAKING).unstakeInstant(amount);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function _previewInstantUnstake(uint256 amount) internal view returns (uint256) {
|
|
21
|
+
bool onlyStakeAllowed = IPumpStaking(PUMP_STAKING).onlyAllowStake();
|
|
22
|
+
uint256 maxAmountRedeemable = IPumpStaking(PUMP_STAKING).pendingStakeAmount();
|
|
23
|
+
|
|
24
|
+
require(
|
|
25
|
+
!onlyStakeAllowed && amount <= maxAmountRedeemable,
|
|
26
|
+
"PumpStaking: redeem not allowed"
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
uint256 feeRate = IPumpStaking(PUMP_STAKING).instantUnstakeFee();
|
|
30
|
+
return amount - amount * feeRate / FEE_DENOM;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../SYBaseUpg.sol";
|
|
5
|
+
import "./PendleSolvHelper.sol";
|
|
6
|
+
import "../../../../interfaces/IPExchangeRateOracle.sol";
|
|
7
|
+
|
|
8
|
+
contract PendleSolvBTCBBNSYUpg is SYBaseUpg {
|
|
9
|
+
event SetNewExchangeRateOracle(address oracle);
|
|
10
|
+
|
|
11
|
+
address public constant WBTC = PendleSolvHelper.WBTC;
|
|
12
|
+
address public constant SOLV_BTC = PendleSolvHelper.SOLV_BTC_TOKEN;
|
|
13
|
+
address public constant SOLV_BTCBBN = PendleSolvHelper.SOLV_BTCBBN_TOKEN;
|
|
14
|
+
|
|
15
|
+
address public exchangeRateOracle;
|
|
16
|
+
|
|
17
|
+
constructor() SYBaseUpg(SOLV_BTCBBN) {}
|
|
18
|
+
|
|
19
|
+
function initialize(address _initialExchangeRateOracle) external initializer {
|
|
20
|
+
__SYBaseUpg_init("SY SolvBTC Babylon", "SY-SolvBTC.BBN");
|
|
21
|
+
_setExchangeRateOracle(_initialExchangeRateOracle);
|
|
22
|
+
_safeApproveInf(WBTC, PendleSolvHelper.SOLV_BTC_ROUTER);
|
|
23
|
+
_safeApproveInf(SOLV_BTC, PendleSolvHelper.SOLV_BTCBBN_ROUTER);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/*///////////////////////////////////////////////////////////////
|
|
27
|
+
DEPOSIT/REDEEM USING BASE TOKENS
|
|
28
|
+
//////////////////////////////////////////////////////////////*/
|
|
29
|
+
|
|
30
|
+
function _deposit(address tokenIn, uint256 amountDeposited) internal virtual override returns (uint256) {
|
|
31
|
+
if (tokenIn == SOLV_BTCBBN) {
|
|
32
|
+
return amountDeposited;
|
|
33
|
+
}
|
|
34
|
+
return PendleSolvHelper._mintBTCBBN(tokenIn, amountDeposited);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _redeem(
|
|
38
|
+
address receiver,
|
|
39
|
+
address /*tokenOut*/,
|
|
40
|
+
uint256 amountSharesToRedeem
|
|
41
|
+
) internal virtual override returns (uint256) {
|
|
42
|
+
_transferOut(SOLV_BTCBBN, receiver, amountSharesToRedeem);
|
|
43
|
+
return amountSharesToRedeem;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/*///////////////////////////////////////////////////////////////
|
|
47
|
+
EXCHANGE-RATE
|
|
48
|
+
//////////////////////////////////////////////////////////////*/
|
|
49
|
+
|
|
50
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
51
|
+
return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
|
|
55
|
+
_setExchangeRateOracle(newOracle);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function _setExchangeRateOracle(address newOracle) internal virtual {
|
|
59
|
+
exchangeRateOracle = newOracle;
|
|
60
|
+
emit SetNewExchangeRateOracle(newOracle);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/*///////////////////////////////////////////////////////////////
|
|
64
|
+
MISC FUNCTIONS FOR METADATA
|
|
65
|
+
//////////////////////////////////////////////////////////////*/
|
|
66
|
+
|
|
67
|
+
function _previewDeposit(
|
|
68
|
+
address tokenIn,
|
|
69
|
+
uint256 amountTokenToDeposit
|
|
70
|
+
) internal view virtual override returns (uint256 /*amountSharesOut*/) {
|
|
71
|
+
if (tokenIn == SOLV_BTCBBN) {
|
|
72
|
+
return amountTokenToDeposit;
|
|
73
|
+
}
|
|
74
|
+
return PendleSolvHelper._previewMintBTCBBN(tokenIn, amountTokenToDeposit);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function _previewRedeem(
|
|
78
|
+
address /*tokenOut*/,
|
|
79
|
+
uint256 amountSharesToRedeem
|
|
80
|
+
) internal view virtual override returns (uint256 amountTokenOut) {
|
|
81
|
+
return amountSharesToRedeem;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
85
|
+
return ArrayLib.create(WBTC, SOLV_BTC, SOLV_BTCBBN);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function getTokensOut() public view virtual override returns (address[] memory) {
|
|
89
|
+
return ArrayLib.create(SOLV_BTCBBN);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
93
|
+
return token == WBTC || token == SOLV_BTC || token == SOLV_BTCBBN;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
97
|
+
return token == SOLV_BTCBBN;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
|
|
101
|
+
return (AssetType.TOKEN, WBTC, IERC20Metadata(WBTC).decimals());
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../../../interfaces/Solv/ISolvRouter.sol";
|
|
5
|
+
import "../../../../interfaces/Solv/ISolvOpenFundMarket.sol";
|
|
6
|
+
import "../../../../interfaces/Solv/ISolvOracle.sol";
|
|
7
|
+
import "../../../../interfaces/Solv/ISolvERC3525.sol";
|
|
8
|
+
|
|
9
|
+
library PendleSolvHelper {
|
|
10
|
+
address public constant SOLV_BTCBBN_ROUTER = 0x01024AaeD5561fa6237C0ad4073417576C591261;
|
|
11
|
+
address public constant SOLV_BTCBBN_TOKEN = 0xd9D920AA40f578ab794426F5C90F6C731D159DEf;
|
|
12
|
+
bytes32 public constant SOLV_BTCBBN_POOLID = 0xefcca1eb946cdc7b56509489a56b45b75aff74b8bb84dad5b893012157e0df93;
|
|
13
|
+
|
|
14
|
+
address public constant SOLV_BTC_ROUTER = 0x1fF7d7C0A7D8E94046708C611DeC5056A9d2B823;
|
|
15
|
+
address public constant SOLV_BTC_TOKEN = 0x7A56E1C57C7475CCf742a1832B028F0456652F97;
|
|
16
|
+
bytes32 public constant SOLV_BTC_POOLID = 0x716db7dc196abe78d5349c7166896f674ab978af26ada3e5b3ea74c5a1b48307;
|
|
17
|
+
|
|
18
|
+
address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
|
|
19
|
+
|
|
20
|
+
address public constant SOLV_OPEN_FUND_MARKET = 0x57bB6a8563a8e8478391C79F3F433C6BA077c567;
|
|
21
|
+
|
|
22
|
+
function _mintBTCBBN(address tokenIn, uint256 amountIn) internal returns (uint256) {
|
|
23
|
+
assert(tokenIn == WBTC || tokenIn == SOLV_BTC_TOKEN);
|
|
24
|
+
|
|
25
|
+
if (tokenIn == WBTC) {
|
|
26
|
+
amountIn = ISolvRouter(SOLV_BTC_ROUTER).createSubscription(SOLV_BTC_POOLID, amountIn);
|
|
27
|
+
}
|
|
28
|
+
return ISolvRouter(SOLV_BTCBBN_ROUTER).createSubscription(SOLV_BTCBBN_POOLID, amountIn);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _previewMintBTCBBN(address tokenIn, uint256 amountIn) internal view returns (uint256) {
|
|
32
|
+
assert(tokenIn == WBTC || tokenIn == SOLV_BTC_TOKEN);
|
|
33
|
+
|
|
34
|
+
if (tokenIn == WBTC) {
|
|
35
|
+
amountIn = _convertToShare(WBTC, amountIn);
|
|
36
|
+
}
|
|
37
|
+
return _convertToShare(SOLV_BTC_TOKEN, amountIn);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function _convertToShare(address tokenIn, uint256 amountIn) internal view returns (uint256) {
|
|
41
|
+
bytes32 poolId = tokenIn == WBTC ? SOLV_BTC_POOLID : SOLV_BTCBBN_POOLID;
|
|
42
|
+
ISolvOpenFundMarket.PoolInfo memory info = ISolvOpenFundMarket(SOLV_OPEN_FUND_MARKET).poolInfos(poolId);
|
|
43
|
+
uint256 numerator = 10 ** ISolvERC3525(info.poolSFTInfo.openFundShare).valueDecimals();
|
|
44
|
+
(uint256 price, ) = ISolvOracle(info.navOracle).getSubscribeNav(poolId, block.timestamp);
|
|
45
|
+
return (amountIn * numerator) / price;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -3,8 +3,6 @@ pragma solidity ^0.8.0;
|
|
|
3
3
|
|
|
4
4
|
import "../router/base/MarketApproxLib.sol";
|
|
5
5
|
import "./IPAllActionTypeV3.sol";
|
|
6
|
-
import "./IStandardizedYield.sol";
|
|
7
|
-
import "./IPMarket.sol";
|
|
8
6
|
|
|
9
7
|
/*
|
|
10
8
|
*******************************************************************************************************************
|
|
@@ -28,14 +26,6 @@ interface IPActionMiscV3 {
|
|
|
28
26
|
bytes returnData;
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
struct RedeemYtIncomeToTokenStruct {
|
|
32
|
-
IPYieldToken yt;
|
|
33
|
-
bool doRedeemInterest;
|
|
34
|
-
bool doRedeemRewards;
|
|
35
|
-
address tokenRedeemSy;
|
|
36
|
-
uint256 minTokenRedeemOut;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
29
|
struct ExitPreExpReturnParams {
|
|
40
30
|
uint256 netPtFromRemove;
|
|
41
31
|
uint256 netSyFromRemove;
|
|
@@ -195,20 +185,6 @@ interface IPActionMiscV3 {
|
|
|
195
185
|
address[] calldata markets
|
|
196
186
|
) external;
|
|
197
187
|
|
|
198
|
-
function redeemDueInterestAndRewardsV2(
|
|
199
|
-
IStandardizedYield[] calldata SYs,
|
|
200
|
-
RedeemYtIncomeToTokenStruct[] calldata YTs,
|
|
201
|
-
IPMarket[] calldata markets,
|
|
202
|
-
IPSwapAggregator pendleSwap,
|
|
203
|
-
SwapDataExtra[] calldata swaps
|
|
204
|
-
) external returns (uint256[] memory netOutFromSwaps, uint256[] memory netInterests);
|
|
205
|
-
|
|
206
|
-
function swapTokensToTokens(
|
|
207
|
-
IPSwapAggregator pendleSwap,
|
|
208
|
-
SwapDataExtra[] calldata swaps,
|
|
209
|
-
uint256[] calldata netSwaps
|
|
210
|
-
) external payable returns (uint256[] memory netOutFromSwaps);
|
|
211
|
-
|
|
212
188
|
function swapTokenToToken(
|
|
213
189
|
address receiver,
|
|
214
190
|
uint256 minTokenOut,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BUSL-1.1
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
interface IPumpStaking {
|
|
5
|
+
function stake(uint256 amount) external;
|
|
6
|
+
|
|
7
|
+
function unstakeInstant(uint256 amount) external;
|
|
8
|
+
|
|
9
|
+
function onlyAllowStake() external view returns (bool);
|
|
10
|
+
|
|
11
|
+
function instantUnstakeFee() external view returns (uint256);
|
|
12
|
+
|
|
13
|
+
function pendingStakeAmount() external view returns (uint256);
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
interface ISolvERC3525 {
|
|
5
|
+
/**
|
|
6
|
+
* @notice Get the number of decimals the token uses for value - e.g. 6, means the user
|
|
7
|
+
* representation of the value of a token can be calculated by dividing it by 1,000,000.
|
|
8
|
+
* Considering the compatibility with third-party wallets, this function is defined as
|
|
9
|
+
* `valueDecimals()` instead of `decimals()` to avoid conflict with ERC20 tokens.
|
|
10
|
+
* @return The number of decimals for value
|
|
11
|
+
*/
|
|
12
|
+
function valueDecimals() external view returns (uint8);
|
|
13
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
interface ISolvOpenFundMarket {
|
|
5
|
+
struct SFTInfo {
|
|
6
|
+
address manager;
|
|
7
|
+
bool isValid;
|
|
8
|
+
}
|
|
9
|
+
struct SubscribeLimitInfo {
|
|
10
|
+
uint256 hardCap;
|
|
11
|
+
uint256 subscribeMin;
|
|
12
|
+
uint256 subscribeMax;
|
|
13
|
+
uint64 fundraisingStartTime;
|
|
14
|
+
uint64 fundraisingEndTime;
|
|
15
|
+
}
|
|
16
|
+
struct PoolSFTInfo {
|
|
17
|
+
address openFundShare;
|
|
18
|
+
address openFundRedemption;
|
|
19
|
+
uint256 openFundShareSlot;
|
|
20
|
+
uint256 latestRedeemSlot;
|
|
21
|
+
}
|
|
22
|
+
struct PoolFeeInfo {
|
|
23
|
+
uint16 carryRate;
|
|
24
|
+
address carryCollector;
|
|
25
|
+
uint64 latestProtocolFeeSettleTime;
|
|
26
|
+
}
|
|
27
|
+
struct ManagerInfo {
|
|
28
|
+
address poolManager;
|
|
29
|
+
address subscribeNavManager;
|
|
30
|
+
address redeemNavManager;
|
|
31
|
+
}
|
|
32
|
+
struct PoolInfo {
|
|
33
|
+
PoolSFTInfo poolSFTInfo;
|
|
34
|
+
PoolFeeInfo poolFeeInfo;
|
|
35
|
+
ManagerInfo managerInfo;
|
|
36
|
+
SubscribeLimitInfo subscribeLimitInfo;
|
|
37
|
+
address vault;
|
|
38
|
+
address currency;
|
|
39
|
+
address navOracle;
|
|
40
|
+
uint64 valueDate;
|
|
41
|
+
bool permissionless;
|
|
42
|
+
uint256 fundraisingAmount;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function poolInfos(bytes32) external view returns (PoolInfo memory);
|
|
46
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.0;
|
|
4
|
+
|
|
5
|
+
interface ISolvOracle {
|
|
6
|
+
function setSubscribeNavOnlyMarket(bytes32 poolId_, uint256 time_, uint256 nav_) external;
|
|
7
|
+
function updateAllTimeHighRedeemNavOnlyMarket(bytes32 poolId_, uint256 nav_) external;
|
|
8
|
+
function getSubscribeNav(bytes32 poolId_, uint256 time_) external view returns (uint256 nav_, uint256 navTime_);
|
|
9
|
+
function getAllTimeHighRedeemNav(bytes32 poolId_) external view returns (uint256);
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../core/libraries/math/PMath.sol";
|
|
5
|
+
import "../interfaces/IPExchangeRateOracle.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleBoringOneracle is IPExchangeRateOracle {
|
|
8
|
+
function getExchangeRate() external pure returns (uint256) {
|
|
9
|
+
return PMath.ONE;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../core/libraries/math/PMath.sol";
|
|
5
|
+
import "../interfaces/IPExchangeRateOracle.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleBoringSolvBTCOneracle is IPExchangeRateOracle {
|
|
8
|
+
function getExchangeRate() external pure returns (uint256) {
|
|
9
|
+
return 10 ** 8;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -6,9 +6,6 @@ import "../interfaces/IPActionMiscV3.sol";
|
|
|
6
6
|
import "../interfaces/IPReflector.sol";
|
|
7
7
|
|
|
8
8
|
contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
9
|
-
uint256 private constant NOT_FOUND = type(uint256).max;
|
|
10
|
-
address private constant SKIP_REDEEM_SY = address(0x1);
|
|
11
|
-
|
|
12
9
|
function mintSyFromToken(
|
|
13
10
|
address receiver,
|
|
14
11
|
address SY,
|
|
@@ -96,75 +93,6 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
96
93
|
}
|
|
97
94
|
}
|
|
98
95
|
|
|
99
|
-
/// @dev The interface might change in the future, check with Pendle team before use
|
|
100
|
-
function redeemDueInterestAndRewardsV2(
|
|
101
|
-
IStandardizedYield[] calldata SYs,
|
|
102
|
-
RedeemYtIncomeToTokenStruct[] calldata YTs,
|
|
103
|
-
IPMarket[] calldata markets,
|
|
104
|
-
IPSwapAggregator pendleSwap,
|
|
105
|
-
SwapDataExtra[] calldata swaps
|
|
106
|
-
) external returns (uint256[] memory netOutFromSwaps, uint256[] memory netInterests) {
|
|
107
|
-
netOutFromSwaps = new uint256[](swaps.length);
|
|
108
|
-
uint256[] memory netSwaps = new uint256[](swaps.length);
|
|
109
|
-
|
|
110
|
-
for (uint256 i = 0; i < SYs.length; ++i) {
|
|
111
|
-
_add(swaps, netSwaps, SYs[i].getRewardTokens(), SYs[i].claimRewards(msg.sender));
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
netInterests = new uint256[](YTs.length);
|
|
115
|
-
for (uint256 i = 0; i < YTs.length; ++i) {
|
|
116
|
-
uint256[] memory netRewards;
|
|
117
|
-
(netInterests[i], netRewards) = YTs[i].yt.redeemDueInterestAndRewards(
|
|
118
|
-
msg.sender,
|
|
119
|
-
YTs[i].doRedeemInterest,
|
|
120
|
-
YTs[i].doRedeemRewards
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
if (YTs[i].doRedeemRewards) _add(swaps, netSwaps, YTs[i].yt.getRewardTokens(), netRewards);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
for (uint256 i = 0; i < markets.length; ++i) {
|
|
127
|
-
_add(swaps, netSwaps, markets[i].getRewardTokens(), markets[i].redeemRewards(msg.sender));
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
for (uint256 i = 0; i < swaps.length; ++i) {
|
|
131
|
-
_transferIn(swaps[i].tokenIn, msg.sender, netSwaps[i]);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
for (uint256 i = 0; i < YTs.length; ++i) {
|
|
135
|
-
if (netInterests[i] == 0) continue;
|
|
136
|
-
IStandardizedYield SY = IStandardizedYield(YTs[i].yt.SY());
|
|
137
|
-
netInterests[i] = _redeemSyAndAdd(
|
|
138
|
-
swaps,
|
|
139
|
-
netSwaps,
|
|
140
|
-
SY,
|
|
141
|
-
netInterests[i],
|
|
142
|
-
YTs[i].tokenRedeemSy,
|
|
143
|
-
YTs[i].minTokenRedeemOut
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
for (uint256 i = 0; i < swaps.length; ++i) netOutFromSwaps[i] = _swap(swaps[i], netSwaps[i], pendleSwap, true);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/// @dev The interface might change in the future, check with Pendle team before use
|
|
151
|
-
function swapTokensToTokens(
|
|
152
|
-
IPSwapAggregator pendleSwap,
|
|
153
|
-
SwapDataExtra[] calldata swaps,
|
|
154
|
-
uint256[] calldata netSwaps
|
|
155
|
-
) external payable returns (uint256[] memory netOutFromSwaps) {
|
|
156
|
-
netOutFromSwaps = new uint256[](swaps.length);
|
|
157
|
-
|
|
158
|
-
for (uint256 i = 0; i < swaps.length; ++i) {
|
|
159
|
-
_transferIn(swaps[i].tokenIn, msg.sender, netSwaps[i]);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
for (uint256 i = 0; i < swaps.length; ++i) {
|
|
163
|
-
netOutFromSwaps[i] = _swap(swaps[i], netSwaps[i], pendleSwap, false);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/// @dev Deprecated, please use swapTokensToTokens which support unwrapping ETH too
|
|
168
96
|
function swapTokenToToken(
|
|
169
97
|
address receiver,
|
|
170
98
|
uint256 minTokenOut,
|
|
@@ -178,7 +106,6 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
178
106
|
_transferOut(inp.tokenMintSy, receiver, netTokenOut);
|
|
179
107
|
}
|
|
180
108
|
|
|
181
|
-
/// @dev The interface might change in the future, check with Pendle team before use
|
|
182
109
|
function swapTokenToTokenViaSy(
|
|
183
110
|
address receiver,
|
|
184
111
|
address SY,
|
|
@@ -190,6 +117,7 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
190
117
|
netTokenOut = IStandardizedYield(SY).redeem(receiver, netSyInterm, tokenRedeemSy, minTokenOut, true);
|
|
191
118
|
}
|
|
192
119
|
|
|
120
|
+
/// @dev The interface might change in the future, check with Pendle team before use
|
|
193
121
|
function exitPreExpToToken(
|
|
194
122
|
address receiver,
|
|
195
123
|
address market,
|
|
@@ -207,6 +135,7 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
207
135
|
emit ExitPreExpToToken(msg.sender, market, output.tokenOut, receiver, netLpIn, totalTokenOut, params);
|
|
208
136
|
}
|
|
209
137
|
|
|
138
|
+
/// @dev The interface might change in the future, check with Pendle team before use
|
|
210
139
|
function exitPreExpToSy(
|
|
211
140
|
address receiver,
|
|
212
141
|
address market,
|
|
@@ -299,73 +228,6 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
299
228
|
emit ExitPostExpToSy(msg.sender, market, receiver, netLpIn, params);
|
|
300
229
|
}
|
|
301
230
|
|
|
302
|
-
function _redeemSyAndAdd(
|
|
303
|
-
SwapDataExtra[] calldata swaps,
|
|
304
|
-
uint256[] memory netSwaps,
|
|
305
|
-
IStandardizedYield SY,
|
|
306
|
-
uint256 netSyToRedeem,
|
|
307
|
-
address tokenRedeemSy,
|
|
308
|
-
uint256 minTokenRedeemSy
|
|
309
|
-
) internal returns (uint256 netTokenOut) {
|
|
310
|
-
_transferFrom(SY, msg.sender, address(SY), netSyToRedeem);
|
|
311
|
-
|
|
312
|
-
uint256 index = _find(swaps, tokenRedeemSy);
|
|
313
|
-
if (index == NOT_FOUND) {
|
|
314
|
-
return SY.redeem(msg.sender, netSyToRedeem, tokenRedeemSy, minTokenRedeemSy, true);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
netTokenOut = SY.redeem(address(this), netSyToRedeem, tokenRedeemSy, minTokenRedeemSy, true);
|
|
318
|
-
netSwaps[index] += netTokenOut;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
function _add(
|
|
322
|
-
SwapDataExtra[] calldata swaps,
|
|
323
|
-
uint256[] memory netSwaps,
|
|
324
|
-
address[] memory tokens,
|
|
325
|
-
uint256[] memory amounts
|
|
326
|
-
) internal pure {
|
|
327
|
-
for (uint256 i = 0; i < tokens.length; ++i) {
|
|
328
|
-
uint256 index = _find(swaps, tokens[i]);
|
|
329
|
-
if (index == NOT_FOUND) continue;
|
|
330
|
-
|
|
331
|
-
netSwaps[index] += amounts[i];
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
function _swap(
|
|
336
|
-
SwapDataExtra calldata $,
|
|
337
|
-
uint256 netSwap,
|
|
338
|
-
IPSwapAggregator pendleSwap,
|
|
339
|
-
bool needScale
|
|
340
|
-
) internal returns (uint256 netTokenOut) {
|
|
341
|
-
SwapType swapType = $.swapData.swapType;
|
|
342
|
-
assert(swapType != SwapType.NONE);
|
|
343
|
-
|
|
344
|
-
if (swapType == SwapType.ETH_WETH) {
|
|
345
|
-
_wrap_unwrap_ETH($.tokenIn, $.tokenOut, netSwap);
|
|
346
|
-
|
|
347
|
-
netTokenOut = netSwap;
|
|
348
|
-
} else {
|
|
349
|
-
assert($.swapData.needScale == needScale);
|
|
350
|
-
|
|
351
|
-
_transferOut($.tokenIn, address(pendleSwap), netSwap);
|
|
352
|
-
|
|
353
|
-
uint256 preBalance = _selfBalance($.tokenOut);
|
|
354
|
-
IPSwapAggregator(pendleSwap).swap($.tokenIn, netSwap, $.swapData);
|
|
355
|
-
netTokenOut = _selfBalance($.tokenOut) - preBalance;
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
require(netTokenOut >= $.minOut, "Slippage: INSUFFICIENT_TOKEN_OUT");
|
|
359
|
-
_transferOut($.tokenOut, msg.sender, netTokenOut);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
function _find(SwapDataExtra[] calldata swaps, address token) internal pure returns (uint256 index) {
|
|
363
|
-
for (uint256 i = 0; i < swaps.length; ++i) {
|
|
364
|
-
if (swaps[i].tokenIn == token) return i;
|
|
365
|
-
}
|
|
366
|
-
return NOT_FOUND;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
231
|
function _exitPostExpToSy(
|
|
370
232
|
bool setReceiverToSy,
|
|
371
233
|
address receiver,
|
|
@@ -6,9 +6,11 @@ import "./IPSwapAggregator.sol";
|
|
|
6
6
|
import "./kyberswap/l1-contracts/InputScalingHelper.sol";
|
|
7
7
|
import "./kyberswap/l2-contracts/InputScalingHelperL2.sol";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
contract PendleSwap is IPSwapAggregator, TokenHelper {
|
|
10
10
|
using Address for address;
|
|
11
11
|
|
|
12
|
+
address public immutable KYBER_SCALING_HELPER = 0x2f577A41BeC1BE1152AeEA12e73b7391d15f655D;
|
|
13
|
+
|
|
12
14
|
function swap(address tokenIn, uint256 amountIn, SwapData calldata data) external payable {
|
|
13
15
|
_safeApproveInf(tokenIn, data.extRouter);
|
|
14
16
|
data.extRouter.functionCallWithValue(
|
|
@@ -21,36 +23,26 @@ abstract contract PendleSwapBase is IPSwapAggregator, TokenHelper {
|
|
|
21
23
|
SwapType swapType,
|
|
22
24
|
bytes calldata rawCallData,
|
|
23
25
|
uint256 amountIn
|
|
24
|
-
) internal
|
|
26
|
+
) internal view returns (bytes memory scaledCallData) {
|
|
25
27
|
if (swapType == SwapType.KYBERSWAP) {
|
|
26
|
-
|
|
28
|
+
bool isSuccess;
|
|
29
|
+
(isSuccess, scaledCallData) = IKyberScalingHelper(KYBER_SCALING_HELPER).getScaledInputData(
|
|
30
|
+
rawCallData,
|
|
31
|
+
amountIn
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
require(isSuccess, "PendleSwap: Kyber scaling failed");
|
|
27
35
|
} else {
|
|
28
36
|
assert(false);
|
|
29
37
|
}
|
|
30
38
|
}
|
|
31
39
|
|
|
32
|
-
function _getKyberScaledInputData(
|
|
33
|
-
bytes calldata rawCallData,
|
|
34
|
-
uint256 amountIn
|
|
35
|
-
) internal pure virtual returns (bytes memory scaledCallData);
|
|
36
|
-
|
|
37
40
|
receive() external payable {}
|
|
38
41
|
}
|
|
39
42
|
|
|
40
|
-
|
|
41
|
-
function
|
|
42
|
-
bytes calldata
|
|
43
|
-
uint256
|
|
44
|
-
)
|
|
45
|
-
return InputScalingHelper._getScaledInputData(rawCallData, amountIn);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
contract PendleSwapL2 is PendleSwapBase {
|
|
50
|
-
function _getKyberScaledInputData(
|
|
51
|
-
bytes calldata rawCallData,
|
|
52
|
-
uint256 amountIn
|
|
53
|
-
) internal pure override returns (bytes memory) {
|
|
54
|
-
return InputScalingHelperL2._getScaledInputData(rawCallData, amountIn);
|
|
55
|
-
}
|
|
43
|
+
interface IKyberScalingHelper {
|
|
44
|
+
function getScaledInputData(
|
|
45
|
+
bytes calldata inputData,
|
|
46
|
+
uint256 newAmount
|
|
47
|
+
) external view returns (bool isSuccess, bytes memory data);
|
|
56
48
|
}
|
package/deployments/1-core.json
CHANGED
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
"governanceProxy": "0x2aD631F72fB16d91c4953A7f4260A97C2fE2f31e",
|
|
21
21
|
"yieldContractFactory": "0x70ee0A6DB4F5a2Dc4d9c0b57bE97B9987e75BAFD",
|
|
22
22
|
"marketFactory": "0x27b1dAcd74688aF24a64BD3C9C1B143118740784",
|
|
23
|
-
"router": "
|
|
23
|
+
"router": "0x888888888889758F76e7103c6CbF23ABbF58F946",
|
|
24
24
|
"routerFacets": {
|
|
25
25
|
"ActionAddRemoveLiqV3": "0xb7631b93189900745Db51d960Ba64b8E6C658843",
|
|
26
26
|
"ActionSwapPTV3": "0xbFA3aAD535e1b996396698f89FFeC7ada0df17E8",
|
|
27
27
|
"ActionSwapYTV3": "0x8903dBFFcA66b3Fbc027aC81912ea64Fa61A5219",
|
|
28
|
-
"ActionMiscV3": "
|
|
28
|
+
"ActionMiscV3": "0x9afd337e41f59e5c2e6f2be05f32e958a4dbcd9a",
|
|
29
29
|
"ActionCallbackV3": "0x997FBC511a8Ad11F84a400feACD66E2A3fa805d2",
|
|
30
30
|
"ActionStorageV4": "0x6a0Ed0A9193FCBe7ae9B0F3D90F88e365Cca64fC"
|
|
31
31
|
},
|
|
32
32
|
"routerStatic": "0x263833d47eA3fA4a30f269323aba6a107f9eB14C",
|
|
33
|
-
"pendleSwap": "
|
|
33
|
+
"pendleSwap": "0x2E6ffA05cd6920dcc0d169efce2F4C96E774eCd2",
|
|
34
34
|
"pyYtLpOracle": "0x9a9fa8338dd5e5b2188006f1cd2ef26d921650c2",
|
|
35
35
|
"yieldContractFactoryV3": "0xdF3601014686674e53d1Fa52F7602525483F9122",
|
|
36
36
|
"marketFactoryV3": "0x1A6fCc85557BC4fB7B534ed835a03EF056552D52",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SY Corn LBTC",
|
|
3
|
+
"SY": "0x9d6Ec7a7B051B32205F74B140A0fa6f09D7F223E",
|
|
4
|
+
"YT": "0x1caE47aA3e10A77C55Ee32f8623D6B5ACC947344",
|
|
5
|
+
"PT": "0x332A8ee60EdFf0a11CF3994b1b846BBC27d3DcD6",
|
|
6
|
+
"market": "0xCaE62858DB831272A03768f5844cbe1B40bB381f",
|
|
7
|
+
"expiry": 1735171200,
|
|
8
|
+
"scalarRoot": "16084248220000000000",
|
|
9
|
+
"initAnchor": "1041917834000000000",
|
|
10
|
+
"lnFeeRateRoot": "999500333000000",
|
|
11
|
+
"deployTxHash": "0x317f54b060e78eb9d2973dce74f2ff58f87f5569e49ee50bc66b944fd3e4c2fa",
|
|
12
|
+
"deployBlockNumber": 20712332,
|
|
13
|
+
"reversedFee": 0.09999999999164011
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Corn pumpBTC",
|
|
3
|
+
"SY": "0x56bb34A12b70046b0a03EE63392C09cdDDAaA430",
|
|
4
|
+
"YT": "0xABb4F186F67c6517A9caFc54a5B93cFF2Aa4c5Eb",
|
|
5
|
+
"PT": "0xa76f0C6e5f286bFF151b891d2A0245077F1Ad74c",
|
|
6
|
+
"market": "0xf8208fB52BA80075aF09840A683143C22DC5B4dd",
|
|
7
|
+
"expiry": 1735171200,
|
|
8
|
+
"scalarRoot": "30856137291000000000",
|
|
9
|
+
"initAnchor": "1019119040000000000",
|
|
10
|
+
"lnFeeRateRoot": "999500333000000",
|
|
11
|
+
"deployTxHash": "0xbb9e913006fe76901e1fdd9ac288c2d5a0ad11b0a4fb38c5ff095c0907f34626",
|
|
12
|
+
"deployBlockNumber": 20824952,
|
|
13
|
+
"reversedFee": 0.09999999999164011
|
|
14
|
+
}
|