@pendle/core-v2 0.2.2 → 0.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 (87) hide show
  1. package/contracts/SuperComposableYield/ISuperComposableYield.sol +1 -5
  2. package/contracts/SuperComposableYield/implementations/RewardManager.sol +2 -2
  3. package/contracts/SuperComposableYield/implementations/SCYBase.sol +2 -2
  4. package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +4 -7
  5. package/contracts/core/PendleMarket.sol +24 -22
  6. package/contracts/core/PendleMarketFactory.sol +7 -6
  7. package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +1 -1
  8. package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +2 -7
  9. package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +2 -7
  10. package/contracts/core/PendleYieldContractFactory.sol +12 -7
  11. package/contracts/core/PendleYieldToken.sol +93 -55
  12. package/contracts/core/router/PendleRouterCoreUpg.sol +35 -21
  13. package/contracts/core/router/PendleRouterProxy.sol +12 -6
  14. package/contracts/core/router/{PendleRouterStatic.sol → PendleRouterStaticUpg.sol} +43 -18
  15. package/contracts/core/router/PendleRouterYTUpg.sol +47 -13
  16. package/contracts/core/router/base/PendleRouterOTBaseUpg.sol +22 -32
  17. package/contracts/core/router/base/PendleRouterSCYAndForgeBaseUpg.sol +1 -1
  18. package/contracts/core/router/base/PendleRouterYTBaseUpg.sol +62 -43
  19. package/contracts/interfaces/IPMarket.sol +4 -2
  20. package/contracts/interfaces/{IPPermissionsV2.sol → IPPermissionsV2Upg.sol} +1 -1
  21. package/contracts/interfaces/IPRouterCore.sol +24 -21
  22. package/contracts/interfaces/IPRouterStatic.sol +10 -1
  23. package/contracts/interfaces/IPRouterYT.sol +16 -4
  24. package/contracts/interfaces/IPYieldContractFactory.sol +4 -0
  25. package/contracts/interfaces/IPYieldToken.sol +2 -4
  26. package/contracts/libraries/SCYIndex.sol +3 -3
  27. package/contracts/libraries/math/LogExpMath.sol +1 -90
  28. package/contracts/libraries/math/MarketApproxLib.sol +336 -94
  29. package/contracts/libraries/math/MarketMathAux.sol +101 -0
  30. package/contracts/libraries/math/MarketMathCore.sol +423 -0
  31. package/contracts/libraries/math/Math.sol +144 -0
  32. package/contracts/{core/misc → periphery}/PendleJoeSwapHelperUpg.sol +2 -2
  33. package/contracts/periphery/{PermissionsV2.sol → PermissionsV2Upg.sol} +2 -2
  34. package/package.json +1 -1
  35. package/typechain-types/IPMarket.ts +22 -11
  36. package/typechain-types/IPRouterCore.ts +68 -58
  37. package/typechain-types/IPRouterStatic.ts +52 -0
  38. package/typechain-types/IPRouterYT.ts +96 -12
  39. package/typechain-types/IPYieldContractFactory.ts +32 -0
  40. package/typechain-types/IPYieldToken.ts +14 -48
  41. package/typechain-types/IPermissionsV2Upg.ts +87 -0
  42. package/typechain-types/ISuperComposableYield.ts +3 -11
  43. package/typechain-types/OwnableUpgradeable.ts +165 -0
  44. package/typechain-types/PendleAaveV3SCY.ts +3 -11
  45. package/typechain-types/PendleBenQiErc20SCY.ts +3 -11
  46. package/typechain-types/PendleBtrflyScy.ts +3 -11
  47. package/typechain-types/PendleMarket.ts +22 -11
  48. package/typechain-types/PendleRouterCoreUpg.ts +66 -48
  49. package/typechain-types/PendleRouterProxy.ts +15 -118
  50. package/typechain-types/PendleRouterStaticUpg.ts +92 -0
  51. package/typechain-types/PendleRouterYTUpg.ts +96 -12
  52. package/typechain-types/PendleYearnVaultScy.ts +3 -11
  53. package/typechain-types/PendleYieldContractFactory.ts +40 -113
  54. package/typechain-types/PendleYieldToken.ts +106 -7
  55. package/typechain-types/PermissionsV2Upg.ts +87 -0
  56. package/typechain-types/SCYBase.ts +3 -11
  57. package/typechain-types/SCYBaseWithRewards.ts +3 -11
  58. package/typechain-types/factories/IPMarket__factory.ts +8 -2
  59. package/typechain-types/factories/IPRouterCore__factory.ts +38 -23
  60. package/typechain-types/factories/IPRouterStatic__factory.ts +29 -0
  61. package/typechain-types/factories/IPRouterYT__factory.ts +65 -6
  62. package/typechain-types/factories/IPYieldContractFactory__factory.ts +38 -0
  63. package/typechain-types/factories/IPYieldToken__factory.ts +1 -20
  64. package/typechain-types/factories/IPermissionsV2Upg__factory.ts +39 -0
  65. package/typechain-types/factories/ISuperComposableYield__factory.ts +0 -5
  66. package/typechain-types/factories/OwnableUpgradeable__factory.ts +78 -0
  67. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -6
  68. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +1 -6
  69. package/typechain-types/factories/PendleBtrflyScy__factory.ts +1 -6
  70. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  71. package/typechain-types/factories/PendleMarket__factory.ts +9 -3
  72. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +26 -11
  73. package/typechain-types/factories/PendleRouterProxy__factory.ts +14 -67
  74. package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +63 -17
  75. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +66 -7
  76. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +1 -6
  77. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +39 -54
  78. package/typechain-types/factories/PendleYieldToken__factory.ts +53 -2
  79. package/typechain-types/factories/PermissionsV2Upg__factory.ts +39 -0
  80. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +0 -5
  81. package/typechain-types/factories/SCYBase__factory.ts +0 -5
  82. package/typechain-types/hardhat.d.ts +26 -53
  83. package/typechain-types/index.ts +8 -14
  84. package/contracts/core/misc/BoringOwnable.sol +0 -62
  85. package/contracts/core/misc/BoringOwnableUpg.sol +0 -64
  86. package/contracts/libraries/math/FixedPoint.sol +0 -205
  87. package/contracts/libraries/math/MarketMathLib.sol +0 -614
@@ -0,0 +1,87 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ BaseContract,
6
+ BigNumber,
7
+ BytesLike,
8
+ CallOverrides,
9
+ PopulatedTransaction,
10
+ Signer,
11
+ utils,
12
+ } from "ethers";
13
+ import { FunctionFragment, Result } from "@ethersproject/abi";
14
+ import { Listener, Provider } from "@ethersproject/providers";
15
+ import type {
16
+ TypedEventFilter,
17
+ TypedEvent,
18
+ TypedListener,
19
+ OnEvent,
20
+ } from "./common";
21
+
22
+ export interface PermissionsV2UpgInterface extends utils.Interface {
23
+ contractName: "PermissionsV2Upg";
24
+ functions: {
25
+ "governanceManager()": FunctionFragment;
26
+ };
27
+
28
+ encodeFunctionData(
29
+ functionFragment: "governanceManager",
30
+ values?: undefined
31
+ ): string;
32
+
33
+ decodeFunctionResult(
34
+ functionFragment: "governanceManager",
35
+ data: BytesLike
36
+ ): Result;
37
+
38
+ events: {};
39
+ }
40
+
41
+ export interface PermissionsV2Upg extends BaseContract {
42
+ contractName: "PermissionsV2Upg";
43
+ connect(signerOrProvider: Signer | Provider | string): this;
44
+ attach(addressOrName: string): this;
45
+ deployed(): Promise<this>;
46
+
47
+ interface: PermissionsV2UpgInterface;
48
+
49
+ queryFilter<TEvent extends TypedEvent>(
50
+ event: TypedEventFilter<TEvent>,
51
+ fromBlockOrBlockhash?: string | number | undefined,
52
+ toBlock?: string | number | undefined
53
+ ): Promise<Array<TEvent>>;
54
+
55
+ listeners<TEvent extends TypedEvent>(
56
+ eventFilter?: TypedEventFilter<TEvent>
57
+ ): Array<TypedListener<TEvent>>;
58
+ listeners(eventName?: string): Array<Listener>;
59
+ removeAllListeners<TEvent extends TypedEvent>(
60
+ eventFilter: TypedEventFilter<TEvent>
61
+ ): this;
62
+ removeAllListeners(eventName?: string): this;
63
+ off: OnEvent<this>;
64
+ on: OnEvent<this>;
65
+ once: OnEvent<this>;
66
+ removeListener: OnEvent<this>;
67
+
68
+ functions: {
69
+ governanceManager(overrides?: CallOverrides): Promise<[string]>;
70
+ };
71
+
72
+ governanceManager(overrides?: CallOverrides): Promise<string>;
73
+
74
+ callStatic: {
75
+ governanceManager(overrides?: CallOverrides): Promise<string>;
76
+ };
77
+
78
+ filters: {};
79
+
80
+ estimateGas: {
81
+ governanceManager(overrides?: CallOverrides): Promise<BigNumber>;
82
+ };
83
+
84
+ populateTransaction: {
85
+ governanceManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
86
+ };
87
+ }
@@ -38,7 +38,7 @@ export interface SCYBaseInterface extends utils.Interface {
38
38
  "mint(address,address,uint256)": FunctionFragment;
39
39
  "name()": FunctionFragment;
40
40
  "redeem(address,address,uint256)": FunctionFragment;
41
- "redeemReward(address,address)": FunctionFragment;
41
+ "redeemReward(address)": FunctionFragment;
42
42
  "scyIndexCurrent()": FunctionFragment;
43
43
  "scyIndexStored()": FunctionFragment;
44
44
  "symbol()": FunctionFragment;
@@ -94,7 +94,7 @@ export interface SCYBaseInterface extends utils.Interface {
94
94
  ): string;
95
95
  encodeFunctionData(
96
96
  functionFragment: "redeemReward",
97
- values: [string, string]
97
+ values: [string]
98
98
  ): string;
99
99
  encodeFunctionData(
100
100
  functionFragment: "scyIndexCurrent",
@@ -298,7 +298,6 @@ export interface SCYBase extends BaseContract {
298
298
 
299
299
  redeemReward(
300
300
  user: string,
301
- receiver: string,
302
301
  overrides?: Overrides & { from?: string | Promise<string> }
303
302
  ): Promise<ContractTransaction>;
304
303
 
@@ -391,7 +390,6 @@ export interface SCYBase extends BaseContract {
391
390
 
392
391
  redeemReward(
393
392
  user: string,
394
- receiver: string,
395
393
  overrides?: Overrides & { from?: string | Promise<string> }
396
394
  ): Promise<ContractTransaction>;
397
395
 
@@ -483,11 +481,7 @@ export interface SCYBase extends BaseContract {
483
481
  overrides?: CallOverrides
484
482
  ): Promise<BigNumber>;
485
483
 
486
- redeemReward(
487
- user: string,
488
- receiver: string,
489
- overrides?: CallOverrides
490
- ): Promise<BigNumber[]>;
484
+ redeemReward(user: string, overrides?: CallOverrides): Promise<BigNumber[]>;
491
485
 
492
486
  scyIndexCurrent(overrides?: CallOverrides): Promise<BigNumber>;
493
487
 
@@ -597,7 +591,6 @@ export interface SCYBase extends BaseContract {
597
591
 
598
592
  redeemReward(
599
593
  user: string,
600
- receiver: string,
601
594
  overrides?: Overrides & { from?: string | Promise<string> }
602
595
  ): Promise<BigNumber>;
603
596
 
@@ -695,7 +688,6 @@ export interface SCYBase extends BaseContract {
695
688
 
696
689
  redeemReward(
697
690
  user: string,
698
- receiver: string,
699
691
  overrides?: Overrides & { from?: string | Promise<string> }
700
692
  ): Promise<PopulatedTransaction>;
701
693
 
@@ -39,7 +39,7 @@ export interface SCYBaseWithRewardsInterface extends utils.Interface {
39
39
  "mint(address,address,uint256)": FunctionFragment;
40
40
  "name()": FunctionFragment;
41
41
  "redeem(address,address,uint256)": FunctionFragment;
42
- "redeemReward(address,address)": FunctionFragment;
42
+ "redeemReward(address)": FunctionFragment;
43
43
  "scyIndexCurrent()": FunctionFragment;
44
44
  "scyIndexStored()": FunctionFragment;
45
45
  "symbol()": FunctionFragment;
@@ -100,7 +100,7 @@ export interface SCYBaseWithRewardsInterface extends utils.Interface {
100
100
  ): string;
101
101
  encodeFunctionData(
102
102
  functionFragment: "redeemReward",
103
- values: [string, string]
103
+ values: [string]
104
104
  ): string;
105
105
  encodeFunctionData(
106
106
  functionFragment: "scyIndexCurrent",
@@ -320,7 +320,6 @@ export interface SCYBaseWithRewards extends BaseContract {
320
320
 
321
321
  redeemReward(
322
322
  user: string,
323
- receiver: string,
324
323
  overrides?: Overrides & { from?: string | Promise<string> }
325
324
  ): Promise<ContractTransaction>;
326
325
 
@@ -431,7 +430,6 @@ export interface SCYBaseWithRewards extends BaseContract {
431
430
 
432
431
  redeemReward(
433
432
  user: string,
434
- receiver: string,
435
433
  overrides?: Overrides & { from?: string | Promise<string> }
436
434
  ): Promise<ContractTransaction>;
437
435
 
@@ -538,11 +536,7 @@ export interface SCYBaseWithRewards extends BaseContract {
538
536
  overrides?: CallOverrides
539
537
  ): Promise<BigNumber>;
540
538
 
541
- redeemReward(
542
- user: string,
543
- receiver: string,
544
- overrides?: CallOverrides
545
- ): Promise<BigNumber[]>;
539
+ redeemReward(user: string, overrides?: CallOverrides): Promise<BigNumber[]>;
546
540
 
547
541
  scyIndexCurrent(overrides?: CallOverrides): Promise<BigNumber>;
548
542
 
@@ -665,7 +659,6 @@ export interface SCYBaseWithRewards extends BaseContract {
665
659
 
666
660
  redeemReward(
667
661
  user: string,
668
- receiver: string,
669
662
  overrides?: Overrides & { from?: string | Promise<string> }
670
663
  ): Promise<BigNumber>;
671
664
 
@@ -774,7 +767,6 @@ export interface SCYBaseWithRewards extends BaseContract {
774
767
 
775
768
  redeemReward(
776
769
  user: string,
777
- receiver: string,
778
770
  overrides?: Overrides & { from?: string | Promise<string> }
779
771
  ): Promise<PopulatedTransaction>;
780
772
 
@@ -260,7 +260,13 @@ const _abi = [
260
260
  type: "function",
261
261
  },
262
262
  {
263
- inputs: [],
263
+ inputs: [
264
+ {
265
+ internalType: "bool",
266
+ name: "updateRateOracle",
267
+ type: "bool",
268
+ },
269
+ ],
264
270
  name: "readState",
265
271
  outputs: [
266
272
  {
@@ -321,7 +327,7 @@ const _abi = [
321
327
  type: "uint256",
322
328
  },
323
329
  ],
324
- internalType: "struct MarketParameters",
330
+ internalType: "struct MarketState",
325
331
  name: "market",
326
332
  type: "tuple",
327
333
  },
@@ -39,17 +39,17 @@ const _abi = [
39
39
  outputs: [
40
40
  {
41
41
  internalType: "uint256",
42
- name: "netLpOut",
42
+ name: "",
43
43
  type: "uint256",
44
44
  },
45
45
  {
46
46
  internalType: "uint256",
47
- name: "scyUsed",
47
+ name: "",
48
48
  type: "uint256",
49
49
  },
50
50
  {
51
51
  internalType: "uint256",
52
- name: "otUsed",
52
+ name: "",
53
53
  type: "uint256",
54
54
  },
55
55
  ],
@@ -88,7 +88,7 @@ const _abi = [
88
88
  outputs: [
89
89
  {
90
90
  internalType: "uint256",
91
- name: "netScyOut",
91
+ name: "",
92
92
  type: "uint256",
93
93
  },
94
94
  ],
@@ -127,7 +127,7 @@ const _abi = [
127
127
  outputs: [
128
128
  {
129
129
  internalType: "uint256",
130
- name: "netYoOut",
130
+ name: "",
131
131
  type: "uint256",
132
132
  },
133
133
  ],
@@ -166,7 +166,7 @@ const _abi = [
166
166
  outputs: [
167
167
  {
168
168
  internalType: "uint256",
169
- name: "netRawTokenOut",
169
+ name: "",
170
170
  type: "uint256",
171
171
  },
172
172
  ],
@@ -205,7 +205,7 @@ const _abi = [
205
205
  outputs: [
206
206
  {
207
207
  internalType: "uint256",
208
- name: "netRawTokenOut",
208
+ name: "",
209
209
  type: "uint256",
210
210
  },
211
211
  ],
@@ -244,12 +244,12 @@ const _abi = [
244
244
  outputs: [
245
245
  {
246
246
  internalType: "uint256",
247
- name: "netScyOut",
247
+ name: "",
248
248
  type: "uint256",
249
249
  },
250
250
  {
251
251
  internalType: "uint256",
252
- name: "netOtOut",
252
+ name: "",
253
253
  type: "uint256",
254
254
  },
255
255
  ],
@@ -322,7 +322,7 @@ const _abi = [
322
322
  outputs: [
323
323
  {
324
324
  internalType: "uint256",
325
- name: "netScyOut",
325
+ name: "",
326
326
  type: "uint256",
327
327
  },
328
328
  ],
@@ -353,17 +353,22 @@ const _abi = [
353
353
  },
354
354
  {
355
355
  internalType: "uint256",
356
- name: "minOtOut",
356
+ name: "otOutguessMin",
357
+ type: "uint256",
358
+ },
359
+ {
360
+ internalType: "uint256",
361
+ name: "otOutguessMax",
357
362
  type: "uint256",
358
363
  },
359
364
  {
360
365
  internalType: "uint256",
361
- name: "netOtOutGuessMin",
366
+ name: "maxIteration",
362
367
  type: "uint256",
363
368
  },
364
369
  {
365
370
  internalType: "uint256",
366
- name: "netOtOutGuessMax",
371
+ name: "eps",
367
372
  type: "uint256",
368
373
  },
369
374
  ],
@@ -397,17 +402,22 @@ const _abi = [
397
402
  },
398
403
  {
399
404
  internalType: "uint256",
400
- name: "minOtOut",
405
+ name: "otOutguessMin",
401
406
  type: "uint256",
402
407
  },
403
408
  {
404
409
  internalType: "uint256",
405
- name: "netOtOutGuessMin",
410
+ name: "otOutguessMax",
406
411
  type: "uint256",
407
412
  },
408
413
  {
409
414
  internalType: "uint256",
410
- name: "netOtOutGuessMax",
415
+ name: "maxIteration",
416
+ type: "uint256",
417
+ },
418
+ {
419
+ internalType: "uint256",
420
+ name: "eps",
411
421
  type: "uint256",
412
422
  },
413
423
  ],
@@ -415,7 +425,7 @@ const _abi = [
415
425
  outputs: [
416
426
  {
417
427
  internalType: "uint256",
418
- name: "netOtOut",
428
+ name: "",
419
429
  type: "uint256",
420
430
  },
421
431
  ],
@@ -436,22 +446,27 @@ const _abi = [
436
446
  },
437
447
  {
438
448
  internalType: "uint256",
439
- name: "maxOtIn",
449
+ name: "exactScyOut",
440
450
  type: "uint256",
441
451
  },
442
452
  {
443
453
  internalType: "uint256",
444
- name: "exactScyOut",
454
+ name: "otInGuessMin",
445
455
  type: "uint256",
446
456
  },
447
457
  {
448
458
  internalType: "uint256",
449
- name: "netOtInGuessMin",
459
+ name: "otInGuessMax",
450
460
  type: "uint256",
451
461
  },
452
462
  {
453
463
  internalType: "uint256",
454
- name: "netOtInGuessMax",
464
+ name: "maxIteration",
465
+ type: "uint256",
466
+ },
467
+ {
468
+ internalType: "uint256",
469
+ name: "eps",
455
470
  type: "uint256",
456
471
  },
457
472
  ],
@@ -459,7 +474,7 @@ const _abi = [
459
474
  outputs: [
460
475
  {
461
476
  internalType: "uint256",
462
- name: "netOtIn",
477
+ name: "",
463
478
  type: "uint256",
464
479
  },
465
480
  ],
@@ -493,7 +508,7 @@ const _abi = [
493
508
  outputs: [
494
509
  {
495
510
  internalType: "uint256",
496
- name: "netScyIn",
511
+ name: "",
497
512
  type: "uint256",
498
513
  },
499
514
  ],
@@ -68,6 +68,35 @@ const _abi = [
68
68
  stateMutability: "view",
69
69
  type: "function",
70
70
  },
71
+ {
72
+ inputs: [
73
+ {
74
+ internalType: "address",
75
+ name: "token",
76
+ type: "address",
77
+ },
78
+ ],
79
+ name: "getPendleTokenType",
80
+ outputs: [
81
+ {
82
+ internalType: "bool",
83
+ name: "isOT",
84
+ type: "bool",
85
+ },
86
+ {
87
+ internalType: "bool",
88
+ name: "isYT",
89
+ type: "bool",
90
+ },
91
+ {
92
+ internalType: "bool",
93
+ name: "isMarket",
94
+ type: "bool",
95
+ },
96
+ ],
97
+ stateMutability: "view",
98
+ type: "function",
99
+ },
71
100
  {
72
101
  inputs: [
73
102
  {
@@ -54,17 +54,22 @@ const _abi = [
54
54
  },
55
55
  {
56
56
  internalType: "uint256",
57
- name: "minYtOut",
57
+ name: "netYtOutGuessMin",
58
58
  type: "uint256",
59
59
  },
60
60
  {
61
61
  internalType: "uint256",
62
- name: "netYtOutGuessMin",
62
+ name: "netYtOutGuessMax",
63
63
  type: "uint256",
64
64
  },
65
65
  {
66
66
  internalType: "uint256",
67
- name: "netYtOutGuessMax",
67
+ name: "maxIteration",
68
+ type: "uint256",
69
+ },
70
+ {
71
+ internalType: "uint256",
72
+ name: "eps",
68
73
  type: "uint256",
69
74
  },
70
75
  ],
@@ -98,17 +103,22 @@ const _abi = [
98
103
  },
99
104
  {
100
105
  internalType: "uint256",
101
- name: "minYtOut",
106
+ name: "netYtOutGuessMin",
102
107
  type: "uint256",
103
108
  },
104
109
  {
105
110
  internalType: "uint256",
106
- name: "netYtOutGuessMin",
111
+ name: "netYtOutGuessMax",
107
112
  type: "uint256",
108
113
  },
109
114
  {
110
115
  internalType: "uint256",
111
- name: "netYtOutGuessMax",
116
+ name: "maxIteration",
117
+ type: "uint256",
118
+ },
119
+ {
120
+ internalType: "uint256",
121
+ name: "eps",
112
122
  type: "uint256",
113
123
  },
114
124
  ],
@@ -230,6 +240,55 @@ const _abi = [
230
240
  stateMutability: "nonpayable",
231
241
  type: "function",
232
242
  },
243
+ {
244
+ inputs: [
245
+ {
246
+ internalType: "address",
247
+ name: "receiver",
248
+ type: "address",
249
+ },
250
+ {
251
+ internalType: "address",
252
+ name: "market",
253
+ type: "address",
254
+ },
255
+ {
256
+ internalType: "uint256",
257
+ name: "exactScyOut",
258
+ type: "uint256",
259
+ },
260
+ {
261
+ internalType: "uint256",
262
+ name: "netYtInGuessMin",
263
+ type: "uint256",
264
+ },
265
+ {
266
+ internalType: "uint256",
267
+ name: "netYtInGuessMax",
268
+ type: "uint256",
269
+ },
270
+ {
271
+ internalType: "uint256",
272
+ name: "maxIteration",
273
+ type: "uint256",
274
+ },
275
+ {
276
+ internalType: "uint256",
277
+ name: "eps",
278
+ type: "uint256",
279
+ },
280
+ ],
281
+ name: "swapYtForExactScy",
282
+ outputs: [
283
+ {
284
+ internalType: "uint256",
285
+ name: "netYtIn",
286
+ type: "uint256",
287
+ },
288
+ ],
289
+ stateMutability: "nonpayable",
290
+ type: "function",
291
+ },
233
292
  ];
234
293
 
235
294
  export class IPRouterYT__factory {
@@ -84,6 +84,44 @@ const _abi = [
84
84
  stateMutability: "view",
85
85
  type: "function",
86
86
  },
87
+ {
88
+ inputs: [
89
+ {
90
+ internalType: "address",
91
+ name: "",
92
+ type: "address",
93
+ },
94
+ ],
95
+ name: "isOT",
96
+ outputs: [
97
+ {
98
+ internalType: "bool",
99
+ name: "",
100
+ type: "bool",
101
+ },
102
+ ],
103
+ stateMutability: "view",
104
+ type: "function",
105
+ },
106
+ {
107
+ inputs: [
108
+ {
109
+ internalType: "address",
110
+ name: "",
111
+ type: "address",
112
+ },
113
+ ],
114
+ name: "isYT",
115
+ outputs: [
116
+ {
117
+ internalType: "bool",
118
+ name: "",
119
+ type: "bool",
120
+ },
121
+ ],
122
+ stateMutability: "view",
123
+ type: "function",
124
+ },
87
125
  {
88
126
  inputs: [],
89
127
  name: "treasury",
@@ -234,32 +234,13 @@ const _abi = [
234
234
  type: "address",
235
235
  },
236
236
  ],
237
- name: "redeemDueInterest",
237
+ name: "redeemDueInterestAndRewards",
238
238
  outputs: [
239
239
  {
240
240
  internalType: "uint256",
241
241
  name: "interestOut",
242
242
  type: "uint256",
243
243
  },
244
- ],
245
- stateMutability: "nonpayable",
246
- type: "function",
247
- },
248
- {
249
- inputs: [
250
- {
251
- internalType: "address",
252
- name: "user",
253
- type: "address",
254
- },
255
- {
256
- internalType: "address",
257
- name: "receiver",
258
- type: "address",
259
- },
260
- ],
261
- name: "redeemDueRewards",
262
- outputs: [
263
244
  {
264
245
  internalType: "uint256[]",
265
246
  name: "rewardsOut",
@@ -0,0 +1,39 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import { Provider } from "@ethersproject/providers";
7
+ import type {
8
+ IPermissionsV2Upg,
9
+ IPermissionsV2UpgInterface,
10
+ } from "../IPermissionsV2Upg";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [],
15
+ name: "governanceManager",
16
+ outputs: [
17
+ {
18
+ internalType: "address",
19
+ name: "",
20
+ type: "address",
21
+ },
22
+ ],
23
+ stateMutability: "view",
24
+ type: "function",
25
+ },
26
+ ];
27
+
28
+ export class IPermissionsV2Upg__factory {
29
+ static readonly abi = _abi;
30
+ static createInterface(): IPermissionsV2UpgInterface {
31
+ return new utils.Interface(_abi) as IPermissionsV2UpgInterface;
32
+ }
33
+ static connect(
34
+ address: string,
35
+ signerOrProvider: Signer | Provider
36
+ ): IPermissionsV2Upg {
37
+ return new Contract(address, _abi, signerOrProvider) as IPermissionsV2Upg;
38
+ }
39
+ }
@@ -276,11 +276,6 @@ const _abi = [
276
276
  name: "user",
277
277
  type: "address",
278
278
  },
279
- {
280
- internalType: "address",
281
- name: "receiver",
282
- type: "address",
283
- },
284
279
  ],
285
280
  name: "redeemReward",
286
281
  outputs: [