@pendle/core-v2 5.8.6-beta-lpwrapper → 5.8.7-fee-beta
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/offchain-helpers/BalanceReader.sol/BalanceReader.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/BalanceReader.sol/BalanceReader.json +297 -0
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleLPWrapperFactory.sol/PendleLPWrapperFactory.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol/PendlePYOracleLib.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/chainlink/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PtYtLpOracle/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
- package/contracts/offchain-helpers/BalanceReader.sol +68 -0
- package/contracts/offchain-helpers/PendleLPWrapperFactory.sol +1 -1
- package/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol +5 -0
- package/deployments/1-core.json +4 -2
- package/deployments/1-offchain-helper.json +2 -1
- package/deployments/10-offchain-helper.json +2 -1
- package/deployments/146-core.json +3 -2
- package/deployments/146-offchain-helper.json +2 -1
- package/deployments/42161-core.json +3 -2
- package/deployments/42161-offchain-helper.json +2 -1
- package/deployments/5000-core.json +3 -2
- package/deployments/5000-offchain-helper.json +2 -1
- package/deployments/56-core.json +3 -2
- package/deployments/56-offchain-helper.json +2 -1
- package/deployments/80094-core.json +3 -2
- package/deployments/80094-offchain-helper.json +2 -1
- package/deployments/8453-core.json +3 -2
- package/deployments/8453-offchain-helper.json +2 -1
- package/package.json +1 -1
- package/typechain-types/BalanceReader.ts +471 -0
- package/typechain-types/factories/BalanceReader__factory.ts +347 -0
- package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -1
- package/typechain-types/factories/PendleLPWrapperFactory__factory.ts +1 -1
- package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +9 -27
- package/typechain-types/index.ts +2 -6
- package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.dbg.json +0 -4
- package/build/artifacts/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol/ExpiredLpPtRedeemer.json +0 -294
- package/contracts/offchain-helpers/ExpiredLpPtRedeemer.sol +0 -80
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: SEE LICENSE IN LICENSE
|
|
2
|
-
pragma solidity ^0.8.0;
|
|
3
|
-
|
|
4
|
-
import "../router/base/ActionBase.sol";
|
|
5
|
-
import "../interfaces/IPActionMiscV3.sol";
|
|
6
|
-
import "../interfaces/IPReflector.sol";
|
|
7
|
-
import "../core/libraries/BoringOwnableUpgradeable.sol";
|
|
8
|
-
import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
|
|
9
|
-
import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol";
|
|
10
|
-
|
|
11
|
-
contract ExpiredLpPtRedeemer is TokenHelper, ReentrancyGuardUpgradeable, BoringOwnableUpgradeable, UUPSUpgradeable {
|
|
12
|
-
mapping(address => bool) public whitelistedMarkets;
|
|
13
|
-
|
|
14
|
-
constructor() {
|
|
15
|
-
_disableInitializers();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
function initialize() public initializer {
|
|
19
|
-
__BoringOwnable_init();
|
|
20
|
-
__ReentrancyGuard_init();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
|
|
24
|
-
|
|
25
|
-
function exitPostExpToToken(
|
|
26
|
-
address receiver,
|
|
27
|
-
address market,
|
|
28
|
-
uint256 netPtIn,
|
|
29
|
-
uint256 netLpIn,
|
|
30
|
-
address tokenRedeemSy,
|
|
31
|
-
uint256 minTokenOut
|
|
32
|
-
) external nonReentrant returns (uint256 totalTokenOut) {
|
|
33
|
-
require(whitelistedMarkets[market], "n/a");
|
|
34
|
-
|
|
35
|
-
(IStandardizedYield SY, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
|
|
36
|
-
|
|
37
|
-
IPMarket(market).redeemRewards(msg.sender);
|
|
38
|
-
|
|
39
|
-
uint256 totalSyRedeem = 0;
|
|
40
|
-
uint256 totalPtRedeem = 0;
|
|
41
|
-
|
|
42
|
-
if (netPtIn > 0) {
|
|
43
|
-
_transferFrom(PT, msg.sender, address(this), netLpIn);
|
|
44
|
-
totalPtRedeem += netPtIn;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if (netLpIn > 0) {
|
|
48
|
-
_transferFrom(IERC20(market), msg.sender, market, netLpIn);
|
|
49
|
-
(uint256 netSyFromRemove, uint256 netPtFromRemove) = IPMarket(market).burn(
|
|
50
|
-
address(this),
|
|
51
|
-
address(this),
|
|
52
|
-
netLpIn
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
totalSyRedeem += netSyFromRemove;
|
|
56
|
-
totalPtRedeem += netPtFromRemove;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
uint256 netSyFromPt = SYUtils.assetToSy(YT.pyIndexCurrent(), totalPtRedeem);
|
|
60
|
-
totalSyRedeem += netSyFromPt;
|
|
61
|
-
|
|
62
|
-
{
|
|
63
|
-
_transferOut(address(SY), address(SY), totalSyRedeem);
|
|
64
|
-
totalTokenOut = IStandardizedYield(SY).redeem(receiver, totalSyRedeem, tokenRedeemSy, minTokenOut, true);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function setWhitelistedMarket(address[] calldata markets, bool isWhitelisted) external onlyOwner {
|
|
69
|
-
for (uint256 i = 0; i < markets.length; i++) {
|
|
70
|
-
require(IPMarket(markets[i]).isExpired(), "not expired");
|
|
71
|
-
whitelistedMarkets[markets[i]] = isWhitelisted;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function withdraw(address[] memory tokens) external onlyOwner {
|
|
76
|
-
for (uint256 i = 0; i < tokens.length; i++) {
|
|
77
|
-
_transferOut(tokens[i], msg.sender, _selfBalance(tokens[i]));
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|