@pendle/core-v2 4.2.6 → 4.3.0

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 (36) hide show
  1. package/build/artifacts/contracts/interfaces/IPPtLpOracle.sol/IPPtLpOracle.dbg.json +4 -0
  2. package/build/artifacts/contracts/interfaces/{IPPtOracle.sol/IPPtOracle.json → IPPtLpOracle.sol/IPPtLpOracle.json} +75 -3
  3. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  4. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.json +96 -0
  5. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  6. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +98 -2
  7. package/build/artifacts/contracts/oracles/PendlePtLpOracle.sol/PendlePtLpOracle.dbg.json +1 -1
  8. package/build/artifacts/contracts/oracles/PendlePtLpOracle.sol/PendlePtLpOracle.json +2 -2
  9. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
  10. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.json +2 -2
  11. package/build/artifacts/contracts/oracles/samples/BoringPtUsdChainlinkOracle.sol/BoringPtUsdChainlinkOracle.dbg.json +1 -1
  12. package/build/artifacts/contracts/oracles/samples/BoringPtUsdChainlinkOracle.sol/BoringPtUsdChainlinkOracle.json +2 -2
  13. package/contracts/interfaces/{IPPtOracle.sol → IPPtLpOracle.sol} +8 -2
  14. package/contracts/limit/LimitRouterBase.sol +26 -9
  15. package/contracts/oracles/PendlePtLpOracle.sol +4 -2
  16. package/contracts/oracles/samples/BoringLpGlpOracle.sol +2 -2
  17. package/contracts/oracles/samples/BoringPtUsdChainlinkOracle.sol +3 -3
  18. package/deployments/1-core.json +1 -1
  19. package/deployments/1-markets/APXETH-MAR2025.json +13 -0
  20. package/deployments/10-core.json +1 -1
  21. package/deployments/42161-core.json +1 -1
  22. package/deployments/42161-markets/MLP-JUNE2024.json +12 -0
  23. package/deployments/56-core.json +1 -1
  24. package/package.json +1 -1
  25. package/typechain-types/IPPtLpOracle.ts +301 -0
  26. package/typechain-types/LimitRouterBase.ts +36 -0
  27. package/typechain-types/PendleLimitRouter.ts +36 -0
  28. package/typechain-types/factories/BoringLpGlpOracle__factory.ts +1 -1
  29. package/typechain-types/factories/BoringPtUsdChainlinkOracle__factory.ts +1 -1
  30. package/typechain-types/factories/IPPtLpOracle__factory.ts +166 -0
  31. package/typechain-types/factories/LimitRouterBase__factory.ts +96 -0
  32. package/typechain-types/factories/PendleLimitRouter__factory.ts +97 -1
  33. package/typechain-types/factories/PendlePtLpOracle__factory.ts +1 -1
  34. package/typechain-types/hardhat.d.ts +4 -4
  35. package/typechain-types/index.ts +2 -2
  36. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +0 -4
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity ^0.8.17;
3
3
 
4
- import "../../interfaces/IPPtOracle.sol";
4
+ import "../../interfaces/IPPtLpOracle.sol";
5
5
  import "../../interfaces/IPMarket.sol";
6
6
  import "../../core/libraries/math/PMath.sol";
7
7
  import "../PendleLpOracleLib.sol";
@@ -43,7 +43,7 @@ contract BoringPtUsdChainlinkOracle {
43
43
  /// but slightly higher gas usage (~ 4000 gas, 2 external calls & 1 cold code load)
44
44
  /// @notice please checkOracleState() before use
45
45
  function getPtPriceSample2() external view virtual returns (uint256) {
46
- uint256 ptRate = IPPtOracle(ptOracle).getPtToAssetRate(market, twapDuration);
46
+ uint256 ptRate = IPPtLpOracle(ptOracle).getPtToAssetRate(market, twapDuration);
47
47
  uint256 assetPrice = _getUnderlyingAssetPrice();
48
48
  return (assetPrice * ptRate) / PMath.ONE;
49
49
  }
@@ -60,7 +60,7 @@ contract BoringPtUsdChainlinkOracle {
60
60
 
61
61
  /// @notice Call only once for each (market, duration). Once successful, it's permanently valid (also for any shorter duration).
62
62
  function checkOracleState() external view {
63
- (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied) = IPPtOracle(
63
+ (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied) = IPPtLpOracle(
64
64
  ptOracle
65
65
  ).getOracleState(market, twapDuration);
66
66
 
@@ -24,7 +24,7 @@
24
24
  "routerStatic": "0x263833d47eA3fA4a30f269323aba6a107f9eB14C",
25
25
  "pendleSwap": "0x694ba57ee63614b8448b465c39f505ade5e594ad",
26
26
  "routerHelper": "0x462206b11d185ef6F64B41D344325401C37EC335",
27
- "ptOracle": "0x66a1096C6366b2529274dF4f5D8247827fe4CEA8",
27
+ "ptAndLpOracle": "0x66a1096C6366b2529274dF4f5D8247827fe4CEA8",
28
28
  "yieldContractFactoryV3": "0xdF3601014686674e53d1Fa52F7602525483F9122",
29
29
  "marketFactoryV3": "0x1A6fCc85557BC4fB7B534ed835a03EF056552D52",
30
30
  "poolDeployHelper": "0x1E4c3DE54DecbD51F1F9a6b4eaFd265FAc04e831",
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "APXETH-MAR2025",
3
+ "SY": "0x440d08d85cb12352DaBac2971De81e9be702d239",
4
+ "YT": "0x16e1Ad37bAdc81BC08e8aC0E9d4ac1000836C8a0",
5
+ "PT": "0xa6a0C2b9d06b769635F6C85deB6b500f49F672E8",
6
+ "market": "0xE6D4986Cd935529FC4505d48E926bcd36A58A0F0",
7
+ "expiry": 1743033600,
8
+ "lnFeeRateRoot": "499875041000000",
9
+ "scalarRoot": "36562897746000000000",
10
+ "initAnchor": "1091755372000000000",
11
+ "doCacheIndexSameBlock": true,
12
+ "deployTxHash": "0x6f4309e1bc4b23342072ed3c71056e623ab05e0c7d88fdf74857ed340ee53ad4"
13
+ }
@@ -23,7 +23,7 @@
23
23
  "routerStatic": "0x704478Dd72FD7F9B83d1F1e0fc18C14B54F034d0",
24
24
  "pendleSwap": "0xD85d2F484DF4329746325e7398f3fC3E1915a173",
25
25
  "routerHelper": "0x462206b11d185ef6F64B41D344325401C37EC335",
26
- "ptOracle": "0x15Aab5C1ab800A9e457d9f4335e8A2Dc9f6Ad707",
26
+ "ptAndLpOracle": "0x15Aab5C1ab800A9e457d9f4335e8A2Dc9f6Ad707",
27
27
  "yieldContractFactoryV3": "0xfa6B22FC4c3Ad88B68c16b3061a16b1714F6Bd57",
28
28
  "marketFactoryV3": "0x4A2B38b9cBd83c86F261a4d64c243795D4d44aBC",
29
29
  "poolDeployHelper": "0xc4A9d8b486f388CC0E4168d2904277e8C8372FA3",
@@ -23,7 +23,7 @@
23
23
  "routerStatic": "0xAdB09F65bd90d19e3148D9ccb693F3161C6DB3E8",
24
24
  "pendleSwap": "0xCad581ee99a06BfcA69D8880df96BcC2d0DE3F2E",
25
25
  "routerHelper": "0x462206b11d185ef6F64B41D344325401C37EC335",
26
- "ptOracle": "0x1Fd95db7B7C0067De8D45C0cb35D59796adfD187",
26
+ "ptAndLpOracle": "0x1Fd95db7B7C0067De8D45C0cb35D59796adfD187",
27
27
  "yieldContractFactoryV3": "0xEb38531db128EcA928aea1B1CE9E5609B15ba146",
28
28
  "marketFactoryV3": "0x2FCb47B58350cD377f94d3821e7373Df60bD9Ced",
29
29
  "poolDeployHelper": "0x644f83C584E9B109518726d5bEa3FF615548f88b",
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "MLP-JUNE2024",
3
+ "SY": "0x5220E1Ef8CE83Aa9fE0CCE1b8395cD698d04bc7E",
4
+ "YT": "0xD101DF41943Ec333F64Df316A3093cee1Bf16572",
5
+ "PT": "0x54a2c0dCf15d70FE0F3D02aDDc4be0bC93625A65",
6
+ "market": "0x0D29182b7b663A967c5c41f03FC478c075fD4A1E",
7
+ "expiry": 1719446400,
8
+ "lnFeeRateRoot": "999500333000000",
9
+ "scalarRoot": "5610601679000000000",
10
+ "initAnchor": "1133350546000000000",
11
+ "doCacheIndexSameBlock": true
12
+ }
@@ -23,7 +23,7 @@
23
23
  "routerStatic": "0x2700ADB035F82a11899ce1D3f1BF8451c296eABb",
24
24
  "pendleSwap": "0xc7565d2282198b4b50ec29dee7b942e2b9bbc203",
25
25
  "routerHelper": "0x09D65812dCD0f276e052583d41885cA5C7Dd0086",
26
- "ptOracle": "0x30c6d4e892871220B5Ab66c10db577da96Fb974b",
26
+ "ptAndLpOracle": "0x30c6d4e892871220B5Ab66c10db577da96Fb974b",
27
27
  "yieldContractFactoryV3": "0x40Ae6da2d92aa3DCb7f8d7a7209FD12BDfcb7C85",
28
28
  "marketFactoryV3": "0xC40fEbF5A33b8C92B187d9be0fD3fe0ac2E4B07c",
29
29
  "poolDeployHelper": "0x73Be47237F12F36203823BAc9A4d80dC798B7015",
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": "4.2.6",
5
+ "version": "4.3.0",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -0,0 +1,301 @@
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 IPPtLpOracleInterface extends utils.Interface {
24
+ contractName: "IPPtLpOracle";
25
+ functions: {
26
+ "getLpToAssetRate(address,uint32)": FunctionFragment;
27
+ "getLpToSyRate(address,uint32)": FunctionFragment;
28
+ "getOracleState(address,uint32)": FunctionFragment;
29
+ "getPtToAssetRate(address,uint32)": FunctionFragment;
30
+ "getPtToSyRate(address,uint32)": FunctionFragment;
31
+ };
32
+
33
+ encodeFunctionData(
34
+ functionFragment: "getLpToAssetRate",
35
+ values: [string, BigNumberish]
36
+ ): string;
37
+ encodeFunctionData(
38
+ functionFragment: "getLpToSyRate",
39
+ values: [string, BigNumberish]
40
+ ): string;
41
+ encodeFunctionData(
42
+ functionFragment: "getOracleState",
43
+ values: [string, BigNumberish]
44
+ ): string;
45
+ encodeFunctionData(
46
+ functionFragment: "getPtToAssetRate",
47
+ values: [string, BigNumberish]
48
+ ): string;
49
+ encodeFunctionData(
50
+ functionFragment: "getPtToSyRate",
51
+ values: [string, BigNumberish]
52
+ ): string;
53
+
54
+ decodeFunctionResult(
55
+ functionFragment: "getLpToAssetRate",
56
+ data: BytesLike
57
+ ): Result;
58
+ decodeFunctionResult(
59
+ functionFragment: "getLpToSyRate",
60
+ data: BytesLike
61
+ ): Result;
62
+ decodeFunctionResult(
63
+ functionFragment: "getOracleState",
64
+ data: BytesLike
65
+ ): Result;
66
+ decodeFunctionResult(
67
+ functionFragment: "getPtToAssetRate",
68
+ data: BytesLike
69
+ ): Result;
70
+ decodeFunctionResult(
71
+ functionFragment: "getPtToSyRate",
72
+ data: BytesLike
73
+ ): Result;
74
+
75
+ events: {
76
+ "SetBlockCycleNumerator(uint16)": EventFragment;
77
+ };
78
+
79
+ getEvent(nameOrSignatureOrTopic: "SetBlockCycleNumerator"): EventFragment;
80
+ }
81
+
82
+ export type SetBlockCycleNumeratorEvent = TypedEvent<
83
+ [number],
84
+ { newBlockCycleNumerator: number }
85
+ >;
86
+
87
+ export type SetBlockCycleNumeratorEventFilter =
88
+ TypedEventFilter<SetBlockCycleNumeratorEvent>;
89
+
90
+ export interface IPPtLpOracle extends BaseContract {
91
+ contractName: "IPPtLpOracle";
92
+ connect(signerOrProvider: Signer | Provider | string): this;
93
+ attach(addressOrName: string): this;
94
+ deployed(): Promise<this>;
95
+
96
+ interface: IPPtLpOracleInterface;
97
+
98
+ queryFilter<TEvent extends TypedEvent>(
99
+ event: TypedEventFilter<TEvent>,
100
+ fromBlockOrBlockhash?: string | number | undefined,
101
+ toBlock?: string | number | undefined
102
+ ): Promise<Array<TEvent>>;
103
+
104
+ listeners<TEvent extends TypedEvent>(
105
+ eventFilter?: TypedEventFilter<TEvent>
106
+ ): Array<TypedListener<TEvent>>;
107
+ listeners(eventName?: string): Array<Listener>;
108
+ removeAllListeners<TEvent extends TypedEvent>(
109
+ eventFilter: TypedEventFilter<TEvent>
110
+ ): this;
111
+ removeAllListeners(eventName?: string): this;
112
+ off: OnEvent<this>;
113
+ on: OnEvent<this>;
114
+ once: OnEvent<this>;
115
+ removeListener: OnEvent<this>;
116
+
117
+ functions: {
118
+ getLpToAssetRate(
119
+ market: string,
120
+ duration: BigNumberish,
121
+ overrides?: CallOverrides
122
+ ): Promise<[BigNumber]>;
123
+
124
+ getLpToSyRate(
125
+ market: string,
126
+ duration: BigNumberish,
127
+ overrides?: CallOverrides
128
+ ): Promise<[BigNumber]>;
129
+
130
+ getOracleState(
131
+ market: string,
132
+ duration: BigNumberish,
133
+ overrides?: CallOverrides
134
+ ): Promise<
135
+ [boolean, number, boolean] & {
136
+ increaseCardinalityRequired: boolean;
137
+ cardinalityRequired: number;
138
+ oldestObservationSatisfied: boolean;
139
+ }
140
+ >;
141
+
142
+ getPtToAssetRate(
143
+ market: string,
144
+ duration: BigNumberish,
145
+ overrides?: CallOverrides
146
+ ): Promise<[BigNumber]>;
147
+
148
+ getPtToSyRate(
149
+ market: string,
150
+ duration: BigNumberish,
151
+ overrides?: CallOverrides
152
+ ): Promise<[BigNumber]>;
153
+ };
154
+
155
+ getLpToAssetRate(
156
+ market: string,
157
+ duration: BigNumberish,
158
+ overrides?: CallOverrides
159
+ ): Promise<BigNumber>;
160
+
161
+ getLpToSyRate(
162
+ market: string,
163
+ duration: BigNumberish,
164
+ overrides?: CallOverrides
165
+ ): Promise<BigNumber>;
166
+
167
+ getOracleState(
168
+ market: string,
169
+ duration: BigNumberish,
170
+ overrides?: CallOverrides
171
+ ): Promise<
172
+ [boolean, number, boolean] & {
173
+ increaseCardinalityRequired: boolean;
174
+ cardinalityRequired: number;
175
+ oldestObservationSatisfied: boolean;
176
+ }
177
+ >;
178
+
179
+ getPtToAssetRate(
180
+ market: string,
181
+ duration: BigNumberish,
182
+ overrides?: CallOverrides
183
+ ): Promise<BigNumber>;
184
+
185
+ getPtToSyRate(
186
+ market: string,
187
+ duration: BigNumberish,
188
+ overrides?: CallOverrides
189
+ ): Promise<BigNumber>;
190
+
191
+ callStatic: {
192
+ getLpToAssetRate(
193
+ market: string,
194
+ duration: BigNumberish,
195
+ overrides?: CallOverrides
196
+ ): Promise<BigNumber>;
197
+
198
+ getLpToSyRate(
199
+ market: string,
200
+ duration: BigNumberish,
201
+ overrides?: CallOverrides
202
+ ): Promise<BigNumber>;
203
+
204
+ getOracleState(
205
+ market: string,
206
+ duration: BigNumberish,
207
+ overrides?: CallOverrides
208
+ ): Promise<
209
+ [boolean, number, boolean] & {
210
+ increaseCardinalityRequired: boolean;
211
+ cardinalityRequired: number;
212
+ oldestObservationSatisfied: boolean;
213
+ }
214
+ >;
215
+
216
+ getPtToAssetRate(
217
+ market: string,
218
+ duration: BigNumberish,
219
+ overrides?: CallOverrides
220
+ ): Promise<BigNumber>;
221
+
222
+ getPtToSyRate(
223
+ market: string,
224
+ duration: BigNumberish,
225
+ overrides?: CallOverrides
226
+ ): Promise<BigNumber>;
227
+ };
228
+
229
+ filters: {
230
+ "SetBlockCycleNumerator(uint16)"(
231
+ newBlockCycleNumerator?: null
232
+ ): SetBlockCycleNumeratorEventFilter;
233
+ SetBlockCycleNumerator(
234
+ newBlockCycleNumerator?: null
235
+ ): SetBlockCycleNumeratorEventFilter;
236
+ };
237
+
238
+ estimateGas: {
239
+ getLpToAssetRate(
240
+ market: string,
241
+ duration: BigNumberish,
242
+ overrides?: CallOverrides
243
+ ): Promise<BigNumber>;
244
+
245
+ getLpToSyRate(
246
+ market: string,
247
+ duration: BigNumberish,
248
+ overrides?: CallOverrides
249
+ ): Promise<BigNumber>;
250
+
251
+ getOracleState(
252
+ market: string,
253
+ duration: BigNumberish,
254
+ overrides?: CallOverrides
255
+ ): Promise<BigNumber>;
256
+
257
+ getPtToAssetRate(
258
+ market: string,
259
+ duration: BigNumberish,
260
+ overrides?: CallOverrides
261
+ ): Promise<BigNumber>;
262
+
263
+ getPtToSyRate(
264
+ market: string,
265
+ duration: BigNumberish,
266
+ overrides?: CallOverrides
267
+ ): Promise<BigNumber>;
268
+ };
269
+
270
+ populateTransaction: {
271
+ getLpToAssetRate(
272
+ market: string,
273
+ duration: BigNumberish,
274
+ overrides?: CallOverrides
275
+ ): Promise<PopulatedTransaction>;
276
+
277
+ getLpToSyRate(
278
+ market: string,
279
+ duration: BigNumberish,
280
+ overrides?: CallOverrides
281
+ ): Promise<PopulatedTransaction>;
282
+
283
+ getOracleState(
284
+ market: string,
285
+ duration: BigNumberish,
286
+ overrides?: CallOverrides
287
+ ): Promise<PopulatedTransaction>;
288
+
289
+ getPtToAssetRate(
290
+ market: string,
291
+ duration: BigNumberish,
292
+ overrides?: CallOverrides
293
+ ): Promise<PopulatedTransaction>;
294
+
295
+ getPtToSyRate(
296
+ market: string,
297
+ duration: BigNumberish,
298
+ overrides?: CallOverrides
299
+ ): Promise<PopulatedTransaction>;
300
+ };
301
+ }
@@ -82,6 +82,7 @@ export interface LimitRouterBaseInterface extends utils.Interface {
82
82
  contractName: "LimitRouterBase";
83
83
  functions: {
84
84
  "DOMAIN_SEPARATOR()": FunctionFragment;
85
+ "_checkSig((uint256,uint256,uint256,uint8,address,address,address,address,uint256,uint256,uint256,bytes),bytes)": FunctionFragment;
85
86
  "advanceNonce(uint8)": FunctionFragment;
86
87
  "cancelBatch((uint256,uint256,uint256,uint8,address,address,address,address,uint256,uint256,uint256,bytes)[])": FunctionFragment;
87
88
  "cancelSingle((uint256,uint256,uint256,uint8,address,address,address,address,uint256,uint256,uint256,bytes))": FunctionFragment;
@@ -109,6 +110,10 @@ export interface LimitRouterBaseInterface extends utils.Interface {
109
110
  functionFragment: "DOMAIN_SEPARATOR",
110
111
  values?: undefined
111
112
  ): string;
113
+ encodeFunctionData(
114
+ functionFragment: "_checkSig",
115
+ values: [OrderStruct, BytesLike]
116
+ ): string;
112
117
  encodeFunctionData(
113
118
  functionFragment: "advanceNonce",
114
119
  values: [BigNumberish]
@@ -195,6 +200,7 @@ export interface LimitRouterBaseInterface extends utils.Interface {
195
200
  functionFragment: "DOMAIN_SEPARATOR",
196
201
  data: BytesLike
197
202
  ): Result;
203
+ decodeFunctionResult(functionFragment: "_checkSig", data: BytesLike): Result;
198
204
  decodeFunctionResult(
199
205
  functionFragment: "advanceNonce",
200
206
  data: BytesLike
@@ -387,6 +393,12 @@ export interface LimitRouterBase extends BaseContract {
387
393
  functions: {
388
394
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>;
389
395
 
396
+ _checkSig(
397
+ order: OrderStruct,
398
+ signature: BytesLike,
399
+ overrides?: CallOverrides
400
+ ): Promise<[string, BigNumber, BigNumber]>;
401
+
390
402
  advanceNonce(
391
403
  amount: BigNumberish,
392
404
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -506,6 +518,12 @@ export interface LimitRouterBase extends BaseContract {
506
518
 
507
519
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
508
520
 
521
+ _checkSig(
522
+ order: OrderStruct,
523
+ signature: BytesLike,
524
+ overrides?: CallOverrides
525
+ ): Promise<[string, BigNumber, BigNumber]>;
526
+
509
527
  advanceNonce(
510
528
  amount: BigNumberish,
511
529
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -622,6 +640,12 @@ export interface LimitRouterBase extends BaseContract {
622
640
  callStatic: {
623
641
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
624
642
 
643
+ _checkSig(
644
+ order: OrderStruct,
645
+ signature: BytesLike,
646
+ overrides?: CallOverrides
647
+ ): Promise<[string, BigNumber, BigNumber]>;
648
+
625
649
  advanceNonce(
626
650
  amount: BigNumberish,
627
651
  overrides?: CallOverrides
@@ -819,6 +843,12 @@ export interface LimitRouterBase extends BaseContract {
819
843
  estimateGas: {
820
844
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<BigNumber>;
821
845
 
846
+ _checkSig(
847
+ order: OrderStruct,
848
+ signature: BytesLike,
849
+ overrides?: CallOverrides
850
+ ): Promise<BigNumber>;
851
+
822
852
  advanceNonce(
823
853
  amount: BigNumberish,
824
854
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -917,6 +947,12 @@ export interface LimitRouterBase extends BaseContract {
917
947
  populateTransaction: {
918
948
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
919
949
 
950
+ _checkSig(
951
+ order: OrderStruct,
952
+ signature: BytesLike,
953
+ overrides?: CallOverrides
954
+ ): Promise<PopulatedTransaction>;
955
+
920
956
  advanceNonce(
921
957
  amount: BigNumberish,
922
958
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -82,6 +82,7 @@ export interface PendleLimitRouterInterface extends utils.Interface {
82
82
  contractName: "PendleLimitRouter";
83
83
  functions: {
84
84
  "DOMAIN_SEPARATOR()": FunctionFragment;
85
+ "_checkSig((uint256,uint256,uint256,uint8,address,address,address,address,uint256,uint256,uint256,bytes),bytes)": FunctionFragment;
85
86
  "advanceNonce(uint8)": FunctionFragment;
86
87
  "cancelBatch((uint256,uint256,uint256,uint8,address,address,address,address,uint256,uint256,uint256,bytes)[])": FunctionFragment;
87
88
  "cancelSingle((uint256,uint256,uint256,uint8,address,address,address,address,uint256,uint256,uint256,bytes))": FunctionFragment;
@@ -109,6 +110,10 @@ export interface PendleLimitRouterInterface extends utils.Interface {
109
110
  functionFragment: "DOMAIN_SEPARATOR",
110
111
  values?: undefined
111
112
  ): string;
113
+ encodeFunctionData(
114
+ functionFragment: "_checkSig",
115
+ values: [OrderStruct, BytesLike]
116
+ ): string;
112
117
  encodeFunctionData(
113
118
  functionFragment: "advanceNonce",
114
119
  values: [BigNumberish]
@@ -195,6 +200,7 @@ export interface PendleLimitRouterInterface extends utils.Interface {
195
200
  functionFragment: "DOMAIN_SEPARATOR",
196
201
  data: BytesLike
197
202
  ): Result;
203
+ decodeFunctionResult(functionFragment: "_checkSig", data: BytesLike): Result;
198
204
  decodeFunctionResult(
199
205
  functionFragment: "advanceNonce",
200
206
  data: BytesLike
@@ -387,6 +393,12 @@ export interface PendleLimitRouter extends BaseContract {
387
393
  functions: {
388
394
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>;
389
395
 
396
+ _checkSig(
397
+ order: OrderStruct,
398
+ signature: BytesLike,
399
+ overrides?: CallOverrides
400
+ ): Promise<[string, BigNumber, BigNumber]>;
401
+
390
402
  advanceNonce(
391
403
  amount: BigNumberish,
392
404
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -506,6 +518,12 @@ export interface PendleLimitRouter extends BaseContract {
506
518
 
507
519
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
508
520
 
521
+ _checkSig(
522
+ order: OrderStruct,
523
+ signature: BytesLike,
524
+ overrides?: CallOverrides
525
+ ): Promise<[string, BigNumber, BigNumber]>;
526
+
509
527
  advanceNonce(
510
528
  amount: BigNumberish,
511
529
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -622,6 +640,12 @@ export interface PendleLimitRouter extends BaseContract {
622
640
  callStatic: {
623
641
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
624
642
 
643
+ _checkSig(
644
+ order: OrderStruct,
645
+ signature: BytesLike,
646
+ overrides?: CallOverrides
647
+ ): Promise<[string, BigNumber, BigNumber]>;
648
+
625
649
  advanceNonce(
626
650
  amount: BigNumberish,
627
651
  overrides?: CallOverrides
@@ -819,6 +843,12 @@ export interface PendleLimitRouter extends BaseContract {
819
843
  estimateGas: {
820
844
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<BigNumber>;
821
845
 
846
+ _checkSig(
847
+ order: OrderStruct,
848
+ signature: BytesLike,
849
+ overrides?: CallOverrides
850
+ ): Promise<BigNumber>;
851
+
822
852
  advanceNonce(
823
853
  amount: BigNumberish,
824
854
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -917,6 +947,12 @@ export interface PendleLimitRouter extends BaseContract {
917
947
  populateTransaction: {
918
948
  DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
919
949
 
950
+ _checkSig(
951
+ order: OrderStruct,
952
+ signature: BytesLike,
953
+ overrides?: CallOverrides
954
+ ): Promise<PopulatedTransaction>;
955
+
920
956
  advanceNonce(
921
957
  amount: BigNumberish,
922
958
  overrides?: Overrides & { from?: string | Promise<string> }
@@ -174,7 +174,7 @@ const _abi = [
174
174
  ];
175
175
 
176
176
  const _bytecode =
177
- "0x60e06040523480156200001157600080fd5b5060405162001c8738038062001c8783398101604081905262000034916200012f565b63ffffffff831660808190526001600160a01b0383811660a081905283821660c05260405162439f4b60e91b815260048101919091526024810192909252600091829187169063873e960090604401606060405180830381865afa158015620000a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c79190620001a7565b92505091508180620000d7575080155b15620001065760405163685ddbe760e11b81528215156004820152811515602482015260440160405180910390fd5b505050505050620001f9565b80516001600160a01b03811681146200012a57600080fd5b919050565b600080600080608085870312156200014657600080fd5b620001518562000112565b9350602085015163ffffffff811681146200016b57600080fd5b92506200017b6040860162000112565b91506200018b6060860162000112565b905092959194509250565b805180151581146200012a57600080fd5b600080600060608486031215620001bd57600080fd5b620001c88462000196565b9250602084015161ffff81168114620001e057600080fd5b9150620001f06040850162000196565b90509250925092565b60805160a05160c051611a4c6200023b6000396000818160fb015261019701526000818160c7015261012d0152600081816061015261014f0152611a4c6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806326d895451461005c578063313ce5671461009d5780634c7198f4146100ac57806380f55605146100c2578063fa6db1bc146100f6575b600080fd5b6100837f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405160128152602001610094565b6100b461011d565b604051908152602001610094565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405161009491906115ad565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6000806101736001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000061022c565b60405163e245b5af60e01b8152600160048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e245b5af90602401602060405180830381865afa1580156101de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020291906115c1565b905068327cb2734119d3b7a9601e1b61021b83836115f0565b610225919061161d565b9250505090565b600080600061023a8561027f565b91509150600061024b8686846104af565b905081831061025e579250610279915050565b8161026984836115f0565b610273919061161d565b93505050505b92915050565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e79190611649565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034e91906115c1565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b491906115c1565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104189190611696565b801561048d575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561045e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048291906116b8565b6001600160801b0316145b1561049a578093506104a7565b6104a48582610646565b93505b505050915091565b600080846001600160a01b031663794052f360006040518263ffffffff1660e01b81526004016104df91906115ad565b61012060405180830381865afa1580156104fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610521919061175b565b90506000428260a00151116105515761053e84836020015161065e565b825161054a91906117dd565b905061061d565b600061055e8386426106a2565b905060008061056e89868a6107a8565b91509150600061059761059285604001518561058a9190611805565b865190610818565b61083b565b905060006105dc6105a88385610c50565b6105ba90670de0b6b3a76400006117dd565b885160208801516105cc908690610818565b6105d69190611805565b90610c50565b90506105f2848289600001516105d691906117dd565b6105fc8285610c50565b866020015161060b9190611805565b61061591906117dd565b955050505050505b61063c610637836040015183610c5090919063ffffffff16565b610c76565b9695505050505050565b60008183116106555781610657565b825b9392505050565b60008060008312610670576001610674565b6000195b905061069061068b8561068686610c89565b610c9b565b610cba565b61069a9082611825565b949350505050565b6106cd6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106106f15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516107039190611855565b905061070f8582610cd0565b8252602085015161072190859061065e565b60208301528451158061073657506020820151155b15610769578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044015b60405180910390fd5b61078785600001518661010001518460200151856000015185610d2c565b604083015260c085015161079b9082610dad565b6060830152509392505050565b6000806107d36107c461068b6001600160a01b03881686610de1565b670de0b6b3a764000090610c50565b915060006107f5856101000151428760a001516107f09190611855565b610dad565b9050600261080384836117dd565b61080d9190611868565b915050935093915050565b6000806108258385611825565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015610860575068070c1cc73b00c800008213155b61089f5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610760565b60008212156108d7576108b48260000361083b565b6a0c097ce7bc90715b34b9f160241b816108d0576108d0611607565b0592915050565b60006806f05b59d3b2000000831261091557506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61094b565b6803782dace9d9000000831261094757506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061094b565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261099b5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126109d7576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412610a1157682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412610a4b576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412610a8457680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412610abd5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412610af6576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412610b2f5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080610c65670de0b6b3a764000085611825565b905082818161083257610832611607565b600080821215610c8557600080fd5b5090565b6000808213610c855761027982611896565b6000670de0b6b3a7640000610cb084846115f0565b610657919061161d565b60006001600160ff1b03821115610c8557600080fd5b6000610cdb82610cba565b610ced61068b6201518061016d6115f0565b8460800151610cfc9190611825565b610d069190611868565b90506000811361027957604051630e520c3b60e11b815260048101829052602401610760565b600080610d398684610dad565b9050670de0b6b3a7640000811215610d675760405163329e322960e21b815260048101829052602401610760565b6000610d7d610d76878a6117dd565b8990610c50565b90506000610d8a82610eb1565b9050610d968187610c50565b610da09084611805565b9998505050505050505050565b600080610dbf6201518061016d6115f0565b610dc984866115f0565b610dd3919061161d565b905061069a61059282610cba565b600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4691906115c1565b9050428111610e6057670de0b6b3a7640000915050610279565b6000610e6c8585610f04565b90506000610e7a4284611855565b90506000610e8b6106378484610dad565b9050610e9f670de0b6b3a76400008261102b565b945050505050610279565b5092915050565b6000670de0b6b3a76400008203610edb5760405163a9c8b14d60e01b815260040160405180910390fd5b6000610ef9610ef284670de0b6b3a7640000611805565b8490610c50565b90506106578161105a565b604080516002808252606082018352600092839291906020830190803683370190505090508281600081518110610f3d57610f3d6118b2565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd90610f819085906004016118c8565b600060405180830381865afa158015610f9e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fc69190810190611912565b90508363ffffffff1681600081518110610fe257610fe26118b2565b602002602001015182600181518110610ffd57610ffd6118b2565b602002602001015161100f91906119d0565b61101991906119f0565b6001600160d81b031695945050505050565b600080611040670de0b6b3a7640000856115f0565b905082818161105157611051611607565b04949350505050565b600080821361109b5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610760565b670c7d713b49da0000821380156110b95750670f43fc2c04ee000082125b156110dd57670de0b6b3a76400006110d0836110eb565b816108d0576108d0611607565b6102798261120a565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff198501028161112c5761112c611607565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561124b57611242826a0c097ce7bc90715b34b9f160241b8161123c5761123c611607565b0561120a565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126112965772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126112cd576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611315576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312611350576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261138757693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126113be57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126113f35768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261141e57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611453576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611488576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126114bc576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126114f0576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161151957611519611607565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0391909116815260200190565b6000602082840312156115d357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610279576102796115da565b634e487b7160e01b600052601260045260246000fd5b60008261162c5761162c611607565b500490565b6001600160a01b038116811461164657600080fd5b50565b60008060006060848603121561165e57600080fd5b835161166981611631565b602085015190935061167a81611631565b604085015190925061168b81611631565b809150509250925092565b6000602082840312156116a857600080fd5b8151801515811461065757600080fd5b6000602082840312156116ca57600080fd5b81516001600160801b038116811461065757600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561171a5761171a6116e1565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611748576117486116e1565b604052919050565b80516110e681611631565b6000610120828403121561176e57600080fd5b6117766116f7565b82518152602083015160208201526040830151604082015261179a60608401611750565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b80820182811260008312801582168215821617156117fd576117fd6115da565b505092915050565b8181036000831280158383131683831282161715610eaa57610eaa6115da565b80820260008212600160ff1b84141615611841576118416115da565b8181058314821517610279576102796115da565b81810381811115610279576102796115da565b60008261187757611877611607565b600160ff1b821460001984141615611891576118916115da565b500590565b6000600160ff1b82016118ab576118ab6115da565b5060000390565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101561190657835163ffffffff16835292840192918401916001016118e4565b50909695505050505050565b6000602080838503121561192557600080fd5b82516001600160401b038082111561193c57600080fd5b818501915085601f83011261195057600080fd5b815181811115611962576119626116e1565b8060051b9150611973848301611720565b818152918301840191848101908884111561198d57600080fd5b938501935b838510156119c457845192506001600160d81b03831683146119b45760008081fd5b8282529385019390850190611992565b98975050505050505050565b6001600160d81b03828116828216039080821115610eaa57610eaa6115da565b60006001600160d81b0383811680611a0a57611a0a611607565b9216919091049291505056fea26469706673582212201ae0bfa14423660ec748e98f7db34b3fa5cd03443963064a6e958ba08c44062964736f6c63430008170033";
177
+ "0x60e06040523480156200001157600080fd5b5060405162001c8738038062001c8783398101604081905262000034916200012f565b63ffffffff831660808190526001600160a01b0383811660a081905283821660c05260405162439f4b60e91b815260048101919091526024810192909252600091829187169063873e960090604401606060405180830381865afa158015620000a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c79190620001a7565b92505091508180620000d7575080155b15620001065760405163685ddbe760e11b81528215156004820152811515602482015260440160405180910390fd5b505050505050620001f9565b80516001600160a01b03811681146200012a57600080fd5b919050565b600080600080608085870312156200014657600080fd5b620001518562000112565b9350602085015163ffffffff811681146200016b57600080fd5b92506200017b6040860162000112565b91506200018b6060860162000112565b905092959194509250565b805180151581146200012a57600080fd5b600080600060608486031215620001bd57600080fd5b620001c88462000196565b9250602084015161ffff81168114620001e057600080fd5b9150620001f06040850162000196565b90509250925092565b60805160a05160c051611a4c6200023b6000396000818160fb015261019701526000818160c7015261012d0152600081816061015261014f0152611a4c6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806326d895451461005c578063313ce5671461009d5780634c7198f4146100ac57806380f55605146100c2578063fa6db1bc146100f6575b600080fd5b6100837f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020015b60405180910390f35b60405160128152602001610094565b6100b461011d565b604051908152602001610094565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b60405161009491906115ad565b6100e97f000000000000000000000000000000000000000000000000000000000000000081565b6000806101736001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000061022c565b60405163e245b5af60e01b8152600160048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e245b5af90602401602060405180830381865afa1580156101de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020291906115c1565b905068327cb2734119d3b7a9601e1b61021b83836115f0565b610225919061161d565b9250505090565b600080600061023a8561027f565b91509150600061024b8686846104af565b905081831061025e579250610279915050565b8161026984836115f0565b610273919061161d565b93505050505b92915050565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e79190611649565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034e91906115c1565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b491906115c1565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104189190611696565b801561048d575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561045e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048291906116b8565b6001600160801b0316145b1561049a578093506104a7565b6104a48582610646565b93505b505050915091565b600080846001600160a01b031663794052f360006040518263ffffffff1660e01b81526004016104df91906115ad565b61012060405180830381865afa1580156104fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610521919061175b565b90506000428260a00151116105515761053e84836020015161065e565b825161054a91906117dd565b905061061d565b600061055e8386426106a2565b905060008061056e89868a6107a8565b91509150600061059761059285604001518561058a9190611805565b865190610818565b61083b565b905060006105dc6105a88385610c50565b6105ba90670de0b6b3a76400006117dd565b885160208801516105cc908690610818565b6105d69190611805565b90610c50565b90506105f2848289600001516105d691906117dd565b6105fc8285610c50565b866020015161060b9190611805565b61061591906117dd565b955050505050505b61063c610637836040015183610c5090919063ffffffff16565b610c76565b9695505050505050565b60008183116106555781610657565b825b9392505050565b60008060008312610670576001610674565b6000195b905061069061068b8561068686610c89565b610c9b565b610cba565b61069a9082611825565b949350505050565b6106cd6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106106f15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516107039190611855565b905061070f8582610cd0565b8252602085015161072190859061065e565b60208301528451158061073657506020820151155b15610769578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044015b60405180910390fd5b61078785600001518661010001518460200151856000015185610d2c565b604083015260c085015161079b9082610dad565b6060830152509392505050565b6000806107d36107c461068b6001600160a01b03881686610de1565b670de0b6b3a764000090610c50565b915060006107f5856101000151428760a001516107f09190611855565b610dad565b9050600261080384836117dd565b61080d9190611868565b915050935093915050565b6000806108258385611825565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015610860575068070c1cc73b00c800008213155b61089f5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610760565b60008212156108d7576108b48260000361083b565b6a0c097ce7bc90715b34b9f160241b816108d0576108d0611607565b0592915050565b60006806f05b59d3b2000000831261091557506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61094b565b6803782dace9d9000000831261094757506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061094b565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261099b5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126109d7576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412610a1157682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412610a4b576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412610a8457680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412610abd5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412610af6576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412610b2f5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080610c65670de0b6b3a764000085611825565b905082818161083257610832611607565b600080821215610c8557600080fd5b5090565b6000808213610c855761027982611896565b6000670de0b6b3a7640000610cb084846115f0565b610657919061161d565b60006001600160ff1b03821115610c8557600080fd5b6000610cdb82610cba565b610ced61068b6201518061016d6115f0565b8460800151610cfc9190611825565b610d069190611868565b90506000811361027957604051630e520c3b60e11b815260048101829052602401610760565b600080610d398684610dad565b9050670de0b6b3a7640000811215610d675760405163329e322960e21b815260048101829052602401610760565b6000610d7d610d76878a6117dd565b8990610c50565b90506000610d8a82610eb1565b9050610d968187610c50565b610da09084611805565b9998505050505050505050565b600080610dbf6201518061016d6115f0565b610dc984866115f0565b610dd3919061161d565b905061069a61059282610cba565b600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4691906115c1565b9050428111610e6057670de0b6b3a7640000915050610279565b6000610e6c8585610f04565b90506000610e7a4284611855565b90506000610e8b6106378484610dad565b9050610e9f670de0b6b3a76400008261102b565b945050505050610279565b5092915050565b6000670de0b6b3a76400008203610edb5760405163a9c8b14d60e01b815260040160405180910390fd5b6000610ef9610ef284670de0b6b3a7640000611805565b8490610c50565b90506106578161105a565b604080516002808252606082018352600092839291906020830190803683370190505090508281600081518110610f3d57610f3d6118b2565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd90610f819085906004016118c8565b600060405180830381865afa158015610f9e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fc69190810190611912565b90508363ffffffff1681600081518110610fe257610fe26118b2565b602002602001015182600181518110610ffd57610ffd6118b2565b602002602001015161100f91906119d0565b61101991906119f0565b6001600160d81b031695945050505050565b600080611040670de0b6b3a7640000856115f0565b905082818161105157611051611607565b04949350505050565b600080821361109b5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610760565b670c7d713b49da0000821380156110b95750670f43fc2c04ee000082125b156110dd57670de0b6b3a76400006110d0836110eb565b816108d0576108d0611607565b6102798261120a565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff198501028161112c5761112c611607565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561124b57611242826a0c097ce7bc90715b34b9f160241b8161123c5761123c611607565b0561120a565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126112965772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126112cd576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611315576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312611350576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261138757693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126113be57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126113f35768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261141e57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611453576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611488576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126114bc576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126114f0576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161151957611519611607565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b0391909116815260200190565b6000602082840312156115d357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610279576102796115da565b634e487b7160e01b600052601260045260246000fd5b60008261162c5761162c611607565b500490565b6001600160a01b038116811461164657600080fd5b50565b60008060006060848603121561165e57600080fd5b835161166981611631565b602085015190935061167a81611631565b604085015190925061168b81611631565b809150509250925092565b6000602082840312156116a857600080fd5b8151801515811461065757600080fd5b6000602082840312156116ca57600080fd5b81516001600160801b038116811461065757600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561171a5761171a6116e1565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611748576117486116e1565b604052919050565b80516110e681611631565b6000610120828403121561176e57600080fd5b6117766116f7565b82518152602083015160208201526040830151604082015261179a60608401611750565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b80820182811260008312801582168215821617156117fd576117fd6115da565b505092915050565b8181036000831280158383131683831282161715610eaa57610eaa6115da565b80820260008212600160ff1b84141615611841576118416115da565b8181058314821517610279576102796115da565b81810381811115610279576102796115da565b60008261187757611877611607565b600160ff1b821460001984141615611891576118916115da565b500590565b6000600160ff1b82016118ab576118ab6115da565b5060000390565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101561190657835163ffffffff16835292840192918401916001016118e4565b50909695505050505050565b6000602080838503121561192557600080fd5b82516001600160401b038082111561193c57600080fd5b818501915085601f83011261195057600080fd5b815181811115611962576119626116e1565b8060051b9150611973848301611720565b818152918301840191848101908884111561198d57600080fd5b938501935b838510156119c457845192506001600160d81b03831683146119b45760008081fd5b8282529385019390850190611992565b98975050505050505050565b6001600160d81b03828116828216039080821115610eaa57610eaa6115da565b60006001600160d81b0383811680611a0a57611a0a611607565b9216919091049291505056fea26469706673582212201b1d20c6b62e1bd1c1e9c2141efc4e7fc9619937e7683ea8c3f397244f4a2e0c64736f6c63430008170033";
178
178
 
179
179
  type BoringLpGlpOracleConstructorParams =
180
180
  | [signer?: Signer]