@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,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "PendleSwap",
|
|
4
|
+
"sourceName": "contracts/router/swap-aggregator/PendleSwap.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "KYBER_SCALING_HELPER",
|
|
9
|
+
"outputs": [
|
|
10
|
+
{
|
|
11
|
+
"internalType": "address",
|
|
12
|
+
"name": "",
|
|
13
|
+
"type": "address"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"stateMutability": "view",
|
|
17
|
+
"type": "function"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"inputs": [
|
|
21
|
+
{
|
|
22
|
+
"internalType": "address",
|
|
23
|
+
"name": "tokenIn",
|
|
24
|
+
"type": "address"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"internalType": "uint256",
|
|
28
|
+
"name": "amountIn",
|
|
29
|
+
"type": "uint256"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"components": [
|
|
33
|
+
{
|
|
34
|
+
"internalType": "enum SwapType",
|
|
35
|
+
"name": "swapType",
|
|
36
|
+
"type": "uint8"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"internalType": "address",
|
|
40
|
+
"name": "extRouter",
|
|
41
|
+
"type": "address"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"internalType": "bytes",
|
|
45
|
+
"name": "extCalldata",
|
|
46
|
+
"type": "bytes"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"internalType": "bool",
|
|
50
|
+
"name": "needScale",
|
|
51
|
+
"type": "bool"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"internalType": "struct SwapData",
|
|
55
|
+
"name": "data",
|
|
56
|
+
"type": "tuple"
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"name": "swap",
|
|
60
|
+
"outputs": [],
|
|
61
|
+
"stateMutability": "payable",
|
|
62
|
+
"type": "function"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"stateMutability": "payable",
|
|
66
|
+
"type": "receive"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"bytecode": "0x60a0604052732f577a41bec1be1152aeea12e73b7391d15f655d60805234801561002857600080fd5b506080516109b261004a600039600081816060015261026f01526109b26000f3fe60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c61004736600461061e565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b2604084016020850161067b565b610176565b6101706100ca60808301606084016106ae565b610115576100db60408301836106cb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610718565b61013260408501856106cb565b8661023a565b6001600160a01b0385161561014e576000610150565b835b610160604085016020860161067b565b6001600160a01b03169190610359565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b03610739565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610217919061076d565b1015610236576102298282600061037f565b610236828260001961037f565b5050565b6060600185600381111561025057610250610786565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a89088908890889060040161079c565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed919081019061080f565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b50610351565b6103516108d1565b949350505050565b606061035184848460405180606001604052806029815260200161095460299139610489565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916103db91906108e7565b6000604051808303816000865af19150503d8060008114610418576040519150601f19603f3d011682016040523d82523d6000602084013e61041d565b606091505b50915091508180156104475750805115806104475750808060200190518101906104479190610903565b6104825760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b6060824710156104ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b0316858760405161050691906108e7565b60006040518083038185875af1925050503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b509150915061055987838387610564565b979650505050505050565b606083156105d35782516000036105cc576001600160a01b0385163b6105cc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b5081610351565b61035183838151156105e85781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610920565b80356001600160a01b038116811461061957600080fd5b919050565b60008060006060848603121561063357600080fd5b61063c84610602565b92506020840135915060408401356001600160401b0381111561065e57600080fd5b84016080818703121561067057600080fd5b809150509250925092565b60006020828403121561068d57600080fd5b61069682610602565b9392505050565b80151581146106ab57600080fd5b50565b6000602082840312156106c057600080fd5b81356106968161069d565b6000808335601e198436030181126106e257600080fd5b8301803591506001600160401b038211156106fc57600080fd5b60200191503681900382131561071157600080fd5b9250929050565b60006020828403121561072a57600080fd5b81356004811061069657600080fd5b60006001600160601b038381168061076157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006020828403121561077f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156108065781810151838201526020016107ee565b50506000910152565b6000806040838503121561082257600080fd5b825161082d8161069d565b60208401519092506001600160401b038082111561084a57600080fd5b818501915085601f83011261085e57600080fd5b815181811115610870576108706107d5565b604051601f8201601f19908116603f01168101908382118183101715610898576108986107d5565b816040528281528860208487010111156108b157600080fd5b6108c28360208301602088016107eb565b80955050505050509250929050565b634e487b7160e01b600052600160045260246000fd5b600082516108f98184602087016107eb565b9190910192915050565b60006020828403121561091557600080fd5b81516106968161069d565b602081526000825180602084015261093f8160408501602087016107eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212207c2071b50950c0868bdb4a1a1ca8e3f9a14a0382327284b143139b2989e27b0d64736f6c63430008170033",
|
|
70
|
+
"deployedBytecode": "0x60806040526004361061002d5760003560e01c80632bdb823c146100395780638930af571461004e57600080fd5b3661003457005b600080fd5b61004c61004736600461061e565b61009e565b005b34801561005a57600080fd5b506100827f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100b7836100b2604084016020850161067b565b610176565b6101706100ca60808301606084016106ae565b610115576100db60408301836106cb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061013892505050565b6101386101256020840184610718565b61013260408501856106cb565b8661023a565b6001600160a01b0385161561014e576000610150565b835b610160604085016020860161067b565b6001600160a01b03169190610359565b50505050565b6001600160a01b038216610188575050565b61019a60026001600160601b03610739565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa1580156101f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610217919061076d565b1015610236576102298282600061037f565b610236828260001961037f565b5050565b6060600185600381111561025057610250610786565b036103495760405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906102a89088908890889060040161079c565b600060405180830381865afa1580156102c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102ed919081019061080f565b92509050806103435760405162461bcd60e51b815260206004820181905260248201527f50656e646c65537761703a204b79626572207363616c696e67206661696c656460448201526064015b60405180910390fd5b50610351565b6103516108d1565b949350505050565b606061035184848460405180606001604052806029815260200161095460299139610489565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916103db91906108e7565b6000604051808303816000865af19150503d8060008114610418576040519150601f19603f3d011682016040523d82523d6000602084013e61041d565b606091505b50915091508180156104475750805115806104475750808060200190518101906104479190610903565b6104825760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161033a565b5050505050565b6060824710156104ea5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161033a565b600080866001600160a01b0316858760405161050691906108e7565b60006040518083038185875af1925050503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b509150915061055987838387610564565b979650505050505050565b606083156105d35782516000036105cc576001600160a01b0385163b6105cc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161033a565b5081610351565b61035183838151156105e85781518083602001fd5b8060405162461bcd60e51b815260040161033a9190610920565b80356001600160a01b038116811461061957600080fd5b919050565b60008060006060848603121561063357600080fd5b61063c84610602565b92506020840135915060408401356001600160401b0381111561065e57600080fd5b84016080818703121561067057600080fd5b809150509250925092565b60006020828403121561068d57600080fd5b61069682610602565b9392505050565b80151581146106ab57600080fd5b50565b6000602082840312156106c057600080fd5b81356106968161069d565b6000808335601e198436030181126106e257600080fd5b8301803591506001600160401b038211156106fc57600080fd5b60200191503681900382131561071157600080fd5b9250929050565b60006020828403121561072a57600080fd5b81356004811061069657600080fd5b60006001600160601b038381168061076157634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006020828403121561077f57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b604081528260408201528284606083013760006060848301015260006060601f19601f8601168301019050826020830152949350505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156108065781810151838201526020016107ee565b50506000910152565b6000806040838503121561082257600080fd5b825161082d8161069d565b60208401519092506001600160401b038082111561084a57600080fd5b818501915085601f83011261085e57600080fd5b815181811115610870576108706107d5565b604051601f8201601f19908116603f01168101908382118183101715610898576108986107d5565b816040528281528860208487010111156108b157600080fd5b6108c28360208301602088016107eb565b80955050505050509250929050565b634e487b7160e01b600052600160045260246000fd5b600082516108f98184602087016107eb565b9190910192915050565b60006020828403121561091557600080fd5b81516106968161069d565b602081526000825180602084015261093f8160408501602087016107eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212207c2071b50950c0868bdb4a1a1ca8e3f9a14a0382327284b143139b2989e27b0d64736f6c63430008170033",
|
|
71
|
+
"linkReferences": {},
|
|
72
|
+
"deployedLinkReferences": {}
|
|
73
|
+
}
|
|
@@ -27,6 +27,7 @@ abstract contract SYBaseUpg is
|
|
|
27
27
|
|
|
28
28
|
constructor(address _yieldToken) PendleERC20Upg(IERC20Metadata(_yieldToken).decimals()) {
|
|
29
29
|
yieldToken = _yieldToken;
|
|
30
|
+
_disableInitializers();
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
function __SYBaseUpg_init(string memory name_, string memory symbol_) internal onlyInitializing {
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../SYBase.sol";
|
|
5
|
+
import "../../../../interfaces/IPExchangeRateOracle.sol";
|
|
6
|
+
import "../../../../interfaces/Corn/ICornSilo.sol";
|
|
7
|
+
|
|
8
|
+
abstract contract PendleCornBaseSY is SYBase {
|
|
9
|
+
event SetNewExchangeRateOracle(address oracle);
|
|
10
|
+
|
|
11
|
+
// solhint-disable immutable-vars-naming
|
|
12
|
+
// solhint-disable const-name-snakecase
|
|
13
|
+
|
|
14
|
+
address public constant CORN_SILO = 0x8bc93498b861fd98277c3b51d240e7E56E48F23c;
|
|
15
|
+
|
|
16
|
+
address public immutable depositToken;
|
|
17
|
+
address public immutable assetToken;
|
|
18
|
+
address public exchangeRateOracle;
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
string memory _name,
|
|
22
|
+
string memory _symbol,
|
|
23
|
+
address _depositToken,
|
|
24
|
+
address _assetToken,
|
|
25
|
+
address _initialExchangeRateOracle
|
|
26
|
+
) SYBase(_name, _symbol, _depositToken) {
|
|
27
|
+
depositToken = _depositToken;
|
|
28
|
+
assetToken = _assetToken;
|
|
29
|
+
_setExchangeRateOracle(_initialExchangeRateOracle);
|
|
30
|
+
_safeApproveInf(_depositToken, CORN_SILO);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/*///////////////////////////////////////////////////////////////
|
|
34
|
+
DEPOSIT/REDEEM USING BASE TOKENS
|
|
35
|
+
//////////////////////////////////////////////////////////////*/
|
|
36
|
+
|
|
37
|
+
function _deposit(address /*tokenIn*/, uint256 amountDeposited) internal virtual override returns (uint256) {
|
|
38
|
+
return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function _redeem(
|
|
42
|
+
address receiver,
|
|
43
|
+
address /*tokenOut*/,
|
|
44
|
+
uint256 amountSharesToRedeem
|
|
45
|
+
) internal virtual override returns (uint256 amountTokenOut) {
|
|
46
|
+
amountTokenOut = ICornSilo(CORN_SILO).redeemToken(depositToken, amountSharesToRedeem);
|
|
47
|
+
_transferOut(depositToken, receiver, amountTokenOut);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/*///////////////////////////////////////////////////////////////
|
|
51
|
+
EXCHANGE-RATE
|
|
52
|
+
//////////////////////////////////////////////////////////////*/
|
|
53
|
+
|
|
54
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
55
|
+
return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
|
|
59
|
+
_setExchangeRateOracle(newOracle);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function _setExchangeRateOracle(address newOracle) internal virtual {
|
|
63
|
+
exchangeRateOracle = newOracle;
|
|
64
|
+
emit SetNewExchangeRateOracle(newOracle);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/*///////////////////////////////////////////////////////////////
|
|
68
|
+
MISC FUNCTIONS FOR METADATA
|
|
69
|
+
//////////////////////////////////////////////////////////////*/
|
|
70
|
+
|
|
71
|
+
function _previewDeposit(
|
|
72
|
+
address /*tokenIn*/,
|
|
73
|
+
uint256 amountTokenToDeposit
|
|
74
|
+
) internal view virtual override returns (uint256 /*amountSharesOut*/) {
|
|
75
|
+
// For regular token (not Corn BTC), 1 share = 1 token
|
|
76
|
+
return amountTokenToDeposit;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function _previewRedeem(
|
|
80
|
+
address /*tokenOut*/,
|
|
81
|
+
uint256 amountSharesToRedeem
|
|
82
|
+
) internal view virtual override returns (uint256 amountTokenOut) {
|
|
83
|
+
return amountSharesToRedeem;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
87
|
+
return ArrayLib.create(depositToken);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function getTokensOut() public view virtual override returns (address[] memory) {
|
|
91
|
+
return ArrayLib.create(depositToken);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
95
|
+
return token == depositToken;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
99
|
+
return token == depositToken;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
|
|
103
|
+
return (AssetType.TOKEN, assetToken, IERC20Metadata(assetToken).decimals());
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../SYBaseUpg.sol";
|
|
5
|
+
import "../../../../interfaces/IPExchangeRateOracle.sol";
|
|
6
|
+
import "../../../../interfaces/Corn/ICornSilo.sol";
|
|
7
|
+
|
|
8
|
+
abstract contract PendleCornBaseSYUpg is SYBaseUpg {
|
|
9
|
+
event SetNewExchangeRateOracle(address oracle);
|
|
10
|
+
|
|
11
|
+
// solhint-disable immutable-vars-naming
|
|
12
|
+
// solhint-disable const-name-snakecase
|
|
13
|
+
|
|
14
|
+
address public constant CORN_SILO = 0x8bc93498b861fd98277c3b51d240e7E56E48F23c;
|
|
15
|
+
|
|
16
|
+
address public immutable depositToken;
|
|
17
|
+
address public immutable assetToken;
|
|
18
|
+
address public exchangeRateOracle;
|
|
19
|
+
|
|
20
|
+
uint256[48] private __gap;
|
|
21
|
+
|
|
22
|
+
constructor(address _depositToken, address _assetToken) SYBaseUpg(_depositToken) {
|
|
23
|
+
depositToken = _depositToken;
|
|
24
|
+
assetToken = _assetToken;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/*///////////////////////////////////////////////////////////////
|
|
28
|
+
DEPOSIT/REDEEM USING BASE TOKENS
|
|
29
|
+
//////////////////////////////////////////////////////////////*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @dev calling __SYBaseUpg_init, no onlyInitializing modifier needed
|
|
33
|
+
*/
|
|
34
|
+
function __CornBaseSY_init_(
|
|
35
|
+
string memory _name,
|
|
36
|
+
string memory _symbol,
|
|
37
|
+
address _initialExchangeRateOracle
|
|
38
|
+
) internal {
|
|
39
|
+
__SYBaseUpg_init(_name, _symbol);
|
|
40
|
+
_setExchangeRateOracle(_initialExchangeRateOracle);
|
|
41
|
+
_safeApproveInf(depositToken, CORN_SILO);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function _deposit(address /*tokenIn*/, uint256 amountDeposited) internal virtual override returns (uint256) {
|
|
45
|
+
return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function _redeem(
|
|
49
|
+
address receiver,
|
|
50
|
+
address /*tokenOut*/,
|
|
51
|
+
uint256 amountSharesToRedeem
|
|
52
|
+
) internal virtual override returns (uint256 amountTokenOut) {
|
|
53
|
+
amountTokenOut = ICornSilo(CORN_SILO).redeemToken(depositToken, amountSharesToRedeem);
|
|
54
|
+
_transferOut(depositToken, receiver, amountTokenOut);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/*///////////////////////////////////////////////////////////////
|
|
58
|
+
EXCHANGE-RATE
|
|
59
|
+
//////////////////////////////////////////////////////////////*/
|
|
60
|
+
|
|
61
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
62
|
+
return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
|
|
66
|
+
_setExchangeRateOracle(newOracle);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function _setExchangeRateOracle(address newOracle) internal virtual {
|
|
70
|
+
exchangeRateOracle = newOracle;
|
|
71
|
+
emit SetNewExchangeRateOracle(newOracle);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/*///////////////////////////////////////////////////////////////
|
|
75
|
+
MISC FUNCTIONS FOR METADATA
|
|
76
|
+
//////////////////////////////////////////////////////////////*/
|
|
77
|
+
|
|
78
|
+
function _previewDeposit(
|
|
79
|
+
address /*tokenIn*/,
|
|
80
|
+
uint256 amountTokenToDeposit
|
|
81
|
+
) internal view virtual override returns (uint256 /*amountSharesOut*/) {
|
|
82
|
+
// For regular token (not Corn BTC), 1 share = 1 token
|
|
83
|
+
return amountTokenToDeposit;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function _previewRedeem(
|
|
87
|
+
address /*tokenOut*/,
|
|
88
|
+
uint256 amountSharesToRedeem
|
|
89
|
+
) internal view virtual override returns (uint256 amountTokenOut) {
|
|
90
|
+
return amountSharesToRedeem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
94
|
+
return ArrayLib.create(depositToken);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function getTokensOut() public view virtual override returns (address[] memory) {
|
|
98
|
+
return ArrayLib.create(depositToken);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
102
|
+
return token == depositToken;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
106
|
+
return token == depositToken;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
|
|
110
|
+
return (AssetType.TOKEN, assetToken, IERC20Metadata(assetToken).decimals());
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./PendleCornBaseSY.sol";
|
|
5
|
+
|
|
6
|
+
contract PendleCornLBTCSY is PendleCornBaseSY {
|
|
7
|
+
// solhint-disable immutable-vars-naming
|
|
8
|
+
// solhint-disable const-name-snakecase
|
|
9
|
+
address public constant LBTC = 0x8236a87084f8B84306f72007F36F2618A5634494;
|
|
10
|
+
address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
address _initialExchangeRateOracle
|
|
14
|
+
) PendleCornBaseSY("SY Corn Lombard LBTC", "SY-cornLBTC", LBTC, WBTC, _initialExchangeRateOracle) {}
|
|
15
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./PendleCornBaseSY.sol";
|
|
5
|
+
import "../Pump/PendlePumpHelperLib.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleCornPumpBTCSY is PendleCornBaseSY {
|
|
8
|
+
address public constant WBTC = PendlePumpHelperLib.WBTC;
|
|
9
|
+
address public constant PUMP_BTC = PendlePumpHelperLib.PUMP_BTC;
|
|
10
|
+
|
|
11
|
+
constructor() PendleCornBaseSY("SY Corn pumpBTC", "SY-corn-pumpBTC", PUMP_BTC, WBTC, address(0)) {
|
|
12
|
+
_safeApproveInf(WBTC, PendlePumpHelperLib.PUMP_STAKING);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/*///////////////////////////////////////////////////////////////
|
|
16
|
+
DEPOSIT/REDEEM USING BASE TOKENS
|
|
17
|
+
//////////////////////////////////////////////////////////////*/
|
|
18
|
+
|
|
19
|
+
function _deposit(address tokenIn, uint256 amountDeposited) internal virtual override returns (uint256) {
|
|
20
|
+
if (tokenIn != PUMP_BTC) {
|
|
21
|
+
PendlePumpHelperLib._mintPumpBTC(amountDeposited);
|
|
22
|
+
}
|
|
23
|
+
return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function _redeem(
|
|
27
|
+
address receiver,
|
|
28
|
+
address tokenOut,
|
|
29
|
+
uint256 amountSharesToRedeem
|
|
30
|
+
) internal virtual override returns (uint256 amountTokenOut) {
|
|
31
|
+
amountTokenOut = ICornSilo(CORN_SILO).redeemToken(depositToken, amountSharesToRedeem);
|
|
32
|
+
|
|
33
|
+
if (tokenOut == PUMP_BTC) {
|
|
34
|
+
_transferOut(depositToken, receiver, amountTokenOut);
|
|
35
|
+
} else {
|
|
36
|
+
// must be WBTC
|
|
37
|
+
PendlePumpHelperLib._instantUnstake(amountTokenOut);
|
|
38
|
+
amountTokenOut = _selfBalance(WBTC);
|
|
39
|
+
_transferOut(WBTC, receiver, amountTokenOut);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/*///////////////////////////////////////////////////////////////
|
|
44
|
+
EXCHANGE-RATE
|
|
45
|
+
//////////////////////////////////////////////////////////////*/
|
|
46
|
+
|
|
47
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
48
|
+
return PMath.ONE;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/*///////////////////////////////////////////////////////////////
|
|
52
|
+
MISC FUNCTIONS FOR METADATA
|
|
53
|
+
//////////////////////////////////////////////////////////////*/
|
|
54
|
+
|
|
55
|
+
function _previewRedeem(
|
|
56
|
+
address tokenOut,
|
|
57
|
+
uint256 amountSharesToRedeem
|
|
58
|
+
) internal view override returns (uint256 amountTokenOut) {
|
|
59
|
+
if (tokenOut == PUMP_BTC) {
|
|
60
|
+
return amountSharesToRedeem;
|
|
61
|
+
}
|
|
62
|
+
return PendlePumpHelperLib._previewInstantUnstake(amountSharesToRedeem);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
66
|
+
return ArrayLib.create(WBTC, PUMP_BTC);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function getTokensOut() public view virtual override returns (address[] memory) {
|
|
70
|
+
return ArrayLib.create(WBTC, PUMP_BTC);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
74
|
+
return token == WBTC || token == PUMP_BTC;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
78
|
+
return token == WBTC || token == PUMP_BTC;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./PendleCornBaseSYUpg.sol";
|
|
5
|
+
import "../Solv/PendleSolvHelper.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleCornSolvBTCBBNSYUpg is PendleCornBaseSYUpg {
|
|
8
|
+
address public constant WBTC = PendleSolvHelper.WBTC;
|
|
9
|
+
address public constant SOLV_BTC = PendleSolvHelper.SOLV_BTC_TOKEN;
|
|
10
|
+
address public constant SOLV_BTCBBN = PendleSolvHelper.SOLV_BTCBBN_TOKEN;
|
|
11
|
+
|
|
12
|
+
constructor() PendleCornBaseSYUpg(SOLV_BTCBBN, WBTC) {}
|
|
13
|
+
|
|
14
|
+
function initialize(address _initialExchangeRateOracle) external initializer {
|
|
15
|
+
_safeApproveInf(WBTC, PendleSolvHelper.SOLV_BTC_ROUTER);
|
|
16
|
+
_safeApproveInf(SOLV_BTC, PendleSolvHelper.SOLV_BTCBBN_ROUTER);
|
|
17
|
+
__CornBaseSY_init_("SY Corn SolvBTC Babylon", "SY-corn-SolvBTC.BBN", _initialExchangeRateOracle);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function _deposit(
|
|
21
|
+
address tokenIn,
|
|
22
|
+
uint256 amountDeposited
|
|
23
|
+
) internal virtual override returns (uint256 /*amountSharesOut*/) {
|
|
24
|
+
if (tokenIn != SOLV_BTCBBN) {
|
|
25
|
+
amountDeposited = PendleSolvHelper._mintBTCBBN(tokenIn, amountDeposited);
|
|
26
|
+
}
|
|
27
|
+
return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function _previewDeposit(
|
|
31
|
+
address tokenIn,
|
|
32
|
+
uint256 amountTokenToDeposit
|
|
33
|
+
) internal view virtual override returns (uint256 /*amountSharesOut*/) {
|
|
34
|
+
if (tokenIn == depositToken) {
|
|
35
|
+
return amountTokenToDeposit;
|
|
36
|
+
}
|
|
37
|
+
return PendleSolvHelper._previewMintBTCBBN(tokenIn, amountTokenToDeposit);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
41
|
+
return ArrayLib.create(WBTC, SOLV_BTC, depositToken);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
45
|
+
return token == WBTC || token == SOLV_BTC || token == depositToken;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./PendleCornBaseSYUpg.sol";
|
|
5
|
+
import "../../../../interfaces/Bedrock/IBedrockUniBTCVault.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleCornUniBTCSYUpg is PendleCornBaseSYUpg {
|
|
8
|
+
// solhint-disable immutable-vars-naming
|
|
9
|
+
// solhint-disable const-name-snakecase
|
|
10
|
+
address public constant VAULT = 0x047D41F2544B7F63A8e991aF2068a363d210d6Da;
|
|
11
|
+
address public constant UNIBTC = 0x004E9C3EF86bc1ca1f0bB5C7662861Ee93350568;
|
|
12
|
+
address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
|
|
13
|
+
address public constant FBTC = 0xC96dE26018A54D51c097160568752c4E3BD6C364;
|
|
14
|
+
|
|
15
|
+
// end contract, no gaps needed
|
|
16
|
+
|
|
17
|
+
constructor() PendleCornBaseSYUpg(UNIBTC, WBTC) {
|
|
18
|
+
_disableInitializers();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function initialize(address _initialExchangeRateOracle) external initializer {
|
|
22
|
+
_safeApproveInf(WBTC, VAULT);
|
|
23
|
+
_safeApproveInf(FBTC, VAULT);
|
|
24
|
+
__CornBaseSY_init_("SY Corn Bedrock uniBTC", "SY-corn-uniBTC", _initialExchangeRateOracle);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function _deposit(
|
|
28
|
+
address tokenIn,
|
|
29
|
+
uint256 amountDeposited
|
|
30
|
+
) internal virtual override returns (uint256 /*amountSharesOut*/) {
|
|
31
|
+
if (tokenIn != UNIBTC) {
|
|
32
|
+
uint256 preBalance = _selfBalance(UNIBTC);
|
|
33
|
+
IBedrockUniBTCVault(VAULT).mint(tokenIn, amountDeposited);
|
|
34
|
+
amountDeposited = _selfBalance(UNIBTC) - preBalance;
|
|
35
|
+
}
|
|
36
|
+
return ICornSilo(CORN_SILO).deposit(depositToken, amountDeposited);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// preview deposit should still work as amountDeposited = amountSharesOut for all tokens
|
|
40
|
+
|
|
41
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
42
|
+
return ArrayLib.create(WBTC, FBTC, depositToken);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
46
|
+
return token == WBTC || token == FBTC || token == depositToken;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -13,9 +13,10 @@ contract PendleEBTCSY is PendleERC20SYUpg {
|
|
|
13
13
|
address public constant eBTC = 0x657e8C867D8B37dCC18fA4Caead9C45EB088C642;
|
|
14
14
|
address public constant tBTC = 0x18084fbA666a33d37592fA2633fD49a74DD93a88;
|
|
15
15
|
address public constant wBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
|
|
16
|
+
address public constant LBTC = 0x8236a87084f8B84306f72007F36F2618A5634494;
|
|
16
17
|
address public constant vedaTeller = 0xe19a43B1b8af6CeE71749Af2332627338B3242D1;
|
|
17
18
|
|
|
18
|
-
uint256 public constant ONE_SHARE = 10**8;
|
|
19
|
+
uint256 public constant ONE_SHARE = 10 ** 8;
|
|
19
20
|
|
|
20
21
|
address public immutable vedaAccountant;
|
|
21
22
|
|
|
@@ -26,6 +27,7 @@ contract PendleEBTCSY is PendleERC20SYUpg {
|
|
|
26
27
|
function approveAllForTeller() external {
|
|
27
28
|
_safeApproveInf(tBTC, eBTC);
|
|
28
29
|
_safeApproveInf(wBTC, eBTC);
|
|
30
|
+
_safeApproveInf(LBTC, eBTC);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
function _deposit(
|
|
@@ -46,14 +48,14 @@ contract PendleEBTCSY is PendleERC20SYUpg {
|
|
|
46
48
|
return amountTokenToDeposit;
|
|
47
49
|
}
|
|
48
50
|
uint256 rate = IVedaAccountant(vedaAccountant).getRateInQuoteSafe(tokenIn);
|
|
49
|
-
amountSharesOut = amountTokenToDeposit * ONE_SHARE / rate;
|
|
51
|
+
amountSharesOut = (amountTokenToDeposit * ONE_SHARE) / rate;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
function isValidTokenIn(address token) public pure override returns (bool) {
|
|
53
|
-
return token == eBTC || token == wBTC || token == tBTC;
|
|
55
|
+
return token == eBTC || token == wBTC || token == tBTC || token == LBTC;
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
function getTokensIn() public pure override returns (address[] memory res) {
|
|
57
|
-
return ArrayLib.create(wBTC, tBTC, eBTC);
|
|
59
|
+
return ArrayLib.create(wBTC, tBTC, eBTC, LBTC);
|
|
58
60
|
}
|
|
59
61
|
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../SYBase.sol";
|
|
5
|
+
import "../../../../interfaces/IPExchangeRateOracle.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleLBTCSY is SYBase {
|
|
8
|
+
event SetNewExchangeRateOracle(address oracle);
|
|
9
|
+
|
|
10
|
+
// solhint-disable immutable-vars-naming
|
|
11
|
+
// solhint-disable const-name-snakecase
|
|
12
|
+
address public constant LBTC = 0x8236a87084f8B84306f72007F36F2618A5634494;
|
|
13
|
+
address public constant WBTC = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599;
|
|
14
|
+
|
|
15
|
+
address public exchangeRateOracle;
|
|
16
|
+
|
|
17
|
+
constructor(address _initialExchangeRateOracle) SYBase("SY Lombard LBTC", "SY-LBTC", LBTC) {
|
|
18
|
+
_setExchangeRateOracle(_initialExchangeRateOracle);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/*///////////////////////////////////////////////////////////////
|
|
22
|
+
DEPOSIT/REDEEM USING BASE TOKENS
|
|
23
|
+
//////////////////////////////////////////////////////////////*/
|
|
24
|
+
|
|
25
|
+
function _deposit(address /*tokenIn*/, uint256 amountDeposited) internal virtual override returns (uint256) {
|
|
26
|
+
return amountDeposited;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function _redeem(
|
|
30
|
+
address receiver,
|
|
31
|
+
address /*tokenOut*/,
|
|
32
|
+
uint256 amountSharesToRedeem
|
|
33
|
+
) internal virtual override returns (uint256) {
|
|
34
|
+
_transferOut(LBTC, receiver, amountSharesToRedeem);
|
|
35
|
+
return amountSharesToRedeem;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/*///////////////////////////////////////////////////////////////
|
|
39
|
+
EXCHANGE-RATE
|
|
40
|
+
//////////////////////////////////////////////////////////////*/
|
|
41
|
+
|
|
42
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
43
|
+
return IPExchangeRateOracle(exchangeRateOracle).getExchangeRate();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function setExchangeRateOracle(address newOracle) external virtual onlyOwner {
|
|
47
|
+
_setExchangeRateOracle(newOracle);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function _setExchangeRateOracle(address newOracle) internal virtual {
|
|
51
|
+
exchangeRateOracle = newOracle;
|
|
52
|
+
emit SetNewExchangeRateOracle(newOracle);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/*///////////////////////////////////////////////////////////////
|
|
56
|
+
MISC FUNCTIONS FOR METADATA
|
|
57
|
+
//////////////////////////////////////////////////////////////*/
|
|
58
|
+
|
|
59
|
+
function _previewDeposit(
|
|
60
|
+
address /*tokenIn*/,
|
|
61
|
+
uint256 amountTokenToDeposit
|
|
62
|
+
) internal pure override returns (uint256 /*amountSharesOut*/) {
|
|
63
|
+
return amountTokenToDeposit;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function _previewRedeem(
|
|
67
|
+
address /*tokenOut*/,
|
|
68
|
+
uint256 amountSharesToRedeem
|
|
69
|
+
) internal pure override returns (uint256 amountTokenOut) {
|
|
70
|
+
return amountSharesToRedeem;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
74
|
+
return ArrayLib.create(LBTC);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function getTokensOut() public view virtual override returns (address[] memory) {
|
|
78
|
+
return ArrayLib.create(LBTC);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
82
|
+
return token == LBTC;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
86
|
+
return token == LBTC;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function assetInfo() external view returns (AssetType assetType, address assetAddress, uint8 assetDecimals) {
|
|
90
|
+
return (AssetType.TOKEN, WBTC, IERC20Metadata(WBTC).decimals());
|
|
91
|
+
}
|
|
92
|
+
}
|