@pendle/core-v2 0.5.1-beta → 0.5.1-beta-2

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/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": "0.5.1-beta",
5
+ "version": "0.5.1-beta-2",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -22,12 +22,126 @@ import type {
22
22
  OnEvent,
23
23
  } from "./common";
24
24
 
25
+ export type MarketStateStruct = {
26
+ totalOt: BigNumberish;
27
+ totalScy: BigNumberish;
28
+ totalLp: BigNumberish;
29
+ oracleRate: BigNumberish;
30
+ treasury: string;
31
+ scalarRoot: BigNumberish;
32
+ feeRateRoot: BigNumberish;
33
+ rateOracleTimeWindow: BigNumberish;
34
+ expiry: BigNumberish;
35
+ reserveFeePercent: BigNumberish;
36
+ lastImpliedRate: BigNumberish;
37
+ lastTradeTime: BigNumberish;
38
+ };
39
+
40
+ export type MarketStateStructOutput = [
41
+ BigNumber,
42
+ BigNumber,
43
+ BigNumber,
44
+ BigNumber,
45
+ string,
46
+ BigNumber,
47
+ BigNumber,
48
+ BigNumber,
49
+ BigNumber,
50
+ BigNumber,
51
+ BigNumber,
52
+ BigNumber
53
+ ] & {
54
+ totalOt: BigNumber;
55
+ totalScy: BigNumber;
56
+ totalLp: BigNumber;
57
+ oracleRate: BigNumber;
58
+ treasury: string;
59
+ scalarRoot: BigNumber;
60
+ feeRateRoot: BigNumber;
61
+ rateOracleTimeWindow: BigNumber;
62
+ expiry: BigNumber;
63
+ reserveFeePercent: BigNumber;
64
+ lastImpliedRate: BigNumber;
65
+ lastTradeTime: BigNumber;
66
+ };
67
+
68
+ export declare namespace IPRouterStatic {
69
+ export type TokenAmountStruct = { token: string; amount: BigNumberish };
70
+
71
+ export type TokenAmountStructOutput = [string, BigNumber] & {
72
+ token: string;
73
+ amount: BigNumber;
74
+ };
75
+
76
+ export type UserMarketInfoStruct = {
77
+ market: string;
78
+ lpBalance: BigNumberish;
79
+ otBalance: IPRouterStatic.TokenAmountStruct;
80
+ scyBalance: IPRouterStatic.TokenAmountStruct;
81
+ assetBalance: IPRouterStatic.TokenAmountStruct;
82
+ };
83
+
84
+ export type UserMarketInfoStructOutput = [
85
+ string,
86
+ BigNumber,
87
+ IPRouterStatic.TokenAmountStructOutput,
88
+ IPRouterStatic.TokenAmountStructOutput,
89
+ IPRouterStatic.TokenAmountStructOutput
90
+ ] & {
91
+ market: string;
92
+ lpBalance: BigNumber;
93
+ otBalance: IPRouterStatic.TokenAmountStructOutput;
94
+ scyBalance: IPRouterStatic.TokenAmountStructOutput;
95
+ assetBalance: IPRouterStatic.TokenAmountStructOutput;
96
+ };
97
+
98
+ export type UserYOInfoStruct = {
99
+ yt: string;
100
+ ot: string;
101
+ ytBalance: BigNumberish;
102
+ otBalance: BigNumberish;
103
+ unclaimedInterest: IPRouterStatic.TokenAmountStruct;
104
+ unclaimedRewards: IPRouterStatic.TokenAmountStruct[];
105
+ };
106
+
107
+ export type UserYOInfoStructOutput = [
108
+ string,
109
+ string,
110
+ BigNumber,
111
+ BigNumber,
112
+ IPRouterStatic.TokenAmountStructOutput,
113
+ IPRouterStatic.TokenAmountStructOutput[]
114
+ ] & {
115
+ yt: string;
116
+ ot: string;
117
+ ytBalance: BigNumber;
118
+ otBalance: BigNumber;
119
+ unclaimedInterest: IPRouterStatic.TokenAmountStructOutput;
120
+ unclaimedRewards: IPRouterStatic.TokenAmountStructOutput[];
121
+ };
122
+
123
+ export type RewardIndexStruct = { rewardToken: string; index: BigNumberish };
124
+
125
+ export type RewardIndexStructOutput = [string, BigNumber] & {
126
+ rewardToken: string;
127
+ index: BigNumber;
128
+ };
129
+ }
130
+
25
131
  export interface RouterStaticInterface extends utils.Interface {
26
132
  contractName: "RouterStatic";
27
133
  functions: {
28
134
  "addLiquidityStatic(address,uint256,uint256)": FunctionFragment;
135
+ "getMarketInfo(address)": FunctionFragment;
29
136
  "getOtImpliedYield(address)": FunctionFragment;
30
137
  "getPendleTokenType(address)": FunctionFragment;
138
+ "getUserMarketInfo(address,address)": FunctionFragment;
139
+ "getUserMarketPositions(address,address[])": FunctionFragment;
140
+ "getUserYOInfo(address,address)": FunctionFragment;
141
+ "getUserYOPositionsByTokens(address,address[])": FunctionFragment;
142
+ "getYO(address)": FunctionFragment;
143
+ "getYOInfo(address)": FunctionFragment;
144
+ "hasYOPosition((address,address,uint256,uint256,(address,uint256),(address,uint256)[]))": FunctionFragment;
31
145
  "marketFactory()": FunctionFragment;
32
146
  "removeLiquidityStatic(address,uint256)": FunctionFragment;
33
147
  "scyIndex(address)": FunctionFragment;
@@ -40,6 +154,10 @@ export interface RouterStaticInterface extends utils.Interface {
40
154
  functionFragment: "addLiquidityStatic",
41
155
  values: [string, BigNumberish, BigNumberish]
42
156
  ): string;
157
+ encodeFunctionData(
158
+ functionFragment: "getMarketInfo",
159
+ values: [string]
160
+ ): string;
43
161
  encodeFunctionData(
44
162
  functionFragment: "getOtImpliedYield",
45
163
  values: [string]
@@ -48,6 +166,28 @@ export interface RouterStaticInterface extends utils.Interface {
48
166
  functionFragment: "getPendleTokenType",
49
167
  values: [string]
50
168
  ): string;
169
+ encodeFunctionData(
170
+ functionFragment: "getUserMarketInfo",
171
+ values: [string, string]
172
+ ): string;
173
+ encodeFunctionData(
174
+ functionFragment: "getUserMarketPositions",
175
+ values: [string, string[]]
176
+ ): string;
177
+ encodeFunctionData(
178
+ functionFragment: "getUserYOInfo",
179
+ values: [string, string]
180
+ ): string;
181
+ encodeFunctionData(
182
+ functionFragment: "getUserYOPositionsByTokens",
183
+ values: [string, string[]]
184
+ ): string;
185
+ encodeFunctionData(functionFragment: "getYO", values: [string]): string;
186
+ encodeFunctionData(functionFragment: "getYOInfo", values: [string]): string;
187
+ encodeFunctionData(
188
+ functionFragment: "hasYOPosition",
189
+ values: [IPRouterStatic.UserYOInfoStruct]
190
+ ): string;
51
191
  encodeFunctionData(
52
192
  functionFragment: "marketFactory",
53
193
  values?: undefined
@@ -74,6 +214,10 @@ export interface RouterStaticInterface extends utils.Interface {
74
214
  functionFragment: "addLiquidityStatic",
75
215
  data: BytesLike
76
216
  ): Result;
217
+ decodeFunctionResult(
218
+ functionFragment: "getMarketInfo",
219
+ data: BytesLike
220
+ ): Result;
77
221
  decodeFunctionResult(
78
222
  functionFragment: "getOtImpliedYield",
79
223
  data: BytesLike
@@ -82,6 +226,28 @@ export interface RouterStaticInterface extends utils.Interface {
82
226
  functionFragment: "getPendleTokenType",
83
227
  data: BytesLike
84
228
  ): Result;
229
+ decodeFunctionResult(
230
+ functionFragment: "getUserMarketInfo",
231
+ data: BytesLike
232
+ ): Result;
233
+ decodeFunctionResult(
234
+ functionFragment: "getUserMarketPositions",
235
+ data: BytesLike
236
+ ): Result;
237
+ decodeFunctionResult(
238
+ functionFragment: "getUserYOInfo",
239
+ data: BytesLike
240
+ ): Result;
241
+ decodeFunctionResult(
242
+ functionFragment: "getUserYOPositionsByTokens",
243
+ data: BytesLike
244
+ ): Result;
245
+ decodeFunctionResult(functionFragment: "getYO", data: BytesLike): Result;
246
+ decodeFunctionResult(functionFragment: "getYOInfo", data: BytesLike): Result;
247
+ decodeFunctionResult(
248
+ functionFragment: "hasYOPosition",
249
+ data: BytesLike
250
+ ): Result;
85
251
  decodeFunctionResult(
86
252
  functionFragment: "marketFactory",
87
253
  data: BytesLike
@@ -142,6 +308,19 @@ export interface RouterStatic extends BaseContract {
142
308
  overrides?: Overrides & { from?: string | Promise<string> }
143
309
  ): Promise<ContractTransaction>;
144
310
 
311
+ getMarketInfo(
312
+ market: string,
313
+ overrides?: CallOverrides
314
+ ): Promise<
315
+ [string, string, MarketStateStructOutput, BigNumber, BigNumber] & {
316
+ ot: string;
317
+ scy: string;
318
+ state: MarketStateStructOutput;
319
+ impliedYield: BigNumber;
320
+ exchangeRate: BigNumber;
321
+ }
322
+ >;
323
+
145
324
  getOtImpliedYield(
146
325
  market: string,
147
326
  overrides?: CallOverrides
@@ -158,6 +337,61 @@ export interface RouterStatic extends BaseContract {
158
337
  }
159
338
  >;
160
339
 
340
+ getUserMarketInfo(
341
+ market: string,
342
+ user: string,
343
+ overrides?: CallOverrides
344
+ ): Promise<
345
+ [IPRouterStatic.UserMarketInfoStructOutput] & {
346
+ userMarketInfo: IPRouterStatic.UserMarketInfoStructOutput;
347
+ }
348
+ >;
349
+
350
+ getUserMarketPositions(
351
+ user: string,
352
+ markets: string[],
353
+ overrides?: CallOverrides
354
+ ): Promise<
355
+ [IPRouterStatic.UserMarketInfoStructOutput[]] & {
356
+ userMarketPositions: IPRouterStatic.UserMarketInfoStructOutput[];
357
+ }
358
+ >;
359
+
360
+ getUserYOInfo(
361
+ token: string,
362
+ user: string,
363
+ overrides?: CallOverrides
364
+ ): Promise<
365
+ [IPRouterStatic.UserYOInfoStructOutput] & {
366
+ userYOInfo: IPRouterStatic.UserYOInfoStructOutput;
367
+ }
368
+ >;
369
+
370
+ getUserYOPositionsByTokens(
371
+ user: string,
372
+ tokens: string[],
373
+ overrides?: CallOverrides
374
+ ): Promise<
375
+ [IPRouterStatic.UserYOInfoStructOutput[]] & {
376
+ userYOPositions: IPRouterStatic.UserYOInfoStructOutput[];
377
+ }
378
+ >;
379
+
380
+ getYO(
381
+ token: string,
382
+ overrides?: CallOverrides
383
+ ): Promise<[string, string] & { ot: string; yt: string }>;
384
+
385
+ getYOInfo(
386
+ token: string,
387
+ overrides?: Overrides & { from?: string | Promise<string> }
388
+ ): Promise<ContractTransaction>;
389
+
390
+ hasYOPosition(
391
+ userYOInfo: IPRouterStatic.UserYOInfoStruct,
392
+ overrides?: CallOverrides
393
+ ): Promise<[boolean] & { hasPosition: boolean }>;
394
+
161
395
  marketFactory(overrides?: CallOverrides): Promise<[string]>;
162
396
 
163
397
  removeLiquidityStatic(
@@ -195,6 +429,19 @@ export interface RouterStatic extends BaseContract {
195
429
  overrides?: Overrides & { from?: string | Promise<string> }
196
430
  ): Promise<ContractTransaction>;
197
431
 
432
+ getMarketInfo(
433
+ market: string,
434
+ overrides?: CallOverrides
435
+ ): Promise<
436
+ [string, string, MarketStateStructOutput, BigNumber, BigNumber] & {
437
+ ot: string;
438
+ scy: string;
439
+ state: MarketStateStructOutput;
440
+ impliedYield: BigNumber;
441
+ exchangeRate: BigNumber;
442
+ }
443
+ >;
444
+
198
445
  getOtImpliedYield(
199
446
  market: string,
200
447
  overrides?: CallOverrides
@@ -211,6 +458,45 @@ export interface RouterStatic extends BaseContract {
211
458
  }
212
459
  >;
213
460
 
461
+ getUserMarketInfo(
462
+ market: string,
463
+ user: string,
464
+ overrides?: CallOverrides
465
+ ): Promise<IPRouterStatic.UserMarketInfoStructOutput>;
466
+
467
+ getUserMarketPositions(
468
+ user: string,
469
+ markets: string[],
470
+ overrides?: CallOverrides
471
+ ): Promise<IPRouterStatic.UserMarketInfoStructOutput[]>;
472
+
473
+ getUserYOInfo(
474
+ token: string,
475
+ user: string,
476
+ overrides?: CallOverrides
477
+ ): Promise<IPRouterStatic.UserYOInfoStructOutput>;
478
+
479
+ getUserYOPositionsByTokens(
480
+ user: string,
481
+ tokens: string[],
482
+ overrides?: CallOverrides
483
+ ): Promise<IPRouterStatic.UserYOInfoStructOutput[]>;
484
+
485
+ getYO(
486
+ token: string,
487
+ overrides?: CallOverrides
488
+ ): Promise<[string, string] & { ot: string; yt: string }>;
489
+
490
+ getYOInfo(
491
+ token: string,
492
+ overrides?: Overrides & { from?: string | Promise<string> }
493
+ ): Promise<ContractTransaction>;
494
+
495
+ hasYOPosition(
496
+ userYOInfo: IPRouterStatic.UserYOInfoStruct,
497
+ overrides?: CallOverrides
498
+ ): Promise<boolean>;
499
+
214
500
  marketFactory(overrides?: CallOverrides): Promise<string>;
215
501
 
216
502
  removeLiquidityStatic(
@@ -254,6 +540,19 @@ export interface RouterStatic extends BaseContract {
254
540
  }
255
541
  >;
256
542
 
543
+ getMarketInfo(
544
+ market: string,
545
+ overrides?: CallOverrides
546
+ ): Promise<
547
+ [string, string, MarketStateStructOutput, BigNumber, BigNumber] & {
548
+ ot: string;
549
+ scy: string;
550
+ state: MarketStateStructOutput;
551
+ impliedYield: BigNumber;
552
+ exchangeRate: BigNumber;
553
+ }
554
+ >;
555
+
257
556
  getOtImpliedYield(
258
557
  market: string,
259
558
  overrides?: CallOverrides
@@ -270,6 +569,51 @@ export interface RouterStatic extends BaseContract {
270
569
  }
271
570
  >;
272
571
 
572
+ getUserMarketInfo(
573
+ market: string,
574
+ user: string,
575
+ overrides?: CallOverrides
576
+ ): Promise<IPRouterStatic.UserMarketInfoStructOutput>;
577
+
578
+ getUserMarketPositions(
579
+ user: string,
580
+ markets: string[],
581
+ overrides?: CallOverrides
582
+ ): Promise<IPRouterStatic.UserMarketInfoStructOutput[]>;
583
+
584
+ getUserYOInfo(
585
+ token: string,
586
+ user: string,
587
+ overrides?: CallOverrides
588
+ ): Promise<IPRouterStatic.UserYOInfoStructOutput>;
589
+
590
+ getUserYOPositionsByTokens(
591
+ user: string,
592
+ tokens: string[],
593
+ overrides?: CallOverrides
594
+ ): Promise<IPRouterStatic.UserYOInfoStructOutput[]>;
595
+
596
+ getYO(
597
+ token: string,
598
+ overrides?: CallOverrides
599
+ ): Promise<[string, string] & { ot: string; yt: string }>;
600
+
601
+ getYOInfo(
602
+ token: string,
603
+ overrides?: CallOverrides
604
+ ): Promise<
605
+ [BigNumber, BigNumber, IPRouterStatic.RewardIndexStructOutput[]] & {
606
+ exchangeRate: BigNumber;
607
+ totalSupply: BigNumber;
608
+ rewardIndexes: IPRouterStatic.RewardIndexStructOutput[];
609
+ }
610
+ >;
611
+
612
+ hasYOPosition(
613
+ userYOInfo: IPRouterStatic.UserYOInfoStruct,
614
+ overrides?: CallOverrides
615
+ ): Promise<boolean>;
616
+
273
617
  marketFactory(overrides?: CallOverrides): Promise<string>;
274
618
 
275
619
  removeLiquidityStatic(
@@ -311,6 +655,11 @@ export interface RouterStatic extends BaseContract {
311
655
  overrides?: Overrides & { from?: string | Promise<string> }
312
656
  ): Promise<BigNumber>;
313
657
 
658
+ getMarketInfo(
659
+ market: string,
660
+ overrides?: CallOverrides
661
+ ): Promise<BigNumber>;
662
+
314
663
  getOtImpliedYield(
315
664
  market: string,
316
665
  overrides?: CallOverrides
@@ -321,6 +670,42 @@ export interface RouterStatic extends BaseContract {
321
670
  overrides?: CallOverrides
322
671
  ): Promise<BigNumber>;
323
672
 
673
+ getUserMarketInfo(
674
+ market: string,
675
+ user: string,
676
+ overrides?: CallOverrides
677
+ ): Promise<BigNumber>;
678
+
679
+ getUserMarketPositions(
680
+ user: string,
681
+ markets: string[],
682
+ overrides?: CallOverrides
683
+ ): Promise<BigNumber>;
684
+
685
+ getUserYOInfo(
686
+ token: string,
687
+ user: string,
688
+ overrides?: CallOverrides
689
+ ): Promise<BigNumber>;
690
+
691
+ getUserYOPositionsByTokens(
692
+ user: string,
693
+ tokens: string[],
694
+ overrides?: CallOverrides
695
+ ): Promise<BigNumber>;
696
+
697
+ getYO(token: string, overrides?: CallOverrides): Promise<BigNumber>;
698
+
699
+ getYOInfo(
700
+ token: string,
701
+ overrides?: Overrides & { from?: string | Promise<string> }
702
+ ): Promise<BigNumber>;
703
+
704
+ hasYOPosition(
705
+ userYOInfo: IPRouterStatic.UserYOInfoStruct,
706
+ overrides?: CallOverrides
707
+ ): Promise<BigNumber>;
708
+
324
709
  marketFactory(overrides?: CallOverrides): Promise<BigNumber>;
325
710
 
326
711
  removeLiquidityStatic(
@@ -357,6 +742,11 @@ export interface RouterStatic extends BaseContract {
357
742
  overrides?: Overrides & { from?: string | Promise<string> }
358
743
  ): Promise<PopulatedTransaction>;
359
744
 
745
+ getMarketInfo(
746
+ market: string,
747
+ overrides?: CallOverrides
748
+ ): Promise<PopulatedTransaction>;
749
+
360
750
  getOtImpliedYield(
361
751
  market: string,
362
752
  overrides?: CallOverrides
@@ -367,6 +757,45 @@ export interface RouterStatic extends BaseContract {
367
757
  overrides?: CallOverrides
368
758
  ): Promise<PopulatedTransaction>;
369
759
 
760
+ getUserMarketInfo(
761
+ market: string,
762
+ user: string,
763
+ overrides?: CallOverrides
764
+ ): Promise<PopulatedTransaction>;
765
+
766
+ getUserMarketPositions(
767
+ user: string,
768
+ markets: string[],
769
+ overrides?: CallOverrides
770
+ ): Promise<PopulatedTransaction>;
771
+
772
+ getUserYOInfo(
773
+ token: string,
774
+ user: string,
775
+ overrides?: CallOverrides
776
+ ): Promise<PopulatedTransaction>;
777
+
778
+ getUserYOPositionsByTokens(
779
+ user: string,
780
+ tokens: string[],
781
+ overrides?: CallOverrides
782
+ ): Promise<PopulatedTransaction>;
783
+
784
+ getYO(
785
+ token: string,
786
+ overrides?: CallOverrides
787
+ ): Promise<PopulatedTransaction>;
788
+
789
+ getYOInfo(
790
+ token: string,
791
+ overrides?: Overrides & { from?: string | Promise<string> }
792
+ ): Promise<PopulatedTransaction>;
793
+
794
+ hasYOPosition(
795
+ userYOInfo: IPRouterStatic.UserYOInfoStruct,
796
+ overrides?: CallOverrides
797
+ ): Promise<PopulatedTransaction>;
798
+
370
799
  marketFactory(overrides?: CallOverrides): Promise<PopulatedTransaction>;
371
800
 
372
801
  removeLiquidityStatic(
@@ -210,7 +210,7 @@ const _abi = [
210
210
  ];
211
211
 
212
212
  const _bytecode =
213
- "0x610120604052306080523480156200001657600080fd5b50604051620012c8380380620012c88339810160408190526200003991620001c2565b806001600160a01b038116620000855760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064015b60405180910390fd5b6001600160a01b031660a052600054610100900460ff16620000ae5760005460ff1615620000b8565b620000b862000178565b6200011d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200007c565b600054610100900460ff1615801562000140576000805461ffff19166101011790555b6001600160a01b0380861660c05284811660e05283166101005280156200016d576000805461ff00191690555b50505050506200021f565b600062000190306200019660201b620007ac1760201c565b15905090565b6001600160a01b03163b151590565b80516001600160a01b0381168114620001bd57600080fd5b919050565b60008060008060808587031215620001d957600080fd5b620001e485620001a5565b9350620001f460208601620001a5565b92506200020460408601620001a5565b91506200021460608601620001a5565b905092959194509250565b60805160a05160c05160e0516101005161102d6200029b600039600081816101b3015261068701526000818160a3015261064701526000818161017f015261059b0152600081816101e70152610a700152600081816102260152818161026f015281816102f80152818161033801526103b4015261102d6000f3fe60806040526004361061007a5760003560e01c806320e21c00146100915780633659cfe6146100e25780634f1ef2861461010257806352d1902d1461011557806376e1df48146101385780638129fc1c146101585780638d94cf0f1461016d578063a25228c9146101a1578063d2e6d1c3146101d557610089565b3661008957610087610209565b005b610087610209565b34801561009d57600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ee57600080fd5b506100876100fd366004610d4b565b61021b565b610087610110366004610d7e565b6102ed565b34801561012157600080fd5b5061012a6103a7565b6040519081526020016100d9565b34801561014457600080fd5b506100c5610153366004610e41565b610455565b34801561016457600080fd5b506100876106e8565b34801561017957600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b3480156101ad57600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b3480156101e157600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b6102196102146107bb565b6107d7565b565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561026d5760405162461bcd60e51b815260040161026490610e6b565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661029f610800565b6001600160a01b0316146102c55760405162461bcd60e51b815260040161026490610ea5565b6102ce8161081c565b604080516000808252602082019092526102ea91839190610876565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103365760405162461bcd60e51b815260040161026490610e6b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610368610800565b6001600160a01b03161461038e5760405162461bcd60e51b815260040161026490610ea5565b6103978261081c565b6103a382826001610876565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104425760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610264565b50600080516020610fb183398151915290565b60006001600160e01b0319821663ab308f7960e01b148061048657506001600160e01b031982166361d67b9f60e01b145b806104a157506001600160e01b03198216630f15f71560e11b145b806104bb57506001600160e01b03198216623905e760e01b145b806104d657506001600160e01b031982166348e4c51560e11b145b806104f157506001600160e01b031982166338b7217760e21b145b8061050c57506001600160e01b03198216631aa18c8560e11b145b8061052757506001600160e01b03198216631d4b2e4560e31b145b8061054257506001600160e01b03198216637a6d749b60e01b145b8061055d57506001600160e01b03198216637fbd7fc760e01b145b8061057857506001600160e01b03198216633df3d5f160e11b145b8061059357506001600160e01b0319821663f6fb26e360e01b145b156105bf57507f0000000000000000000000000000000000000000000000000000000000000000919050565b6001600160e01b03198216636c66135560e11b14806105ee57506001600160e01b031982166321aab85960e01b145b8061060957506001600160e01b03198216630109d6b960e21b145b8061062457506001600160e01b03198216635d18993360e11b145b8061063f57506001600160e01b0319821663066657e160e31b145b1561066b57507f0000000000000000000000000000000000000000000000000000000000000000919050565b6001600160e01b03198216637d241f3960e11b14156106ab57507f0000000000000000000000000000000000000000000000000000000000000000919050565b60405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206d61726b65742073696760701b6044820152606401610264565b600054610100900460ff166107035760005460ff161561070b565b61070b6109f0565b61076e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610264565b600054610100900460ff16158015610790576000805461ffff19166101011790555b610798610a01565b80156102ea576000805461ff001916905550565b6001600160a01b03163b151590565b60006107d26000356001600160e01b031916610455565b905090565b3660008037600080366000845af43d6000803e8080156107f6573d6000f35b3d6000fd5b505050565b600080516020610fb1833981519152546001600160a01b031690565b610824610a6c565b6001600160a01b0316336001600160a01b0316146102ea5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610264565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156108a9576107fb83610aff565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108e257600080fd5b505afa925050508015610912575060408051601f3d908101601f1916820190925261090f91810190610edf565b60015b6109755760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610264565b600080516020610fb183398151915281146109e45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610264565b506107fb838383610b99565b60006109fb306107ac565b15905090565b600054610100900460ff166102195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610264565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015610ac757600080fd5b505afa158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d29190610ef8565b610b08816107ac565b610b6a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610264565b600080516020610fb183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610ba283610bc4565b600082511180610baf5750805b156107fb57610bbe8383610c04565b50505050565b610bcd81610aff565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610c0f836107ac565b610c6a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610264565b600080846001600160a01b031684604051610c859190610f41565b600060405180830381855af49150503d8060008114610cc0576040519150601f19603f3d011682016040523d82523d6000602084013e610cc5565b606091505b5091509150610ced8282604051806060016040528060278152602001610fd160279139610cf6565b95945050505050565b60608315610d05575081610d2f565b825115610d155782518084602001fd5b8160405162461bcd60e51b81526004016102649190610f5d565b9392505050565b6001600160a01b03811681146102ea57600080fd5b600060208284031215610d5d57600080fd5b8135610d2f81610d36565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610d9157600080fd5b8235610d9c81610d36565b915060208301356001600160401b0380821115610db857600080fd5b818501915085601f830112610dcc57600080fd5b813581811115610dde57610dde610d68565b604051601f8201601f19908116603f01168101908382118183101715610e0657610e06610d68565b81604052828152886020848701011115610e1f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610e5357600080fd5b81356001600160e01b031981168114610d2f57600080fd5b6020808252602c90820152600080516020610f9183398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020610f9183398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215610ef157600080fd5b5051919050565b600060208284031215610f0a57600080fd5b8151610d2f81610d36565b60005b83811015610f30578181015183820152602001610f18565b83811115610bbe5750506000910152565b60008251610f53818460208701610f15565b9190910192915050565b6020815260008251806020840152610f7c816040850160208701610f15565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e299ed55d602bfb9b1896b8c7f38d3950d73023f57bd71e420533d6b7542d36f64736f6c63430008090033";
213
+ "0x610120604052306080523480156200001657600080fd5b50604051620012c8380380620012c88339810160408190526200003991620001c2565b806001600160a01b038116620000855760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064015b60405180910390fd5b6001600160a01b031660a052600054610100900460ff16620000ae5760005460ff1615620000b8565b620000b862000178565b6200011d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200007c565b600054610100900460ff1615801562000140576000805461ffff19166101011790555b6001600160a01b0380861660c05284811660e05283166101005280156200016d576000805461ff00191690555b50505050506200021f565b600062000190306200019660201b620007ac1760201c565b15905090565b6001600160a01b03163b151590565b80516001600160a01b0381168114620001bd57600080fd5b919050565b60008060008060808587031215620001d957600080fd5b620001e485620001a5565b9350620001f460208601620001a5565b92506200020460408601620001a5565b91506200021460608601620001a5565b905092959194509250565b60805160a05160c05160e0516101005161102d6200029b600039600081816101b3015261068701526000818160a3015261064701526000818161017f015261059b0152600081816101e70152610a700152600081816102260152818161026f015281816102f80152818161033801526103b4015261102d6000f3fe60806040526004361061007a5760003560e01c806320e21c00146100915780633659cfe6146100e25780634f1ef2861461010257806352d1902d1461011557806376e1df48146101385780638129fc1c146101585780638d94cf0f1461016d578063a25228c9146101a1578063d2e6d1c3146101d557610089565b3661008957610087610209565b005b610087610209565b34801561009d57600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ee57600080fd5b506100876100fd366004610d4b565b61021b565b610087610110366004610d7e565b6102ed565b34801561012157600080fd5b5061012a6103a7565b6040519081526020016100d9565b34801561014457600080fd5b506100c5610153366004610e41565b610455565b34801561016457600080fd5b506100876106e8565b34801561017957600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b3480156101ad57600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b3480156101e157600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b6102196102146107bb565b6107d7565b565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561026d5760405162461bcd60e51b815260040161026490610e6b565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661029f610800565b6001600160a01b0316146102c55760405162461bcd60e51b815260040161026490610ea5565b6102ce8161081c565b604080516000808252602082019092526102ea91839190610876565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103365760405162461bcd60e51b815260040161026490610e6b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610368610800565b6001600160a01b03161461038e5760405162461bcd60e51b815260040161026490610ea5565b6103978261081c565b6103a382826001610876565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104425760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610264565b50600080516020610fb183398151915290565b60006001600160e01b0319821663ab308f7960e01b148061048657506001600160e01b031982166361d67b9f60e01b145b806104a157506001600160e01b03198216630f15f71560e11b145b806104bb57506001600160e01b03198216623905e760e01b145b806104d657506001600160e01b031982166348e4c51560e11b145b806104f157506001600160e01b031982166338b7217760e21b145b8061050c57506001600160e01b03198216631aa18c8560e11b145b8061052757506001600160e01b03198216631d4b2e4560e31b145b8061054257506001600160e01b03198216637a6d749b60e01b145b8061055d57506001600160e01b03198216637fbd7fc760e01b145b8061057857506001600160e01b03198216633df3d5f160e11b145b8061059357506001600160e01b0319821663f6fb26e360e01b145b156105bf57507f0000000000000000000000000000000000000000000000000000000000000000919050565b6001600160e01b03198216636c66135560e11b14806105ee57506001600160e01b031982166321aab85960e01b145b8061060957506001600160e01b03198216630109d6b960e21b145b8061062457506001600160e01b03198216635d18993360e11b145b8061063f57506001600160e01b0319821663066657e160e31b145b1561066b57507f0000000000000000000000000000000000000000000000000000000000000000919050565b6001600160e01b03198216637d241f3960e11b14156106ab57507f0000000000000000000000000000000000000000000000000000000000000000919050565b60405162461bcd60e51b8152602060048201526012602482015271696e76616c6964206d61726b65742073696760701b6044820152606401610264565b600054610100900460ff166107035760005460ff161561070b565b61070b6109f0565b61076e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610264565b600054610100900460ff16158015610790576000805461ffff19166101011790555b610798610a01565b80156102ea576000805461ff001916905550565b6001600160a01b03163b151590565b60006107d26000356001600160e01b031916610455565b905090565b3660008037600080366000845af43d6000803e8080156107f6573d6000f35b3d6000fd5b505050565b600080516020610fb1833981519152546001600160a01b031690565b610824610a6c565b6001600160a01b0316336001600160a01b0316146102ea5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610264565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156108a9576107fb83610aff565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108e257600080fd5b505afa925050508015610912575060408051601f3d908101601f1916820190925261090f91810190610edf565b60015b6109755760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610264565b600080516020610fb183398151915281146109e45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610264565b506107fb838383610b99565b60006109fb306107ac565b15905090565b600054610100900460ff166102195760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610264565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015610ac757600080fd5b505afa158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d29190610ef8565b610b08816107ac565b610b6a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610264565b600080516020610fb183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610ba283610bc4565b600082511180610baf5750805b156107fb57610bbe8383610c04565b50505050565b610bcd81610aff565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610c0f836107ac565b610c6a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610264565b600080846001600160a01b031684604051610c859190610f41565b600060405180830381855af49150503d8060008114610cc0576040519150601f19603f3d011682016040523d82523d6000602084013e610cc5565b606091505b5091509150610ced8282604051806060016040528060278152602001610fd160279139610cf6565b95945050505050565b60608315610d05575081610d2f565b825115610d155782518084602001fd5b8160405162461bcd60e51b81526004016102649190610f5d565b9392505050565b6001600160a01b03811681146102ea57600080fd5b600060208284031215610d5d57600080fd5b8135610d2f81610d36565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610d9157600080fd5b8235610d9c81610d36565b915060208301356001600160401b0380821115610db857600080fd5b818501915085601f830112610dcc57600080fd5b813581811115610dde57610dde610d68565b604051601f8201601f19908116603f01168101908382118183101715610e0657610e06610d68565b81604052828152886020848701011115610e1f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610e5357600080fd5b81356001600160e01b031981168114610d2f57600080fd5b6020808252602c90820152600080516020610f9183398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020610f9183398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215610ef157600080fd5b5051919050565b600060208284031215610f0a57600080fd5b8151610d2f81610d36565b60005b83811015610f30578181015183820152602001610f18565b83811115610bbe5750506000910152565b60008251610f53818460208701610f15565b9190910192915050565b6020815260008251806020840152610f7c816040850160208701610f15565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f91b8d3b5354e84ef5d509dc0c0025faf8b222981a7614d564c4b0fdfc4e876164736f6c63430008090033";
214
214
 
215
215
  type PendleRouterConstructorParams =
216
216
  | [signer?: Signer]