@pendle/core-v2 0.3.0 → 0.5.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 (104) hide show
  1. package/contracts/SuperComposableYield/ISuperComposableYield.sol +14 -0
  2. package/contracts/SuperComposableYield/implementations/IRewardManager.sol +16 -0
  3. package/contracts/SuperComposableYield/implementations/RewardManager.sol +24 -5
  4. package/contracts/SuperComposableYield/implementations/SCYBase.sol +21 -1
  5. package/contracts/core/PendleMarket.sol +10 -18
  6. package/contracts/core/PendleMarketFactory.sol +49 -22
  7. package/contracts/core/PendleRouter.sol +74 -0
  8. package/contracts/core/PendleYieldToken.sol +20 -12
  9. package/contracts/core/{router/PendleRouterStaticUpg.sol → RouterStatic.sol} +6 -6
  10. package/contracts/core/actions/ActionCallback.sol +101 -0
  11. package/contracts/core/{router/PendleRouterCoreUpg.sol → actions/ActionCore.sol} +6 -10
  12. package/contracts/core/{router/PendleRouterYTUpg.sol → actions/ActionYT.sol} +6 -11
  13. package/contracts/core/{router/base/PendleRouterOTBaseUpg.sol → actions/base/ActionSCYAndOTBase.sol} +1 -5
  14. package/contracts/core/{router/base/PendleRouterSCYAndForgeBaseUpg.sol → actions/base/ActionSCYAndYOBase.sol} +6 -8
  15. package/contracts/core/{router/base/PendleRouterYTBaseUpg.sol → actions/base/ActionSCYAndYTBase.sol} +7 -99
  16. package/contracts/core/actions/base/ActionType.sol +11 -0
  17. package/contracts/interfaces/{IPRouterCore.sol → IPActionCore.sol} +1 -1
  18. package/contracts/interfaces/{IPRouterYT.sol → IPActionYT.sol} +1 -3
  19. package/contracts/interfaces/IPAllAction.sol +9 -0
  20. package/contracts/interfaces/IPMarketFactory.sol +11 -0
  21. package/contracts/interfaces/IPYieldToken.sol +21 -3
  22. package/contracts/libraries/math/MarketMathCore.sol +3 -2
  23. package/package.json +1 -1
  24. package/typechain-types/{PendleRouterYTBaseUpg.ts → ActionCallback.ts} +5 -5
  25. package/typechain-types/{PendleRouterCoreUpg.ts → ActionCore.ts} +5 -5
  26. package/typechain-types/{PendleRouterSCYAndForgeBaseUpg.ts → ActionSCYAndYOBase.ts} +5 -6
  27. package/typechain-types/{BoringOwnableData.ts → ActionSCYAndYTBase.ts} +21 -24
  28. package/typechain-types/{PendleRouterStaticUpg.ts → ActionStatic.ts} +5 -5
  29. package/typechain-types/{IPRouterYT.ts → ActionYT.ts} +27 -42
  30. package/typechain-types/IPActionAll.ts +1431 -0
  31. package/typechain-types/{IPRouterCore.ts → IPActionCore.ts} +5 -5
  32. package/typechain-types/{IPRouterView.ts → IPActionStatic.ts} +57 -5
  33. package/typechain-types/{PendleRouterYTUpg.ts → IPActionYT.ts} +5 -97
  34. package/typechain-types/IPAllAction.ts +1431 -0
  35. package/typechain-types/IPMarket.ts +3 -0
  36. package/typechain-types/IPMarketFactory.ts +46 -0
  37. package/typechain-types/IPYieldToken.ts +342 -14
  38. package/typechain-types/IRewardManager.ts +178 -0
  39. package/typechain-types/ISuperComposableYield.ts +97 -2
  40. package/typechain-types/PendleAaveV3SCY.ts +167 -66
  41. package/typechain-types/PendleBenQiErc20SCY.ts +167 -66
  42. package/typechain-types/PendleBtrflyScy.ts +97 -2
  43. package/typechain-types/PendleMarket.ts +3 -59
  44. package/typechain-types/PendleMarketFactory.ts +150 -24
  45. package/typechain-types/{PendleRouterProxy.ts → PendleRouter.ts} +29 -39
  46. package/typechain-types/PendleYearnVaultScy.ts +97 -2
  47. package/typechain-types/PendleYieldToken.ts +116 -101
  48. package/typechain-types/RewardManager.ts +48 -42
  49. package/typechain-types/RouterStatic.ts +828 -0
  50. package/typechain-types/SCYBase.ts +97 -2
  51. package/typechain-types/SCYBaseWithRewards.ts +167 -66
  52. package/typechain-types/factories/ActionCallback__factory.ts +116 -0
  53. package/typechain-types/factories/ActionCore__factory.ts +632 -0
  54. package/typechain-types/factories/{PendleRouterSCYAndForgeBaseUpg__factory.ts → ActionSCYAndYOBase__factory.ts} +8 -12
  55. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +52 -0
  56. package/typechain-types/factories/ActionStatic__factory.ts +308 -0
  57. package/typechain-types/factories/ActionYT__factory.ts +370 -0
  58. package/typechain-types/factories/IPActionAll__factory.ts +983 -0
  59. package/typechain-types/factories/{IPRouterCore__factory.ts → IPActionCore__factory.ts} +6 -6
  60. package/typechain-types/factories/{IPRouterView__factory.ts → IPActionStatic__factory.ts} +38 -6
  61. package/typechain-types/factories/{IPRouterYT__factory.ts → IPActionYT__factory.ts} +6 -29
  62. package/typechain-types/factories/IPAllAction__factory.ts +983 -0
  63. package/typechain-types/factories/IPMarketFactory__factory.ts +28 -0
  64. package/typechain-types/factories/IPMarket__factory.ts +7 -2
  65. package/typechain-types/factories/IPYieldToken__factory.ts +158 -1
  66. package/typechain-types/factories/IRewardManager__factory.ts +92 -0
  67. package/typechain-types/factories/ISuperComposableYield__factory.ts +68 -0
  68. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +102 -34
  69. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +102 -34
  70. package/typechain-types/factories/PendleBtrflyScy__factory.ts +69 -1
  71. package/typechain-types/factories/PendleMarketFactory__factory.ts +112 -17
  72. package/typechain-types/factories/PendleMarket__factory.ts +8 -69
  73. package/typechain-types/factories/PendleRouter__factory.ts +282 -0
  74. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +69 -1
  75. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  76. package/typechain-types/factories/PendleYieldToken__factory.ts +58 -58
  77. package/typechain-types/factories/RewardManager__factory.ts +18 -18
  78. package/typechain-types/factories/RouterStatic__factory.ts +883 -0
  79. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +101 -33
  80. package/typechain-types/factories/SCYBase__factory.ts +68 -0
  81. package/typechain-types/hardhat.d.ts +93 -75
  82. package/typechain-types/index.ts +22 -18
  83. package/contracts/core/router/PendleRouterProxy.sol +0 -84
  84. package/contracts/interfaces/IPFlashCallBack.sol +0 -10
  85. package/typechain-types/BoringOwnable.ts +0 -194
  86. package/typechain-types/BoringOwnableUpg.ts +0 -194
  87. package/typechain-types/BoringOwnableUpgData.ts +0 -100
  88. package/typechain-types/IPFlashCallback.ts +0 -115
  89. package/typechain-types/IPermissionsV2.ts +0 -87
  90. package/typechain-types/PendleRouterViewUpg.ts +0 -307
  91. package/typechain-types/PermissionsV2.ts +0 -87
  92. package/typechain-types/factories/BoringOwnableData__factory.ts +0 -90
  93. package/typechain-types/factories/BoringOwnableUpgData__factory.ts +0 -94
  94. package/typechain-types/factories/BoringOwnableUpg__factory.ts +0 -139
  95. package/typechain-types/factories/BoringOwnable__factory.ts +0 -149
  96. package/typechain-types/factories/IPFlashCallback__factory.ts +0 -49
  97. package/typechain-types/factories/IPermissionsV2__factory.ts +0 -39
  98. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +0 -635
  99. package/typechain-types/factories/PendleRouterProxy__factory.ts +0 -285
  100. package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +0 -315
  101. package/typechain-types/factories/PendleRouterViewUpg__factory.ts +0 -265
  102. package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +0 -66
  103. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +0 -422
  104. package/typechain-types/factories/PermissionsV2__factory.ts +0 -36
@@ -27,6 +27,7 @@ export type MarketStateStruct = {
27
27
  totalScy: BigNumberish;
28
28
  totalLp: BigNumberish;
29
29
  oracleRate: BigNumberish;
30
+ treasury: string;
30
31
  scalarRoot: BigNumberish;
31
32
  feeRateRoot: BigNumberish;
32
33
  rateOracleTimeWindow: BigNumberish;
@@ -41,6 +42,7 @@ export type MarketStateStructOutput = [
41
42
  BigNumber,
42
43
  BigNumber,
43
44
  BigNumber,
45
+ string,
44
46
  BigNumber,
45
47
  BigNumber,
46
48
  BigNumber,
@@ -53,6 +55,7 @@ export type MarketStateStructOutput = [
53
55
  totalScy: BigNumber;
54
56
  totalLp: BigNumber;
55
57
  oracleRate: BigNumber;
58
+ treasury: string;
56
59
  scalarRoot: BigNumber;
57
60
  feeRateRoot: BigNumber;
58
61
  rateOracleTimeWindow: BigNumber;
@@ -23,6 +23,7 @@ export interface IPMarketFactoryInterface extends utils.Interface {
23
23
  contractName: "IPMarketFactory";
24
24
  functions: {
25
25
  "isValidMarket(address)": FunctionFragment;
26
+ "marketConfig()": FunctionFragment;
26
27
  "treasury()": FunctionFragment;
27
28
  };
28
29
 
@@ -30,12 +31,20 @@ export interface IPMarketFactoryInterface extends utils.Interface {
30
31
  functionFragment: "isValidMarket",
31
32
  values: [string]
32
33
  ): string;
34
+ encodeFunctionData(
35
+ functionFragment: "marketConfig",
36
+ values?: undefined
37
+ ): string;
33
38
  encodeFunctionData(functionFragment: "treasury", values?: undefined): string;
34
39
 
35
40
  decodeFunctionResult(
36
41
  functionFragment: "isValidMarket",
37
42
  data: BytesLike
38
43
  ): Result;
44
+ decodeFunctionResult(
45
+ functionFragment: "marketConfig",
46
+ data: BytesLike
47
+ ): Result;
39
48
  decodeFunctionResult(functionFragment: "treasury", data: BytesLike): Result;
40
49
 
41
50
  events: {};
@@ -74,16 +83,49 @@ export interface IPMarketFactory extends BaseContract {
74
83
  overrides?: CallOverrides
75
84
  ): Promise<[boolean]>;
76
85
 
86
+ marketConfig(
87
+ overrides?: CallOverrides
88
+ ): Promise<
89
+ [string, BigNumber, number, number] & {
90
+ treasury: string;
91
+ feeRateRoot: BigNumber;
92
+ rateOracleTimeWindow: number;
93
+ reserveFeePercent: number;
94
+ }
95
+ >;
96
+
77
97
  treasury(overrides?: CallOverrides): Promise<[string]>;
78
98
  };
79
99
 
80
100
  isValidMarket(market: string, overrides?: CallOverrides): Promise<boolean>;
81
101
 
102
+ marketConfig(
103
+ overrides?: CallOverrides
104
+ ): Promise<
105
+ [string, BigNumber, number, number] & {
106
+ treasury: string;
107
+ feeRateRoot: BigNumber;
108
+ rateOracleTimeWindow: number;
109
+ reserveFeePercent: number;
110
+ }
111
+ >;
112
+
82
113
  treasury(overrides?: CallOverrides): Promise<string>;
83
114
 
84
115
  callStatic: {
85
116
  isValidMarket(market: string, overrides?: CallOverrides): Promise<boolean>;
86
117
 
118
+ marketConfig(
119
+ overrides?: CallOverrides
120
+ ): Promise<
121
+ [string, BigNumber, number, number] & {
122
+ treasury: string;
123
+ feeRateRoot: BigNumber;
124
+ rateOracleTimeWindow: number;
125
+ reserveFeePercent: number;
126
+ }
127
+ >;
128
+
87
129
  treasury(overrides?: CallOverrides): Promise<string>;
88
130
  };
89
131
 
@@ -95,6 +137,8 @@ export interface IPMarketFactory extends BaseContract {
95
137
  overrides?: CallOverrides
96
138
  ): Promise<BigNumber>;
97
139
 
140
+ marketConfig(overrides?: CallOverrides): Promise<BigNumber>;
141
+
98
142
  treasury(overrides?: CallOverrides): Promise<BigNumber>;
99
143
  };
100
144
 
@@ -104,6 +148,8 @@ export interface IPMarketFactory extends BaseContract {
104
148
  overrides?: CallOverrides
105
149
  ): Promise<PopulatedTransaction>;
106
150
 
151
+ marketConfig(overrides?: CallOverrides): Promise<PopulatedTransaction>;
152
+
107
153
  treasury(overrides?: CallOverrides): Promise<PopulatedTransaction>;
108
154
  };
109
155
  }
@@ -32,15 +32,25 @@ export interface IPYieldTokenInterface extends utils.Interface {
32
32
  "balanceOf(address)": FunctionFragment;
33
33
  "decimals()": FunctionFragment;
34
34
  "expiry()": FunctionFragment;
35
+ "getGlobalReward(address)": FunctionFragment;
36
+ "getInterestData(address)": FunctionFragment;
37
+ "getRewardTokens()": FunctionFragment;
38
+ "getScyIndexBeforeExpiry()": FunctionFragment;
39
+ "getUserReward(address,address)": FunctionFragment;
35
40
  "isExpired()": FunctionFragment;
36
41
  "mintYO(address,address)": FunctionFragment;
37
42
  "name()": FunctionFragment;
38
- "redeemDueInterestAndRewards(address)": FunctionFragment;
43
+ "redeemDueInterest(address)": FunctionFragment;
44
+ "redeemDueRewards(address)": FunctionFragment;
39
45
  "redeemYO(address)": FunctionFragment;
40
46
  "symbol()": FunctionFragment;
41
47
  "totalSupply()": FunctionFragment;
42
48
  "transfer(address,uint256)": FunctionFragment;
43
49
  "transferFrom(address,address,uint256)": FunctionFragment;
50
+ "updateGlobalReward()": FunctionFragment;
51
+ "updateUserInterest(address)": FunctionFragment;
52
+ "updateUserReward(address)": FunctionFragment;
53
+ "withdrawFeeToTreasury()": FunctionFragment;
44
54
  };
45
55
 
46
56
  encodeFunctionData(functionFragment: "OT", values?: undefined): string;
@@ -56,6 +66,26 @@ export interface IPYieldTokenInterface extends utils.Interface {
56
66
  encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
57
67
  encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
58
68
  encodeFunctionData(functionFragment: "expiry", values?: undefined): string;
69
+ encodeFunctionData(
70
+ functionFragment: "getGlobalReward",
71
+ values: [string]
72
+ ): string;
73
+ encodeFunctionData(
74
+ functionFragment: "getInterestData",
75
+ values: [string]
76
+ ): string;
77
+ encodeFunctionData(
78
+ functionFragment: "getRewardTokens",
79
+ values?: undefined
80
+ ): string;
81
+ encodeFunctionData(
82
+ functionFragment: "getScyIndexBeforeExpiry",
83
+ values?: undefined
84
+ ): string;
85
+ encodeFunctionData(
86
+ functionFragment: "getUserReward",
87
+ values: [string, string]
88
+ ): string;
59
89
  encodeFunctionData(functionFragment: "isExpired", values?: undefined): string;
60
90
  encodeFunctionData(
61
91
  functionFragment: "mintYO",
@@ -63,7 +93,11 @@ export interface IPYieldTokenInterface extends utils.Interface {
63
93
  ): string;
64
94
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
65
95
  encodeFunctionData(
66
- functionFragment: "redeemDueInterestAndRewards",
96
+ functionFragment: "redeemDueInterest",
97
+ values: [string]
98
+ ): string;
99
+ encodeFunctionData(
100
+ functionFragment: "redeemDueRewards",
67
101
  values: [string]
68
102
  ): string;
69
103
  encodeFunctionData(functionFragment: "redeemYO", values: [string]): string;
@@ -80,6 +114,22 @@ export interface IPYieldTokenInterface extends utils.Interface {
80
114
  functionFragment: "transferFrom",
81
115
  values: [string, string, BigNumberish]
82
116
  ): string;
117
+ encodeFunctionData(
118
+ functionFragment: "updateGlobalReward",
119
+ values?: undefined
120
+ ): string;
121
+ encodeFunctionData(
122
+ functionFragment: "updateUserInterest",
123
+ values: [string]
124
+ ): string;
125
+ encodeFunctionData(
126
+ functionFragment: "updateUserReward",
127
+ values: [string]
128
+ ): string;
129
+ encodeFunctionData(
130
+ functionFragment: "withdrawFeeToTreasury",
131
+ values?: undefined
132
+ ): string;
83
133
 
84
134
  decodeFunctionResult(functionFragment: "OT", data: BytesLike): Result;
85
135
  decodeFunctionResult(functionFragment: "SCY", data: BytesLike): Result;
@@ -88,11 +138,35 @@ export interface IPYieldTokenInterface extends utils.Interface {
88
138
  decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
89
139
  decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
90
140
  decodeFunctionResult(functionFragment: "expiry", data: BytesLike): Result;
141
+ decodeFunctionResult(
142
+ functionFragment: "getGlobalReward",
143
+ data: BytesLike
144
+ ): Result;
145
+ decodeFunctionResult(
146
+ functionFragment: "getInterestData",
147
+ data: BytesLike
148
+ ): Result;
149
+ decodeFunctionResult(
150
+ functionFragment: "getRewardTokens",
151
+ data: BytesLike
152
+ ): Result;
153
+ decodeFunctionResult(
154
+ functionFragment: "getScyIndexBeforeExpiry",
155
+ data: BytesLike
156
+ ): Result;
157
+ decodeFunctionResult(
158
+ functionFragment: "getUserReward",
159
+ data: BytesLike
160
+ ): Result;
91
161
  decodeFunctionResult(functionFragment: "isExpired", data: BytesLike): Result;
92
162
  decodeFunctionResult(functionFragment: "mintYO", data: BytesLike): Result;
93
163
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
94
164
  decodeFunctionResult(
95
- functionFragment: "redeemDueInterestAndRewards",
165
+ functionFragment: "redeemDueInterest",
166
+ data: BytesLike
167
+ ): Result;
168
+ decodeFunctionResult(
169
+ functionFragment: "redeemDueRewards",
96
170
  data: BytesLike
97
171
  ): Result;
98
172
  decodeFunctionResult(functionFragment: "redeemYO", data: BytesLike): Result;
@@ -106,6 +180,22 @@ export interface IPYieldTokenInterface extends utils.Interface {
106
180
  functionFragment: "transferFrom",
107
181
  data: BytesLike
108
182
  ): Result;
183
+ decodeFunctionResult(
184
+ functionFragment: "updateGlobalReward",
185
+ data: BytesLike
186
+ ): Result;
187
+ decodeFunctionResult(
188
+ functionFragment: "updateUserInterest",
189
+ data: BytesLike
190
+ ): Result;
191
+ decodeFunctionResult(
192
+ functionFragment: "updateUserReward",
193
+ data: BytesLike
194
+ ): Result;
195
+ decodeFunctionResult(
196
+ functionFragment: "withdrawFeeToTreasury",
197
+ data: BytesLike
198
+ ): Result;
109
199
 
110
200
  events: {
111
201
  "Approval(address,address,uint256)": EventFragment;
@@ -180,6 +270,40 @@ export interface IPYieldToken extends BaseContract {
180
270
 
181
271
  expiry(overrides?: CallOverrides): Promise<[BigNumber]>;
182
272
 
273
+ getGlobalReward(
274
+ rewardToken: string,
275
+ overrides?: CallOverrides
276
+ ): Promise<
277
+ [BigNumber, BigNumber] & { index: BigNumber; lastBalance: BigNumber }
278
+ >;
279
+
280
+ getInterestData(
281
+ user: string,
282
+ overrides?: CallOverrides
283
+ ): Promise<
284
+ [BigNumber, BigNumber] & {
285
+ lastScyIndex: BigNumber;
286
+ dueInterest: BigNumber;
287
+ }
288
+ >;
289
+
290
+ getRewardTokens(overrides?: CallOverrides): Promise<[string[]]>;
291
+
292
+ getScyIndexBeforeExpiry(
293
+ overrides?: Overrides & { from?: string | Promise<string> }
294
+ ): Promise<ContractTransaction>;
295
+
296
+ getUserReward(
297
+ user: string,
298
+ rewardToken: string,
299
+ overrides?: CallOverrides
300
+ ): Promise<
301
+ [BigNumber, BigNumber] & {
302
+ lastIndex: BigNumber;
303
+ accruedReward: BigNumber;
304
+ }
305
+ >;
306
+
183
307
  isExpired(overrides?: CallOverrides): Promise<[boolean]>;
184
308
 
185
309
  mintYO(
@@ -190,7 +314,12 @@ export interface IPYieldToken extends BaseContract {
190
314
 
191
315
  name(overrides?: CallOverrides): Promise<[string]>;
192
316
 
193
- redeemDueInterestAndRewards(
317
+ redeemDueInterest(
318
+ user: string,
319
+ overrides?: Overrides & { from?: string | Promise<string> }
320
+ ): Promise<ContractTransaction>;
321
+
322
+ redeemDueRewards(
194
323
  user: string,
195
324
  overrides?: Overrides & { from?: string | Promise<string> }
196
325
  ): Promise<ContractTransaction>;
@@ -216,6 +345,24 @@ export interface IPYieldToken extends BaseContract {
216
345
  amount: BigNumberish,
217
346
  overrides?: Overrides & { from?: string | Promise<string> }
218
347
  ): Promise<ContractTransaction>;
348
+
349
+ updateGlobalReward(
350
+ overrides?: Overrides & { from?: string | Promise<string> }
351
+ ): Promise<ContractTransaction>;
352
+
353
+ updateUserInterest(
354
+ user: string,
355
+ overrides?: Overrides & { from?: string | Promise<string> }
356
+ ): Promise<ContractTransaction>;
357
+
358
+ updateUserReward(
359
+ user: string,
360
+ overrides?: Overrides & { from?: string | Promise<string> }
361
+ ): Promise<ContractTransaction>;
362
+
363
+ withdrawFeeToTreasury(
364
+ overrides?: Overrides & { from?: string | Promise<string> }
365
+ ): Promise<ContractTransaction>;
219
366
  };
220
367
 
221
368
  OT(overrides?: CallOverrides): Promise<string>;
@@ -240,6 +387,34 @@ export interface IPYieldToken extends BaseContract {
240
387
 
241
388
  expiry(overrides?: CallOverrides): Promise<BigNumber>;
242
389
 
390
+ getGlobalReward(
391
+ rewardToken: string,
392
+ overrides?: CallOverrides
393
+ ): Promise<
394
+ [BigNumber, BigNumber] & { index: BigNumber; lastBalance: BigNumber }
395
+ >;
396
+
397
+ getInterestData(
398
+ user: string,
399
+ overrides?: CallOverrides
400
+ ): Promise<
401
+ [BigNumber, BigNumber] & { lastScyIndex: BigNumber; dueInterest: BigNumber }
402
+ >;
403
+
404
+ getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
405
+
406
+ getScyIndexBeforeExpiry(
407
+ overrides?: Overrides & { from?: string | Promise<string> }
408
+ ): Promise<ContractTransaction>;
409
+
410
+ getUserReward(
411
+ user: string,
412
+ rewardToken: string,
413
+ overrides?: CallOverrides
414
+ ): Promise<
415
+ [BigNumber, BigNumber] & { lastIndex: BigNumber; accruedReward: BigNumber }
416
+ >;
417
+
243
418
  isExpired(overrides?: CallOverrides): Promise<boolean>;
244
419
 
245
420
  mintYO(
@@ -250,7 +425,12 @@ export interface IPYieldToken extends BaseContract {
250
425
 
251
426
  name(overrides?: CallOverrides): Promise<string>;
252
427
 
253
- redeemDueInterestAndRewards(
428
+ redeemDueInterest(
429
+ user: string,
430
+ overrides?: Overrides & { from?: string | Promise<string> }
431
+ ): Promise<ContractTransaction>;
432
+
433
+ redeemDueRewards(
254
434
  user: string,
255
435
  overrides?: Overrides & { from?: string | Promise<string> }
256
436
  ): Promise<ContractTransaction>;
@@ -277,6 +457,24 @@ export interface IPYieldToken extends BaseContract {
277
457
  overrides?: Overrides & { from?: string | Promise<string> }
278
458
  ): Promise<ContractTransaction>;
279
459
 
460
+ updateGlobalReward(
461
+ overrides?: Overrides & { from?: string | Promise<string> }
462
+ ): Promise<ContractTransaction>;
463
+
464
+ updateUserInterest(
465
+ user: string,
466
+ overrides?: Overrides & { from?: string | Promise<string> }
467
+ ): Promise<ContractTransaction>;
468
+
469
+ updateUserReward(
470
+ user: string,
471
+ overrides?: Overrides & { from?: string | Promise<string> }
472
+ ): Promise<ContractTransaction>;
473
+
474
+ withdrawFeeToTreasury(
475
+ overrides?: Overrides & { from?: string | Promise<string> }
476
+ ): Promise<ContractTransaction>;
477
+
280
478
  callStatic: {
281
479
  OT(overrides?: CallOverrides): Promise<string>;
282
480
 
@@ -300,6 +498,38 @@ export interface IPYieldToken extends BaseContract {
300
498
 
301
499
  expiry(overrides?: CallOverrides): Promise<BigNumber>;
302
500
 
501
+ getGlobalReward(
502
+ rewardToken: string,
503
+ overrides?: CallOverrides
504
+ ): Promise<
505
+ [BigNumber, BigNumber] & { index: BigNumber; lastBalance: BigNumber }
506
+ >;
507
+
508
+ getInterestData(
509
+ user: string,
510
+ overrides?: CallOverrides
511
+ ): Promise<
512
+ [BigNumber, BigNumber] & {
513
+ lastScyIndex: BigNumber;
514
+ dueInterest: BigNumber;
515
+ }
516
+ >;
517
+
518
+ getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
519
+
520
+ getScyIndexBeforeExpiry(overrides?: CallOverrides): Promise<BigNumber>;
521
+
522
+ getUserReward(
523
+ user: string,
524
+ rewardToken: string,
525
+ overrides?: CallOverrides
526
+ ): Promise<
527
+ [BigNumber, BigNumber] & {
528
+ lastIndex: BigNumber;
529
+ accruedReward: BigNumber;
530
+ }
531
+ >;
532
+
303
533
  isExpired(overrides?: CallOverrides): Promise<boolean>;
304
534
 
305
535
  mintYO(
@@ -310,15 +540,15 @@ export interface IPYieldToken extends BaseContract {
310
540
 
311
541
  name(overrides?: CallOverrides): Promise<string>;
312
542
 
313
- redeemDueInterestAndRewards(
543
+ redeemDueInterest(
314
544
  user: string,
315
545
  overrides?: CallOverrides
316
- ): Promise<
317
- [BigNumber, BigNumber[]] & {
318
- interestOut: BigNumber;
319
- rewardsOut: BigNumber[];
320
- }
321
- >;
546
+ ): Promise<BigNumber>;
547
+
548
+ redeemDueRewards(
549
+ user: string,
550
+ overrides?: CallOverrides
551
+ ): Promise<BigNumber[]>;
322
552
 
323
553
  redeemYO(receiver: string, overrides?: CallOverrides): Promise<BigNumber>;
324
554
 
@@ -338,6 +568,14 @@ export interface IPYieldToken extends BaseContract {
338
568
  amount: BigNumberish,
339
569
  overrides?: CallOverrides
340
570
  ): Promise<boolean>;
571
+
572
+ updateGlobalReward(overrides?: CallOverrides): Promise<void>;
573
+
574
+ updateUserInterest(user: string, overrides?: CallOverrides): Promise<void>;
575
+
576
+ updateUserReward(user: string, overrides?: CallOverrides): Promise<void>;
577
+
578
+ withdrawFeeToTreasury(overrides?: CallOverrides): Promise<void>;
341
579
  };
342
580
 
343
581
  filters: {
@@ -387,6 +625,28 @@ export interface IPYieldToken extends BaseContract {
387
625
 
388
626
  expiry(overrides?: CallOverrides): Promise<BigNumber>;
389
627
 
628
+ getGlobalReward(
629
+ rewardToken: string,
630
+ overrides?: CallOverrides
631
+ ): Promise<BigNumber>;
632
+
633
+ getInterestData(
634
+ user: string,
635
+ overrides?: CallOverrides
636
+ ): Promise<BigNumber>;
637
+
638
+ getRewardTokens(overrides?: CallOverrides): Promise<BigNumber>;
639
+
640
+ getScyIndexBeforeExpiry(
641
+ overrides?: Overrides & { from?: string | Promise<string> }
642
+ ): Promise<BigNumber>;
643
+
644
+ getUserReward(
645
+ user: string,
646
+ rewardToken: string,
647
+ overrides?: CallOverrides
648
+ ): Promise<BigNumber>;
649
+
390
650
  isExpired(overrides?: CallOverrides): Promise<BigNumber>;
391
651
 
392
652
  mintYO(
@@ -397,7 +657,12 @@ export interface IPYieldToken extends BaseContract {
397
657
 
398
658
  name(overrides?: CallOverrides): Promise<BigNumber>;
399
659
 
400
- redeemDueInterestAndRewards(
660
+ redeemDueInterest(
661
+ user: string,
662
+ overrides?: Overrides & { from?: string | Promise<string> }
663
+ ): Promise<BigNumber>;
664
+
665
+ redeemDueRewards(
401
666
  user: string,
402
667
  overrides?: Overrides & { from?: string | Promise<string> }
403
668
  ): Promise<BigNumber>;
@@ -423,6 +688,24 @@ export interface IPYieldToken extends BaseContract {
423
688
  amount: BigNumberish,
424
689
  overrides?: Overrides & { from?: string | Promise<string> }
425
690
  ): Promise<BigNumber>;
691
+
692
+ updateGlobalReward(
693
+ overrides?: Overrides & { from?: string | Promise<string> }
694
+ ): Promise<BigNumber>;
695
+
696
+ updateUserInterest(
697
+ user: string,
698
+ overrides?: Overrides & { from?: string | Promise<string> }
699
+ ): Promise<BigNumber>;
700
+
701
+ updateUserReward(
702
+ user: string,
703
+ overrides?: Overrides & { from?: string | Promise<string> }
704
+ ): Promise<BigNumber>;
705
+
706
+ withdrawFeeToTreasury(
707
+ overrides?: Overrides & { from?: string | Promise<string> }
708
+ ): Promise<BigNumber>;
426
709
  };
427
710
 
428
711
  populateTransaction: {
@@ -451,6 +734,28 @@ export interface IPYieldToken extends BaseContract {
451
734
 
452
735
  expiry(overrides?: CallOverrides): Promise<PopulatedTransaction>;
453
736
 
737
+ getGlobalReward(
738
+ rewardToken: string,
739
+ overrides?: CallOverrides
740
+ ): Promise<PopulatedTransaction>;
741
+
742
+ getInterestData(
743
+ user: string,
744
+ overrides?: CallOverrides
745
+ ): Promise<PopulatedTransaction>;
746
+
747
+ getRewardTokens(overrides?: CallOverrides): Promise<PopulatedTransaction>;
748
+
749
+ getScyIndexBeforeExpiry(
750
+ overrides?: Overrides & { from?: string | Promise<string> }
751
+ ): Promise<PopulatedTransaction>;
752
+
753
+ getUserReward(
754
+ user: string,
755
+ rewardToken: string,
756
+ overrides?: CallOverrides
757
+ ): Promise<PopulatedTransaction>;
758
+
454
759
  isExpired(overrides?: CallOverrides): Promise<PopulatedTransaction>;
455
760
 
456
761
  mintYO(
@@ -461,7 +766,12 @@ export interface IPYieldToken extends BaseContract {
461
766
 
462
767
  name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
463
768
 
464
- redeemDueInterestAndRewards(
769
+ redeemDueInterest(
770
+ user: string,
771
+ overrides?: Overrides & { from?: string | Promise<string> }
772
+ ): Promise<PopulatedTransaction>;
773
+
774
+ redeemDueRewards(
465
775
  user: string,
466
776
  overrides?: Overrides & { from?: string | Promise<string> }
467
777
  ): Promise<PopulatedTransaction>;
@@ -487,5 +797,23 @@ export interface IPYieldToken extends BaseContract {
487
797
  amount: BigNumberish,
488
798
  overrides?: Overrides & { from?: string | Promise<string> }
489
799
  ): Promise<PopulatedTransaction>;
800
+
801
+ updateGlobalReward(
802
+ overrides?: Overrides & { from?: string | Promise<string> }
803
+ ): Promise<PopulatedTransaction>;
804
+
805
+ updateUserInterest(
806
+ user: string,
807
+ overrides?: Overrides & { from?: string | Promise<string> }
808
+ ): Promise<PopulatedTransaction>;
809
+
810
+ updateUserReward(
811
+ user: string,
812
+ overrides?: Overrides & { from?: string | Promise<string> }
813
+ ): Promise<PopulatedTransaction>;
814
+
815
+ withdrawFeeToTreasury(
816
+ overrides?: Overrides & { from?: string | Promise<string> }
817
+ ): Promise<PopulatedTransaction>;
490
818
  };
491
819
  }