@pendle/core-v2 2.5.1-mainnet → 2.6.0-mainnet
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/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.json +141 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +143 -2
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/contracts/interfaces/IPRouterHelper.sol +8 -0
- package/contracts/router/PendleRouterHelper.sol +9 -8
- package/deployments/1-core.json +1 -1
- package/deployments/42161-core.json +1 -1
- package/package.json +1 -1
- package/typechain-types/AggregatorInterface.ts +233 -0
- package/typechain-types/AggregatorV2V3Interface.ts +385 -0
- package/typechain-types/AggregatorV3Interface.ts +221 -0
- package/typechain-types/IPRouterHelper.ts +84 -12
- package/typechain-types/PendlePtAssetOracle.ts +167 -0
- package/typechain-types/PendlePtChainlinkOracle.ts +215 -0
- package/typechain-types/PendlePtSingleAssetOracle.ts +167 -0
- package/typechain-types/PendlePtUSDOracle.ts +215 -0
- package/typechain-types/PendleRouterHelper.ts +84 -12
- package/typechain-types/factories/AggregatorInterface__factory.ts +153 -0
- package/typechain-types/factories/AggregatorV2V3Interface__factory.ts +268 -0
- package/typechain-types/factories/AggregatorV3Interface__factory.ts +141 -0
- package/typechain-types/factories/IPRouterHelper__factory.ts +141 -0
- package/typechain-types/factories/PendlePtAssetOracle__factory.ts +199 -0
- package/typechain-types/factories/PendlePtChainlinkOracle__factory.ts +251 -0
- package/typechain-types/factories/PendlePtSingleAssetOracle__factory.ts +203 -0
- package/typechain-types/factories/PendlePtUSDOracle__factory.ts +247 -0
- package/typechain-types/factories/PendleRouterHelper__factory.ts +142 -1
- package/typechain-types/hardhat.d.ts +45 -0
- package/typechain-types/index.ts +10 -0
|
@@ -165,4 +165,12 @@ interface IPRouterHelper {
|
|
|
165
165
|
uint256 netSyZapIn,
|
|
166
166
|
uint256 netSyFeeOfRemove
|
|
167
167
|
);
|
|
168
|
+
|
|
169
|
+
function removeLiquiditySingleToken(RemoveLiquiditySingleTokenStruct calldata fromMarket)
|
|
170
|
+
external
|
|
171
|
+
returns (uint256 netTokenOut, uint256 netSyFee);
|
|
172
|
+
|
|
173
|
+
function removeLiquiditySingleSy(RemoveLiquiditySingleSyStruct calldata fromMarket)
|
|
174
|
+
external
|
|
175
|
+
returns (uint256 netSyOut, uint256 netSyFee);
|
|
168
176
|
}
|
|
@@ -15,6 +15,7 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
15
15
|
constructor(address _ROUTER, IAddressProvider provider) {
|
|
16
16
|
ROUTER = IPAllAction(_ROUTER);
|
|
17
17
|
WETH = _getWETHAddress(provider, 1);
|
|
18
|
+
_safeApproveInf(WETH, address(ROUTER));
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
function _getWETHAddress(IAddressProvider provider, uint256 providerId)
|
|
@@ -75,7 +76,7 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
75
76
|
uint256 netSyFeeOfAdd
|
|
76
77
|
)
|
|
77
78
|
{
|
|
78
|
-
(netTokenZapIn, netSyFeeOfRemove) =
|
|
79
|
+
(netTokenZapIn, netSyFeeOfRemove) = removeLiquiditySingleToken(fromMarket);
|
|
79
80
|
(netLpOut, netSyFeeOfAdd) = _addLiquiditySingleToken(
|
|
80
81
|
toMarket,
|
|
81
82
|
fromMarket.output.tokenOut,
|
|
@@ -95,7 +96,7 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
95
96
|
uint256 netSyFeeOfRemove
|
|
96
97
|
)
|
|
97
98
|
{
|
|
98
|
-
(netTokenZapIn, netSyFeeOfRemove) =
|
|
99
|
+
(netTokenZapIn, netSyFeeOfRemove) = removeLiquiditySingleToken(fromMarket);
|
|
99
100
|
(netLpOut, netYtOut) = _addLiquiditySingleTokenKeepYt(
|
|
100
101
|
toMarket,
|
|
101
102
|
fromMarket.output.tokenOut,
|
|
@@ -115,7 +116,7 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
115
116
|
uint256 netSyFeeOfAdd
|
|
116
117
|
)
|
|
117
118
|
{
|
|
118
|
-
(netSyZapIn, netSyFeeOfRemove) =
|
|
119
|
+
(netSyZapIn, netSyFeeOfRemove) = removeLiquiditySingleSy(fromMarket);
|
|
119
120
|
(netLpOut, netSyFeeOfAdd) = _addLiquiditySingleSy(toMarket, netSyZapIn);
|
|
120
121
|
}
|
|
121
122
|
|
|
@@ -131,12 +132,12 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
131
132
|
uint256 netSyFeeOfRemove
|
|
132
133
|
)
|
|
133
134
|
{
|
|
134
|
-
(netSyZapIn, netSyFeeOfRemove) =
|
|
135
|
+
(netSyZapIn, netSyFeeOfRemove) = removeLiquiditySingleSy(fromMarket);
|
|
135
136
|
(netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(toMarket, netSyZapIn);
|
|
136
137
|
}
|
|
137
138
|
|
|
138
|
-
function
|
|
139
|
-
|
|
139
|
+
function removeLiquiditySingleToken(RemoveLiquiditySingleTokenStruct calldata fromMarket)
|
|
140
|
+
public
|
|
140
141
|
returns (uint256 netTokenOut, uint256 netSyFee)
|
|
141
142
|
{
|
|
142
143
|
_transferFrom(
|
|
@@ -169,8 +170,8 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
169
170
|
);
|
|
170
171
|
}
|
|
171
172
|
|
|
172
|
-
function
|
|
173
|
-
|
|
173
|
+
function removeLiquiditySingleSy(RemoveLiquiditySingleSyStruct calldata fromMarket)
|
|
174
|
+
public
|
|
174
175
|
returns (uint256 netSyOut, uint256 netSyFee)
|
|
175
176
|
{
|
|
176
177
|
_transferFrom(
|
package/deployments/1-core.json
CHANGED
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"votingController": "0x44087E105137a5095c008AaB6a6530182821F2F0",
|
|
29
29
|
"gaugeController": "0x47D74516B33eD5D70ddE7119A40839f6Fcc24e57",
|
|
30
30
|
"feeDistributor": "0xd7b34a6fDCb2A7ceD2115FF7f5fdD72aa6aA4dE2",
|
|
31
|
-
"routerHelper": "
|
|
31
|
+
"routerHelper": "0x462206b11d185ef6F64B41D344325401C37EC335"
|
|
32
32
|
}
|
|
@@ -23,5 +23,5 @@
|
|
|
23
23
|
"receiverEndpoint": "0xC9215ae9EC67385F38C755D862C8eE3702B5793A",
|
|
24
24
|
"vePendle": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
|
|
25
25
|
"gaugeController": "0x1e56299ebc8a1010cec26005d12e3e5c5cc2db00",
|
|
26
|
-
"routerHelper": "
|
|
26
|
+
"routerHelper": "0x462206b11d185ef6F64B41D344325401C37EC335"
|
|
27
27
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
BaseContract,
|
|
6
|
+
BigNumber,
|
|
7
|
+
BigNumberish,
|
|
8
|
+
BytesLike,
|
|
9
|
+
CallOverrides,
|
|
10
|
+
PopulatedTransaction,
|
|
11
|
+
Signer,
|
|
12
|
+
utils,
|
|
13
|
+
} from "ethers";
|
|
14
|
+
import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
|
|
15
|
+
import { Listener, Provider } from "@ethersproject/providers";
|
|
16
|
+
import type {
|
|
17
|
+
TypedEventFilter,
|
|
18
|
+
TypedEvent,
|
|
19
|
+
TypedListener,
|
|
20
|
+
OnEvent,
|
|
21
|
+
} from "./common";
|
|
22
|
+
|
|
23
|
+
export interface AggregatorInterfaceInterface extends utils.Interface {
|
|
24
|
+
contractName: "AggregatorInterface";
|
|
25
|
+
functions: {
|
|
26
|
+
"getAnswer(uint256)": FunctionFragment;
|
|
27
|
+
"getTimestamp(uint256)": FunctionFragment;
|
|
28
|
+
"latestAnswer()": FunctionFragment;
|
|
29
|
+
"latestRound()": FunctionFragment;
|
|
30
|
+
"latestTimestamp()": FunctionFragment;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
encodeFunctionData(
|
|
34
|
+
functionFragment: "getAnswer",
|
|
35
|
+
values: [BigNumberish]
|
|
36
|
+
): string;
|
|
37
|
+
encodeFunctionData(
|
|
38
|
+
functionFragment: "getTimestamp",
|
|
39
|
+
values: [BigNumberish]
|
|
40
|
+
): string;
|
|
41
|
+
encodeFunctionData(
|
|
42
|
+
functionFragment: "latestAnswer",
|
|
43
|
+
values?: undefined
|
|
44
|
+
): string;
|
|
45
|
+
encodeFunctionData(
|
|
46
|
+
functionFragment: "latestRound",
|
|
47
|
+
values?: undefined
|
|
48
|
+
): string;
|
|
49
|
+
encodeFunctionData(
|
|
50
|
+
functionFragment: "latestTimestamp",
|
|
51
|
+
values?: undefined
|
|
52
|
+
): string;
|
|
53
|
+
|
|
54
|
+
decodeFunctionResult(functionFragment: "getAnswer", data: BytesLike): Result;
|
|
55
|
+
decodeFunctionResult(
|
|
56
|
+
functionFragment: "getTimestamp",
|
|
57
|
+
data: BytesLike
|
|
58
|
+
): Result;
|
|
59
|
+
decodeFunctionResult(
|
|
60
|
+
functionFragment: "latestAnswer",
|
|
61
|
+
data: BytesLike
|
|
62
|
+
): Result;
|
|
63
|
+
decodeFunctionResult(
|
|
64
|
+
functionFragment: "latestRound",
|
|
65
|
+
data: BytesLike
|
|
66
|
+
): Result;
|
|
67
|
+
decodeFunctionResult(
|
|
68
|
+
functionFragment: "latestTimestamp",
|
|
69
|
+
data: BytesLike
|
|
70
|
+
): Result;
|
|
71
|
+
|
|
72
|
+
events: {
|
|
73
|
+
"AnswerUpdated(int256,uint256,uint256)": EventFragment;
|
|
74
|
+
"NewRound(uint256,address,uint256)": EventFragment;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
getEvent(nameOrSignatureOrTopic: "AnswerUpdated"): EventFragment;
|
|
78
|
+
getEvent(nameOrSignatureOrTopic: "NewRound"): EventFragment;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export type AnswerUpdatedEvent = TypedEvent<
|
|
82
|
+
[BigNumber, BigNumber, BigNumber],
|
|
83
|
+
{ current: BigNumber; roundId: BigNumber; updatedAt: BigNumber }
|
|
84
|
+
>;
|
|
85
|
+
|
|
86
|
+
export type AnswerUpdatedEventFilter = TypedEventFilter<AnswerUpdatedEvent>;
|
|
87
|
+
|
|
88
|
+
export type NewRoundEvent = TypedEvent<
|
|
89
|
+
[BigNumber, string, BigNumber],
|
|
90
|
+
{ roundId: BigNumber; startedBy: string; startedAt: BigNumber }
|
|
91
|
+
>;
|
|
92
|
+
|
|
93
|
+
export type NewRoundEventFilter = TypedEventFilter<NewRoundEvent>;
|
|
94
|
+
|
|
95
|
+
export interface AggregatorInterface extends BaseContract {
|
|
96
|
+
contractName: "AggregatorInterface";
|
|
97
|
+
connect(signerOrProvider: Signer | Provider | string): this;
|
|
98
|
+
attach(addressOrName: string): this;
|
|
99
|
+
deployed(): Promise<this>;
|
|
100
|
+
|
|
101
|
+
interface: AggregatorInterfaceInterface;
|
|
102
|
+
|
|
103
|
+
queryFilter<TEvent extends TypedEvent>(
|
|
104
|
+
event: TypedEventFilter<TEvent>,
|
|
105
|
+
fromBlockOrBlockhash?: string | number | undefined,
|
|
106
|
+
toBlock?: string | number | undefined
|
|
107
|
+
): Promise<Array<TEvent>>;
|
|
108
|
+
|
|
109
|
+
listeners<TEvent extends TypedEvent>(
|
|
110
|
+
eventFilter?: TypedEventFilter<TEvent>
|
|
111
|
+
): Array<TypedListener<TEvent>>;
|
|
112
|
+
listeners(eventName?: string): Array<Listener>;
|
|
113
|
+
removeAllListeners<TEvent extends TypedEvent>(
|
|
114
|
+
eventFilter: TypedEventFilter<TEvent>
|
|
115
|
+
): this;
|
|
116
|
+
removeAllListeners(eventName?: string): this;
|
|
117
|
+
off: OnEvent<this>;
|
|
118
|
+
on: OnEvent<this>;
|
|
119
|
+
once: OnEvent<this>;
|
|
120
|
+
removeListener: OnEvent<this>;
|
|
121
|
+
|
|
122
|
+
functions: {
|
|
123
|
+
getAnswer(
|
|
124
|
+
roundId: BigNumberish,
|
|
125
|
+
overrides?: CallOverrides
|
|
126
|
+
): Promise<[BigNumber]>;
|
|
127
|
+
|
|
128
|
+
getTimestamp(
|
|
129
|
+
roundId: BigNumberish,
|
|
130
|
+
overrides?: CallOverrides
|
|
131
|
+
): Promise<[BigNumber]>;
|
|
132
|
+
|
|
133
|
+
latestAnswer(overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
134
|
+
|
|
135
|
+
latestRound(overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
136
|
+
|
|
137
|
+
latestTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
getAnswer(
|
|
141
|
+
roundId: BigNumberish,
|
|
142
|
+
overrides?: CallOverrides
|
|
143
|
+
): Promise<BigNumber>;
|
|
144
|
+
|
|
145
|
+
getTimestamp(
|
|
146
|
+
roundId: BigNumberish,
|
|
147
|
+
overrides?: CallOverrides
|
|
148
|
+
): Promise<BigNumber>;
|
|
149
|
+
|
|
150
|
+
latestAnswer(overrides?: CallOverrides): Promise<BigNumber>;
|
|
151
|
+
|
|
152
|
+
latestRound(overrides?: CallOverrides): Promise<BigNumber>;
|
|
153
|
+
|
|
154
|
+
latestTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
|
|
155
|
+
|
|
156
|
+
callStatic: {
|
|
157
|
+
getAnswer(
|
|
158
|
+
roundId: BigNumberish,
|
|
159
|
+
overrides?: CallOverrides
|
|
160
|
+
): Promise<BigNumber>;
|
|
161
|
+
|
|
162
|
+
getTimestamp(
|
|
163
|
+
roundId: BigNumberish,
|
|
164
|
+
overrides?: CallOverrides
|
|
165
|
+
): Promise<BigNumber>;
|
|
166
|
+
|
|
167
|
+
latestAnswer(overrides?: CallOverrides): Promise<BigNumber>;
|
|
168
|
+
|
|
169
|
+
latestRound(overrides?: CallOverrides): Promise<BigNumber>;
|
|
170
|
+
|
|
171
|
+
latestTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
filters: {
|
|
175
|
+
"AnswerUpdated(int256,uint256,uint256)"(
|
|
176
|
+
current?: BigNumberish | null,
|
|
177
|
+
roundId?: BigNumberish | null,
|
|
178
|
+
updatedAt?: null
|
|
179
|
+
): AnswerUpdatedEventFilter;
|
|
180
|
+
AnswerUpdated(
|
|
181
|
+
current?: BigNumberish | null,
|
|
182
|
+
roundId?: BigNumberish | null,
|
|
183
|
+
updatedAt?: null
|
|
184
|
+
): AnswerUpdatedEventFilter;
|
|
185
|
+
|
|
186
|
+
"NewRound(uint256,address,uint256)"(
|
|
187
|
+
roundId?: BigNumberish | null,
|
|
188
|
+
startedBy?: string | null,
|
|
189
|
+
startedAt?: null
|
|
190
|
+
): NewRoundEventFilter;
|
|
191
|
+
NewRound(
|
|
192
|
+
roundId?: BigNumberish | null,
|
|
193
|
+
startedBy?: string | null,
|
|
194
|
+
startedAt?: null
|
|
195
|
+
): NewRoundEventFilter;
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
estimateGas: {
|
|
199
|
+
getAnswer(
|
|
200
|
+
roundId: BigNumberish,
|
|
201
|
+
overrides?: CallOverrides
|
|
202
|
+
): Promise<BigNumber>;
|
|
203
|
+
|
|
204
|
+
getTimestamp(
|
|
205
|
+
roundId: BigNumberish,
|
|
206
|
+
overrides?: CallOverrides
|
|
207
|
+
): Promise<BigNumber>;
|
|
208
|
+
|
|
209
|
+
latestAnswer(overrides?: CallOverrides): Promise<BigNumber>;
|
|
210
|
+
|
|
211
|
+
latestRound(overrides?: CallOverrides): Promise<BigNumber>;
|
|
212
|
+
|
|
213
|
+
latestTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
populateTransaction: {
|
|
217
|
+
getAnswer(
|
|
218
|
+
roundId: BigNumberish,
|
|
219
|
+
overrides?: CallOverrides
|
|
220
|
+
): Promise<PopulatedTransaction>;
|
|
221
|
+
|
|
222
|
+
getTimestamp(
|
|
223
|
+
roundId: BigNumberish,
|
|
224
|
+
overrides?: CallOverrides
|
|
225
|
+
): Promise<PopulatedTransaction>;
|
|
226
|
+
|
|
227
|
+
latestAnswer(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
228
|
+
|
|
229
|
+
latestRound(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
230
|
+
|
|
231
|
+
latestTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
232
|
+
};
|
|
233
|
+
}
|