@pendle/core-v2 0.16.5-testnet-daily → 0.16.5-testnet
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/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +1 -1
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +1 -1
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +3 -3
- package/contracts/LiquidityMining/libraries/WeekMath.sol +1 -1
- package/contracts/core/BulkSeller/BulkSeller.sol +11 -2
- package/contracts/core/BulkSeller/BulkSellerFactory.sol +2 -0
- package/contracts/core/BulkSeller/BulkSellerMathCore.sol +1 -1
- package/contracts/interfaces/IPBulkSellerFactory.sol +2 -0
- package/contracts/offchain-helpers/BulkSellerOffchain.sol +21 -3
- package/contracts/offchain-helpers/RouterStatic.sol +1 -1
- package/contracts/router/base/MarketApproxLib.sol +1 -1
- package/deployments/43113-core.json +9 -9
- package/deployments/43113-markets/benqi-market-QI-AVAX-FEB-2ND.json +9 -0
- package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +4 -4
- package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +5 -4
- package/deployments/80001-core.json +11 -11
- package/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
- package/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
- package/package.json +1 -1
|
@@ -44,7 +44,7 @@ abstract contract PendleGaugeControllerBaseUpg is
|
|
|
44
44
|
uint128 incentiveEndsAt;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
uint128 internal constant WEEK = 1
|
|
47
|
+
uint128 internal constant WEEK = 1 weeks;
|
|
48
48
|
|
|
49
49
|
address public immutable pendle;
|
|
50
50
|
IPMarketFactory public immutable marketFactory;
|
|
@@ -49,7 +49,7 @@ abstract contract VotingControllerStorageUpg is IPVotingController {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
uint128 public constant MAX_LOCK_TIME = 104 weeks;
|
|
52
|
-
uint128 public constant WEEK = 1
|
|
52
|
+
uint128 public constant WEEK = 1 weeks;
|
|
53
53
|
uint128 public constant GOVERNANCE_PENDLE_VOTE = 10**24;
|
|
54
54
|
|
|
55
55
|
IPVeToken public immutable vePendle;
|
|
@@ -21,13 +21,13 @@ import "../libraries/WeekMath.sol";
|
|
|
21
21
|
* + No other transaction is allowed to write on sidechain storage
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
abstract contract VotingEscrowTokenBase is IPVeToken {
|
|
24
|
+
abstract contract VotingEscrowTokenBase is IPVeToken {
|
|
25
25
|
using VeBalanceLib for VeBalance;
|
|
26
26
|
using VeBalanceLib for LockedPosition;
|
|
27
27
|
|
|
28
|
-
uint128 public constant WEEK = 1
|
|
28
|
+
uint128 public constant WEEK = 1 weeks;
|
|
29
29
|
uint128 public constant MAX_LOCK_TIME = 104 weeks;
|
|
30
|
-
uint128 public constant MIN_LOCK_TIME = 1
|
|
30
|
+
uint128 public constant MIN_LOCK_TIME = 1 weeks;
|
|
31
31
|
|
|
32
32
|
VeBalance internal _totalSupply;
|
|
33
33
|
uint128 public lastSlopeChangeAppliedAt;
|
|
@@ -155,7 +155,7 @@ contract BulkSeller is IPBulkSeller, Initializable, TokenHelper, ReentrancyGuard
|
|
|
155
155
|
|
|
156
156
|
// ----------------- BulkSeller management -----------------
|
|
157
157
|
|
|
158
|
-
function increaseReserve(uint256 netTokenIn, uint256 netSyIn) external onlyMaintainer {
|
|
158
|
+
function increaseReserve(uint256 netTokenIn, uint256 netSyIn) external payable onlyMaintainer {
|
|
159
159
|
BulkSellerState memory state = readState();
|
|
160
160
|
|
|
161
161
|
state.totalToken += netTokenIn;
|
|
@@ -240,11 +240,20 @@ contract BulkSeller is IPBulkSeller, Initializable, TokenHelper, ReentrancyGuard
|
|
|
240
240
|
|
|
241
241
|
function _depositToken(uint256 netTokenDeposit) internal returns (uint256 netSyFromToken) {
|
|
242
242
|
_safeApprove(token, SY, netTokenDeposit);
|
|
243
|
-
|
|
243
|
+
uint256 nativeToDeposit = token == NATIVE ? netTokenDeposit : 0;
|
|
244
|
+
return
|
|
245
|
+
IStandardizedYield(SY).deposit{ value: nativeToDeposit }(
|
|
246
|
+
address(this),
|
|
247
|
+
token,
|
|
248
|
+
netTokenDeposit,
|
|
249
|
+
0
|
|
250
|
+
);
|
|
244
251
|
}
|
|
245
252
|
|
|
246
253
|
function _redeemSy(uint256 netSyRedeem) internal returns (uint256 netTokenFromSy) {
|
|
247
254
|
_transferOut(SY, SY, netSyRedeem);
|
|
248
255
|
return IStandardizedYield(SY).redeem(address(this), netSyRedeem, token, 0, true);
|
|
249
256
|
}
|
|
257
|
+
|
|
258
|
+
receive() external payable {}
|
|
250
259
|
}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
pragma solidity 0.8.17;
|
|
3
3
|
|
|
4
4
|
interface IPBulkSellerFactory {
|
|
5
|
+
event BulkSellerCreated(address indexed token, address indexed sy, address indexed bulk);
|
|
6
|
+
|
|
5
7
|
event UpgradedBeacon(address indexed implementation);
|
|
6
8
|
|
|
7
9
|
function get(address token, address SY) external view returns (address);
|
|
@@ -3,6 +3,7 @@ pragma solidity 0.8.17;
|
|
|
3
3
|
|
|
4
4
|
import "../core/BulkSeller/BulkSellerMathCore.sol";
|
|
5
5
|
import "../core/BulkSeller/BulkSeller.sol";
|
|
6
|
+
import "hardhat/console.sol";
|
|
6
7
|
|
|
7
8
|
// upgradable bla bla
|
|
8
9
|
contract BulkSellerOffchain {
|
|
@@ -20,17 +21,34 @@ contract BulkSellerOffchain {
|
|
|
20
21
|
address token = bulk.token();
|
|
21
22
|
|
|
22
23
|
{
|
|
23
|
-
uint256 hypoTotalToken = state.totalToken +
|
|
24
|
-
state.calcSwapExactSyForToken(state.totalSy);
|
|
24
|
+
uint256 hypoTotalToken = state.totalToken + state.totalSy.mulDown(state.rateSyToToken);
|
|
25
25
|
uint256 netSyFromToken = IStandardizedYield(SY).previewDeposit(token, hypoTotalToken);
|
|
26
26
|
|
|
27
27
|
rateTokenToSy = netSyFromToken.divDown(hypoTotalToken);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
{
|
|
31
|
-
uint256 hypoTotalSy = state.totalSy + state.
|
|
31
|
+
uint256 hypoTotalSy = state.totalSy + state.totalToken.mulDown(state.rateTokenToSy);
|
|
32
32
|
uint256 netTokenFromSy = IStandardizedYield(SY).previewRedeem(token, hypoTotalSy);
|
|
33
|
+
rateSyToToken = netTokenFromSy.divDown(hypoTotalSy);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
33
36
|
|
|
37
|
+
function calcCurrentRatesWithAmount(
|
|
38
|
+
IPBulkSeller bulk,
|
|
39
|
+
uint256 hypoTotalToken,
|
|
40
|
+
uint256 hypoTotalSy
|
|
41
|
+
) external view returns (uint256 rateTokenToSy, uint256 rateSyToToken) {
|
|
42
|
+
address SY = bulk.SY();
|
|
43
|
+
address token = bulk.token();
|
|
44
|
+
|
|
45
|
+
{
|
|
46
|
+
uint256 netSyFromToken = IStandardizedYield(SY).previewDeposit(token, hypoTotalToken);
|
|
47
|
+
rateTokenToSy = netSyFromToken.divDown(hypoTotalToken);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
{
|
|
51
|
+
uint256 netTokenFromSy = IStandardizedYield(SY).previewRedeem(token, hypoTotalSy);
|
|
34
52
|
rateSyToToken = netTokenFromSy.divDown(hypoTotalSy);
|
|
35
53
|
}
|
|
36
54
|
}
|
|
@@ -22,7 +22,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
|
|
|
22
22
|
using VeBalanceLib for LockedPosition;
|
|
23
23
|
|
|
24
24
|
uint128 public constant MAX_LOCK_TIME = 104 weeks;
|
|
25
|
-
uint128 public constant MIN_LOCK_TIME = 1
|
|
25
|
+
uint128 public constant MIN_LOCK_TIME = 1 weeks;
|
|
26
26
|
|
|
27
27
|
struct TokenAmount {
|
|
28
28
|
address token;
|
|
@@ -575,7 +575,7 @@ library MarketApproxPtOutLib {
|
|
|
575
575
|
{
|
|
576
576
|
uint256 netSyRemaining = a.totalSyIn - netSyIn;
|
|
577
577
|
uint256 newTotalPt = a.market.totalPt.Uint() - guess;
|
|
578
|
-
uint256 netTotalSy =
|
|
578
|
+
uint256 netTotalSy = a.market.totalSy.Uint() + netSyIn - netSyFee;
|
|
579
579
|
|
|
580
580
|
// it is desired that
|
|
581
581
|
// netPtFromSwap / newTotalPt = netSyRemaining / netTotalSy
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
"lzEndpoint": "0x93f54D755A063cE7bB9e6Ac47Eccc8e33411d706",
|
|
6
6
|
"treasury": "0x243b7CFD29AcAF9cDe98C1958902FAA3B1F095D5",
|
|
7
7
|
"PENDLE": "0xB7609dec1C926204c3B67345cbCd54bc4aa7a940",
|
|
8
|
-
"yieldContractFactory": "
|
|
9
|
-
"marketFactory": "
|
|
10
|
-
"bulkSellerFactory": "
|
|
11
|
-
"router": "
|
|
12
|
-
"routerStatic": "
|
|
13
|
-
"vePendle": "
|
|
14
|
-
"senderEndpoint": "
|
|
15
|
-
"votingController": "
|
|
16
|
-
"gaugeController": "
|
|
8
|
+
"yieldContractFactory": "0xC39Efc7bb273B75B75471167Cb0EB4D3D41398a8",
|
|
9
|
+
"marketFactory": "0xa28B2445C8e1751733e75e6794971AEEA4806F45",
|
|
10
|
+
"bulkSellerFactory": "0x9f45D5A34CC9Bcb3AB4ee464bE768E30B5e627f8",
|
|
11
|
+
"router": "0x129be7922B733b0F06cb4f0f47B6b4a12710a312",
|
|
12
|
+
"routerStatic": "0x699665c3fA37FF59cACd913EAaB56CEFA66C339E",
|
|
13
|
+
"vePendle": "0x74E578b27aD53f23387b9Dcb7902F7Def6D4dB7c",
|
|
14
|
+
"senderEndpoint": "0xa87c479d77040d1c5433b9cD3b88b2B562A7cb10",
|
|
15
|
+
"votingController": "0x0b24c845feF83f8403EEF3922F3B53a05182512A",
|
|
16
|
+
"gaugeController": "0xf0cFb8781F17d51523922Ace5eB69a4b42e35a15"
|
|
17
17
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"symbol": "SY-qiAVAX",
|
|
3
|
+
"SY": "0x7bd149FFD976F366af864B2F9585016FD0386A3F",
|
|
4
|
+
"expiry": 1675382400,
|
|
5
|
+
"PT": "0x9156bf2494F7DaaBAE2Ec919513217Dc9a2535aD",
|
|
6
|
+
"YT": "0x12CBF941d14823160e606BdaA7eA4f351251A9cF",
|
|
7
|
+
"market": "0x94f1997DA3ea57875ab97747d2bF744c6895A0AD",
|
|
8
|
+
"bulkSeller": "0xc64c1A2DCbA6bB38DA23a4C2b9Ca76005508719A"
|
|
9
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"symbol": "SY-qiUSDC",
|
|
3
|
-
"SY": "
|
|
3
|
+
"SY": "0x922FD937e7C59E58F2E425260fb21Ddc8486BcDE",
|
|
4
4
|
"expiry": 1675382400,
|
|
5
|
-
"PT": "
|
|
6
|
-
"YT": "
|
|
7
|
-
"market": "
|
|
5
|
+
"PT": "0x3cBf269875C4eFf9374AF93e736f3c3487cEA993",
|
|
6
|
+
"YT": "0x8700D3bb93E21dEAcB84c006106B3b914Cca32e2",
|
|
7
|
+
"market": "0x20A564b60A21c107eAC5FbFea54D4Aad6db452A1"
|
|
8
8
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"symbol": "SY-qiWETH",
|
|
3
|
-
"SY": "
|
|
3
|
+
"SY": "0xF82E799c78B53c814dBf101431cC24F121Fa1098",
|
|
4
4
|
"expiry": 1669852800,
|
|
5
|
-
"PT": "
|
|
6
|
-
"YT": "
|
|
7
|
-
"market": "
|
|
5
|
+
"PT": "0xEAa59b2532D7e49b6f8CAC1b4AdAb6a6F868C7eB",
|
|
6
|
+
"YT": "0xb899c25fF3c73127F0B96aDAb9997a703C3Fd88D",
|
|
7
|
+
"market": "0xA9905Bd9d4813a78c4F9Ed4Ba285b49DE50F7406",
|
|
8
|
+
"bulkSeller": "0x6A9908669a0D751EE2d8706155eC7CbB0291f09E"
|
|
8
9
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
|
|
3
3
|
"network": 80001,
|
|
4
|
-
"splitter": "
|
|
4
|
+
"splitter": "0x07D39E2025Fd0B1F0065FE39172df246f063BB15",
|
|
5
5
|
"lzEndpoint": "0xf69186dfBa60DdB133E91E9A4B5673624293d8F8",
|
|
6
|
-
"treasury": "
|
|
7
|
-
"PENDLE": "
|
|
8
|
-
"yieldContractFactory": "
|
|
9
|
-
"marketFactory": "
|
|
10
|
-
"bulkSellerFactory": "
|
|
11
|
-
"router": "
|
|
12
|
-
"routerStatic": "
|
|
13
|
-
"receiverEndpoint": "
|
|
14
|
-
"vePendle": "
|
|
15
|
-
"gaugeController": "
|
|
6
|
+
"treasury": "0x47F77E3fAC652E05FFEB7E8E1cEf69E775628B24",
|
|
7
|
+
"PENDLE": "0x5FDA5b3b05B2884F9f028550069B9D321E84814A",
|
|
8
|
+
"yieldContractFactory": "0x8B3C5BD39E6B82272eCf0d6828D458536dc44dea",
|
|
9
|
+
"marketFactory": "0xf963474FAe462B06B026DE500f605B3578B66c66",
|
|
10
|
+
"bulkSellerFactory": "0xcdFfe971e3dE61f94450C56e140E3b2E0d7597CF",
|
|
11
|
+
"router": "0x60e5F58005b326ecA0cf9c96528781567973d7B0",
|
|
12
|
+
"routerStatic": "0xf159EC6647659eD86a67eb0B1131595c2EE086c2",
|
|
13
|
+
"receiverEndpoint": "0x57D55237374b0D1AFdac5E25F16A4EE5C57A627c",
|
|
14
|
+
"vePendle": "0x89Cec94a14FAB1cb27C1A5cd32af05ef448d9829",
|
|
15
|
+
"gaugeController": "0x8a6c59A80aA3Bbf32E7b3F0C359Eb528Cf6f7288"
|
|
16
16
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"symbol": "SY-qiUSDC",
|
|
3
|
+
"SY": "0x95867d15D0a6F77E32c684022D97e882A71Bd630",
|
|
4
|
+
"expiry": 1675382400,
|
|
5
|
+
"PT": "0x9d9381D466e46525eDDac3a3dC71EC64C3c3d87c",
|
|
6
|
+
"YT": "0xa693a38f9261Ee45040EB2b8125D8B718b83f491",
|
|
7
|
+
"market": "0x90326785175652D74a0AA35Af8fb86819513D939"
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"symbol": "SY-qiWETH",
|
|
3
|
+
"SY": "0x501E089e6BD6b78e6E435C15118E52c665931850",
|
|
4
|
+
"expiry": 1669852800,
|
|
5
|
+
"PT": "0x5a6049e6dB4032Dfa7A27b4071DB6C4a5A9A4707",
|
|
6
|
+
"YT": "0x885AdC68FC7F5715A32eb03eA1c6F17F396c715A",
|
|
7
|
+
"market": "0xc86283109a074E8021a50717e3d86D3f78184b18"
|
|
8
|
+
}
|
package/package.json
CHANGED