@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.
Files changed (50) hide show
  1. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  2. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  3. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  4. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  5. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  6. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  7. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.json +141 -0
  9. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  10. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  11. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  12. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  13. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  14. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  15. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  16. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  17. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  18. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  19. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  20. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  21. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  22. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  23. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +143 -2
  24. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  25. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  26. package/contracts/interfaces/IPRouterHelper.sol +8 -0
  27. package/contracts/router/PendleRouterHelper.sol +9 -8
  28. package/deployments/1-core.json +1 -1
  29. package/deployments/42161-core.json +1 -1
  30. package/package.json +1 -1
  31. package/typechain-types/AggregatorInterface.ts +233 -0
  32. package/typechain-types/AggregatorV2V3Interface.ts +385 -0
  33. package/typechain-types/AggregatorV3Interface.ts +221 -0
  34. package/typechain-types/IPRouterHelper.ts +84 -12
  35. package/typechain-types/PendlePtAssetOracle.ts +167 -0
  36. package/typechain-types/PendlePtChainlinkOracle.ts +215 -0
  37. package/typechain-types/PendlePtSingleAssetOracle.ts +167 -0
  38. package/typechain-types/PendlePtUSDOracle.ts +215 -0
  39. package/typechain-types/PendleRouterHelper.ts +84 -12
  40. package/typechain-types/factories/AggregatorInterface__factory.ts +153 -0
  41. package/typechain-types/factories/AggregatorV2V3Interface__factory.ts +268 -0
  42. package/typechain-types/factories/AggregatorV3Interface__factory.ts +141 -0
  43. package/typechain-types/factories/IPRouterHelper__factory.ts +141 -0
  44. package/typechain-types/factories/PendlePtAssetOracle__factory.ts +199 -0
  45. package/typechain-types/factories/PendlePtChainlinkOracle__factory.ts +251 -0
  46. package/typechain-types/factories/PendlePtSingleAssetOracle__factory.ts +203 -0
  47. package/typechain-types/factories/PendlePtUSDOracle__factory.ts +247 -0
  48. package/typechain-types/factories/PendleRouterHelper__factory.ts +142 -1
  49. package/typechain-types/hardhat.d.ts +45 -0
  50. 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) = _removeLiquiditySingleToken(fromMarket);
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) = _removeLiquiditySingleToken(fromMarket);
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) = _removeLiquiditySingleSy(fromMarket);
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) = _removeLiquiditySingleSy(fromMarket);
135
+ (netSyZapIn, netSyFeeOfRemove) = removeLiquiditySingleSy(fromMarket);
135
136
  (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(toMarket, netSyZapIn);
136
137
  }
137
138
 
138
- function _removeLiquiditySingleToken(RemoveLiquiditySingleTokenStruct calldata fromMarket)
139
- internal
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 _removeLiquiditySingleSy(RemoveLiquiditySingleSyStruct calldata fromMarket)
173
- internal
173
+ function removeLiquiditySingleSy(RemoveLiquiditySingleSyStruct calldata fromMarket)
174
+ public
174
175
  returns (uint256 netSyOut, uint256 netSyFee)
175
176
  {
176
177
  _transferFrom(
@@ -28,5 +28,5 @@
28
28
  "votingController": "0x44087E105137a5095c008AaB6a6530182821F2F0",
29
29
  "gaugeController": "0x47D74516B33eD5D70ddE7119A40839f6Fcc24e57",
30
30
  "feeDistributor": "0xd7b34a6fDCb2A7ceD2115FF7f5fdD72aa6aA4dE2",
31
- "routerHelper": "0xeb984195D54Df02BaF757e21B0705032FaEFde2E"
31
+ "routerHelper": "0x462206b11d185ef6F64B41D344325401C37EC335"
32
32
  }
@@ -23,5 +23,5 @@
23
23
  "receiverEndpoint": "0xC9215ae9EC67385F38C755D862C8eE3702B5793A",
24
24
  "vePendle": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
25
25
  "gaugeController": "0x1e56299ebc8a1010cec26005d12e3e5c5cc2db00",
26
- "routerHelper": "0xeb984195D54Df02BaF757e21B0705032FaEFde2E"
26
+ "routerHelper": "0x462206b11d185ef6F64B41D344325401C37EC335"
27
27
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "2.5.1-mainnet",
5
+ "version": "2.6.0-mainnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -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
+ }