@pendle/core-v2 0.5.1-beta-4 → 0.6.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 (126) hide show
  1. package/contracts/SuperComposableYield/ISuperComposableYield.sol +2 -0
  2. package/contracts/SuperComposableYield/implementations/RewardManager.sol +35 -20
  3. package/contracts/SuperComposableYield/implementations/SCYBase.sol +39 -19
  4. package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +26 -14
  5. package/contracts/core/PendleBaseToken.sol +2 -2
  6. package/contracts/core/PendleMarket.sol +145 -61
  7. package/contracts/core/PendleMarketFactory.sol +30 -19
  8. package/contracts/core/{PendleOwnershipToken.sol → PendlePrincipalToken.sol} +14 -2
  9. package/contracts/core/PendleRouter.sol +23 -9
  10. package/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol +21 -20
  11. package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +22 -16
  12. package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +13 -13
  13. package/contracts/core/PendleSCYImpl/PendleStETHSCY.sol +107 -0
  14. package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +14 -15
  15. package/contracts/core/PendleYieldContractFactory.sol +29 -14
  16. package/contracts/core/PendleYieldToken.sol +130 -76
  17. package/contracts/core/RouterStatic.sol +16 -157
  18. package/contracts/core/actions/ActionCallback.sol +36 -18
  19. package/contracts/core/actions/ActionCore.sol +41 -88
  20. package/contracts/core/actions/ActionRedeem.sol +36 -0
  21. package/contracts/core/actions/ActionYT.sol +41 -59
  22. package/contracts/core/actions/base/{ActionSCYAndOTBase.sol → ActionSCYAndPTBase.sol} +59 -45
  23. package/contracts/core/actions/base/{ActionSCYAndYOBase.sol → ActionSCYAndPYBase.sol} +57 -19
  24. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +31 -21
  25. package/contracts/interfaces/IPActionCore.sol +21 -28
  26. package/contracts/interfaces/IPActionRedeem.sol +17 -0
  27. package/contracts/interfaces/IPActionYT.sol +5 -12
  28. package/contracts/interfaces/IPAllAction.sol +2 -2
  29. package/contracts/interfaces/IPMarket.sol +33 -10
  30. package/contracts/interfaces/IPMarketAddRemoveCallback.sol +2 -2
  31. package/contracts/interfaces/IPMarketFactory.sol +3 -1
  32. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
  33. package/contracts/interfaces/{IPOwnershipToken.sol → IPPrincipalToken.sol} +1 -1
  34. package/contracts/interfaces/IPRouterStatic.sol +7 -82
  35. package/contracts/interfaces/IPYieldContractFactory.sol +10 -2
  36. package/contracts/interfaces/IPYieldToken.sol +14 -5
  37. package/contracts/interfaces/IWstETH.sol +10 -0
  38. package/contracts/libraries/JoeLibrary.sol +1 -1
  39. package/contracts/libraries/math/LogExpMath.sol +1 -1
  40. package/contracts/libraries/math/MarketApproxLib.sol +128 -88
  41. package/contracts/libraries/math/MarketMathAux.sol +13 -13
  42. package/contracts/libraries/math/MarketMathCore.sol +62 -93
  43. package/contracts/libraries/math/Math.sol +14 -2
  44. package/contracts/periphery/PendleGovernanceManager.sol +5 -3
  45. package/package.json +3 -2
  46. package/typechain-types/ActionCallback.ts +5 -5
  47. package/typechain-types/ActionCore.ts +312 -234
  48. package/typechain-types/ActionRedeem.ts +125 -0
  49. package/typechain-types/ActionSCYAndPYBase.ts +223 -0
  50. package/typechain-types/ActionSCYAndYOBase.ts +129 -3
  51. package/typechain-types/ActionSCYAndYTBase.ts +149 -3
  52. package/typechain-types/ActionYT.ts +192 -94
  53. package/typechain-types/IPActionCore.ts +183 -231
  54. package/typechain-types/IPActionRedeem.ts +125 -0
  55. package/typechain-types/IPActionYT.ts +43 -91
  56. package/typechain-types/IPAllAction.ts +258 -321
  57. package/typechain-types/IPMarket.ts +150 -50
  58. package/typechain-types/IPMarketAddRemoveCallback.ts +10 -10
  59. package/typechain-types/IPMarketFactory.ts +28 -6
  60. package/typechain-types/IPMarketSwapCallback.ts +5 -5
  61. package/typechain-types/{IPOwnershipToken.ts → IPPrincipalToken.ts} +5 -5
  62. package/typechain-types/IPRouterStatic.ts +50 -530
  63. package/typechain-types/IPYieldContractFactory.ts +85 -19
  64. package/typechain-types/IPYieldToken.ts +138 -37
  65. package/typechain-types/ISuperComposableYield.ts +13 -0
  66. package/typechain-types/IWstETH.ts +149 -0
  67. package/typechain-types/PendleAaveV3SCY.ts +110 -0
  68. package/typechain-types/PendleBaseToken.ts +1 -1
  69. package/typechain-types/PendleBenQiErc20SCY.ts +55 -12
  70. package/typechain-types/PendleBtrflyScy.ts +27 -23
  71. package/typechain-types/PendleGovernanceManager.ts +5 -5
  72. package/typechain-types/PendleMarket.ts +197 -100
  73. package/typechain-types/PendleMarketFactory.ts +96 -34
  74. package/typechain-types/{PendleOwnershipToken.ts → PendlePrincipalToken.ts} +15 -6
  75. package/typechain-types/PendleRouter.ts +19 -0
  76. package/typechain-types/PendleRouterRedeemUpg.ts +125 -0
  77. package/typechain-types/PendleStEthSCY.ts +872 -0
  78. package/typechain-types/PendleYearnVaultScy.ts +27 -23
  79. package/typechain-types/PendleYieldContractFactory.ts +94 -28
  80. package/typechain-types/PendleYieldToken.ts +142 -57
  81. package/typechain-types/RewardManager.ts +21 -0
  82. package/typechain-types/RouterStatic.ts +50 -530
  83. package/typechain-types/SCYBase.ts +25 -0
  84. package/typechain-types/SCYBaseWithRewards.ts +64 -0
  85. package/typechain-types/factories/ActionCallback__factory.ts +2 -2
  86. package/typechain-types/factories/ActionCore__factory.ts +263 -79
  87. package/typechain-types/factories/ActionRedeem__factory.ts +105 -0
  88. package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +200 -0
  89. package/typechain-types/factories/ActionSCYAndYOBase__factory.ts +148 -0
  90. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +173 -0
  91. package/typechain-types/factories/ActionYT__factory.ts +265 -56
  92. package/typechain-types/factories/IPActionCore__factory.ts +114 -78
  93. package/typechain-types/factories/IPActionRedeem__factory.ts +70 -0
  94. package/typechain-types/factories/IPActionYT__factory.ts +90 -54
  95. package/typechain-types/factories/IPAllAction__factory.ts +254 -138
  96. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +2 -2
  97. package/typechain-types/factories/IPMarketFactory__factory.ts +26 -1
  98. package/typechain-types/factories/IPMarketSwapCallback__factory.ts +1 -1
  99. package/typechain-types/factories/IPMarket__factory.ts +125 -13
  100. package/typechain-types/factories/{IPOwnershipToken__factory.ts → IPPrincipalToken__factory.ts} +8 -8
  101. package/typechain-types/factories/IPRouterStatic__factory.ts +12 -628
  102. package/typechain-types/factories/IPYieldContractFactory__factory.ts +72 -2
  103. package/typechain-types/factories/IPYieldToken__factory.ts +93 -7
  104. package/typechain-types/factories/ISuperComposableYield__factory.ts +13 -0
  105. package/typechain-types/factories/IWstETH__factory.ts +74 -0
  106. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +97 -3
  107. package/typechain-types/factories/PendleBaseToken__factory.ts +1 -1
  108. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +62 -7
  109. package/typechain-types/factories/PendleBtrflyScy__factory.ts +42 -19
  110. package/typechain-types/factories/PendleGovernanceManager__factory.ts +2 -2
  111. package/typechain-types/factories/PendleMarketFactory__factory.ts +66 -15
  112. package/typechain-types/factories/PendleMarket__factory.ts +170 -53
  113. package/typechain-types/factories/PendlePrincipalToken__factory.ts +540 -0
  114. package/typechain-types/factories/PendleRouterRedeemUpg__factory.ts +112 -0
  115. package/typechain-types/factories/PendleRouter__factory.ts +23 -1
  116. package/typechain-types/factories/PendleStEthSCY__factory.ts +716 -0
  117. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +41 -18
  118. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +75 -5
  119. package/typechain-types/factories/PendleYieldToken__factory.ts +102 -33
  120. package/typechain-types/factories/RewardManager__factory.ts +13 -0
  121. package/typechain-types/factories/RouterStatic__factory.ts +13 -629
  122. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +60 -2
  123. package/typechain-types/factories/SCYBase__factory.ts +28 -2
  124. package/typechain-types/hardhat.d.ts +52 -16
  125. package/typechain-types/index.ts +14 -6
  126. package/typechain-types/factories/PendleOwnershipToken__factory.ts +0 -527
@@ -11,7 +11,7 @@ import {
11
11
  Signer,
12
12
  utils,
13
13
  } from "ethers";
14
- import { FunctionFragment, Result } from "@ethersproject/abi";
14
+ import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
15
15
  import { Listener, Provider } from "@ethersproject/providers";
16
16
  import type {
17
17
  TypedEventFilter,
@@ -24,10 +24,10 @@ export interface IPYieldContractFactoryInterface extends utils.Interface {
24
24
  contractName: "IPYieldContractFactory";
25
25
  functions: {
26
26
  "expiryDivisor()": FunctionFragment;
27
- "getOT(address,uint256)": FunctionFragment;
27
+ "getPT(address,uint256)": FunctionFragment;
28
28
  "getYT(address,uint256)": FunctionFragment;
29
29
  "interestFeeRate()": FunctionFragment;
30
- "isOT(address)": FunctionFragment;
30
+ "isPT(address)": FunctionFragment;
31
31
  "isYT(address)": FunctionFragment;
32
32
  "treasury()": FunctionFragment;
33
33
  };
@@ -37,7 +37,7 @@ export interface IPYieldContractFactoryInterface extends utils.Interface {
37
37
  values?: undefined
38
38
  ): string;
39
39
  encodeFunctionData(
40
- functionFragment: "getOT",
40
+ functionFragment: "getPT",
41
41
  values: [string, BigNumberish]
42
42
  ): string;
43
43
  encodeFunctionData(
@@ -48,7 +48,7 @@ export interface IPYieldContractFactoryInterface extends utils.Interface {
48
48
  functionFragment: "interestFeeRate",
49
49
  values?: undefined
50
50
  ): string;
51
- encodeFunctionData(functionFragment: "isOT", values: [string]): string;
51
+ encodeFunctionData(functionFragment: "isPT", values: [string]): string;
52
52
  encodeFunctionData(functionFragment: "isYT", values: [string]): string;
53
53
  encodeFunctionData(functionFragment: "treasury", values?: undefined): string;
54
54
 
@@ -56,19 +56,57 @@ export interface IPYieldContractFactoryInterface extends utils.Interface {
56
56
  functionFragment: "expiryDivisor",
57
57
  data: BytesLike
58
58
  ): Result;
59
- decodeFunctionResult(functionFragment: "getOT", data: BytesLike): Result;
59
+ decodeFunctionResult(functionFragment: "getPT", data: BytesLike): Result;
60
60
  decodeFunctionResult(functionFragment: "getYT", data: BytesLike): Result;
61
61
  decodeFunctionResult(
62
62
  functionFragment: "interestFeeRate",
63
63
  data: BytesLike
64
64
  ): Result;
65
- decodeFunctionResult(functionFragment: "isOT", data: BytesLike): Result;
65
+ decodeFunctionResult(functionFragment: "isPT", data: BytesLike): Result;
66
66
  decodeFunctionResult(functionFragment: "isYT", data: BytesLike): Result;
67
67
  decodeFunctionResult(functionFragment: "treasury", data: BytesLike): Result;
68
68
 
69
- events: {};
69
+ events: {
70
+ "CreateYieldContract(address,address,address,uint256)": EventFragment;
71
+ "SetExpiryDivisor(uint256)": EventFragment;
72
+ "SetInterestFeeRate(uint256)": EventFragment;
73
+ "SetTreasury(address)": EventFragment;
74
+ };
75
+
76
+ getEvent(nameOrSignatureOrTopic: "CreateYieldContract"): EventFragment;
77
+ getEvent(nameOrSignatureOrTopic: "SetExpiryDivisor"): EventFragment;
78
+ getEvent(nameOrSignatureOrTopic: "SetInterestFeeRate"): EventFragment;
79
+ getEvent(nameOrSignatureOrTopic: "SetTreasury"): EventFragment;
70
80
  }
71
81
 
82
+ export type CreateYieldContractEvent = TypedEvent<
83
+ [string, string, string, BigNumber],
84
+ { SCY: string; PT: string; YT: string; expiry: BigNumber }
85
+ >;
86
+
87
+ export type CreateYieldContractEventFilter =
88
+ TypedEventFilter<CreateYieldContractEvent>;
89
+
90
+ export type SetExpiryDivisorEvent = TypedEvent<
91
+ [BigNumber],
92
+ { newExpiryDivisor: BigNumber }
93
+ >;
94
+
95
+ export type SetExpiryDivisorEventFilter =
96
+ TypedEventFilter<SetExpiryDivisorEvent>;
97
+
98
+ export type SetInterestFeeRateEvent = TypedEvent<
99
+ [BigNumber],
100
+ { newInterestFeeRate: BigNumber }
101
+ >;
102
+
103
+ export type SetInterestFeeRateEventFilter =
104
+ TypedEventFilter<SetInterestFeeRateEvent>;
105
+
106
+ export type SetTreasuryEvent = TypedEvent<[string], { treasury: string }>;
107
+
108
+ export type SetTreasuryEventFilter = TypedEventFilter<SetTreasuryEvent>;
109
+
72
110
  export interface IPYieldContractFactory extends BaseContract {
73
111
  contractName: "IPYieldContractFactory";
74
112
  connect(signerOrProvider: Signer | Provider | string): this;
@@ -99,7 +137,7 @@ export interface IPYieldContractFactory extends BaseContract {
99
137
  functions: {
100
138
  expiryDivisor(overrides?: CallOverrides): Promise<[BigNumber]>;
101
139
 
102
- getOT(
140
+ getPT(
103
141
  SCY: string,
104
142
  expiry: BigNumberish,
105
143
  overrides?: CallOverrides
@@ -113,7 +151,7 @@ export interface IPYieldContractFactory extends BaseContract {
113
151
 
114
152
  interestFeeRate(overrides?: CallOverrides): Promise<[BigNumber]>;
115
153
 
116
- isOT(arg0: string, overrides?: CallOverrides): Promise<[boolean]>;
154
+ isPT(arg0: string, overrides?: CallOverrides): Promise<[boolean]>;
117
155
 
118
156
  isYT(arg0: string, overrides?: CallOverrides): Promise<[boolean]>;
119
157
 
@@ -122,7 +160,7 @@ export interface IPYieldContractFactory extends BaseContract {
122
160
 
123
161
  expiryDivisor(overrides?: CallOverrides): Promise<BigNumber>;
124
162
 
125
- getOT(
163
+ getPT(
126
164
  SCY: string,
127
165
  expiry: BigNumberish,
128
166
  overrides?: CallOverrides
@@ -136,7 +174,7 @@ export interface IPYieldContractFactory extends BaseContract {
136
174
 
137
175
  interestFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
138
176
 
139
- isOT(arg0: string, overrides?: CallOverrides): Promise<boolean>;
177
+ isPT(arg0: string, overrides?: CallOverrides): Promise<boolean>;
140
178
 
141
179
  isYT(arg0: string, overrides?: CallOverrides): Promise<boolean>;
142
180
 
@@ -145,7 +183,7 @@ export interface IPYieldContractFactory extends BaseContract {
145
183
  callStatic: {
146
184
  expiryDivisor(overrides?: CallOverrides): Promise<BigNumber>;
147
185
 
148
- getOT(
186
+ getPT(
149
187
  SCY: string,
150
188
  expiry: BigNumberish,
151
189
  overrides?: CallOverrides
@@ -159,19 +197,47 @@ export interface IPYieldContractFactory extends BaseContract {
159
197
 
160
198
  interestFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
161
199
 
162
- isOT(arg0: string, overrides?: CallOverrides): Promise<boolean>;
200
+ isPT(arg0: string, overrides?: CallOverrides): Promise<boolean>;
163
201
 
164
202
  isYT(arg0: string, overrides?: CallOverrides): Promise<boolean>;
165
203
 
166
204
  treasury(overrides?: CallOverrides): Promise<string>;
167
205
  };
168
206
 
169
- filters: {};
207
+ filters: {
208
+ "CreateYieldContract(address,address,address,uint256)"(
209
+ SCY?: string | null,
210
+ PT?: null,
211
+ YT?: null,
212
+ expiry?: null
213
+ ): CreateYieldContractEventFilter;
214
+ CreateYieldContract(
215
+ SCY?: string | null,
216
+ PT?: null,
217
+ YT?: null,
218
+ expiry?: null
219
+ ): CreateYieldContractEventFilter;
220
+
221
+ "SetExpiryDivisor(uint256)"(
222
+ newExpiryDivisor?: null
223
+ ): SetExpiryDivisorEventFilter;
224
+ SetExpiryDivisor(newExpiryDivisor?: null): SetExpiryDivisorEventFilter;
225
+
226
+ "SetInterestFeeRate(uint256)"(
227
+ newInterestFeeRate?: null
228
+ ): SetInterestFeeRateEventFilter;
229
+ SetInterestFeeRate(
230
+ newInterestFeeRate?: null
231
+ ): SetInterestFeeRateEventFilter;
232
+
233
+ "SetTreasury(address)"(treasury?: string | null): SetTreasuryEventFilter;
234
+ SetTreasury(treasury?: string | null): SetTreasuryEventFilter;
235
+ };
170
236
 
171
237
  estimateGas: {
172
238
  expiryDivisor(overrides?: CallOverrides): Promise<BigNumber>;
173
239
 
174
- getOT(
240
+ getPT(
175
241
  SCY: string,
176
242
  expiry: BigNumberish,
177
243
  overrides?: CallOverrides
@@ -185,7 +251,7 @@ export interface IPYieldContractFactory extends BaseContract {
185
251
 
186
252
  interestFeeRate(overrides?: CallOverrides): Promise<BigNumber>;
187
253
 
188
- isOT(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
254
+ isPT(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
189
255
 
190
256
  isYT(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
191
257
 
@@ -195,7 +261,7 @@ export interface IPYieldContractFactory extends BaseContract {
195
261
  populateTransaction: {
196
262
  expiryDivisor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
197
263
 
198
- getOT(
264
+ getPT(
199
265
  SCY: string,
200
266
  expiry: BigNumberish,
201
267
  overrides?: CallOverrides
@@ -209,7 +275,7 @@ export interface IPYieldContractFactory extends BaseContract {
209
275
 
210
276
  interestFeeRate(overrides?: CallOverrides): Promise<PopulatedTransaction>;
211
277
 
212
- isOT(
278
+ isPT(
213
279
  arg0: string,
214
280
  overrides?: CallOverrides
215
281
  ): Promise<PopulatedTransaction>;
@@ -25,7 +25,7 @@ import type {
25
25
  export interface IPYieldTokenInterface extends utils.Interface {
26
26
  contractName: "IPYieldToken";
27
27
  functions: {
28
- "OT()": FunctionFragment;
28
+ "PT()": FunctionFragment;
29
29
  "SCY()": FunctionFragment;
30
30
  "allowance(address,address)": FunctionFragment;
31
31
  "approve(address,uint256)": FunctionFragment;
@@ -35,14 +35,15 @@ export interface IPYieldTokenInterface extends utils.Interface {
35
35
  "getGlobalReward(address)": FunctionFragment;
36
36
  "getInterestData(address)": FunctionFragment;
37
37
  "getRewardTokens()": FunctionFragment;
38
- "getScyIndexBeforeExpiry()": FunctionFragment;
38
+ "getScyIndex()": FunctionFragment;
39
39
  "getUserReward(address,address)": FunctionFragment;
40
40
  "isExpired()": FunctionFragment;
41
- "mintYO(address,address)": FunctionFragment;
41
+ "mintPY(address,address)": FunctionFragment;
42
42
  "name()": FunctionFragment;
43
43
  "redeemDueInterest(address)": FunctionFragment;
44
+ "redeemDueInterestAndRewards(address)": FunctionFragment;
44
45
  "redeemDueRewards(address)": FunctionFragment;
45
- "redeemYO(address)": FunctionFragment;
46
+ "redeemPY(address)": FunctionFragment;
46
47
  "symbol()": FunctionFragment;
47
48
  "totalSupply()": FunctionFragment;
48
49
  "transfer(address,uint256)": FunctionFragment;
@@ -53,7 +54,7 @@ export interface IPYieldTokenInterface extends utils.Interface {
53
54
  "withdrawFeeToTreasury()": FunctionFragment;
54
55
  };
55
56
 
56
- encodeFunctionData(functionFragment: "OT", values?: undefined): string;
57
+ encodeFunctionData(functionFragment: "PT", values?: undefined): string;
57
58
  encodeFunctionData(functionFragment: "SCY", values?: undefined): string;
58
59
  encodeFunctionData(
59
60
  functionFragment: "allowance",
@@ -79,7 +80,7 @@ export interface IPYieldTokenInterface extends utils.Interface {
79
80
  values?: undefined
80
81
  ): string;
81
82
  encodeFunctionData(
82
- functionFragment: "getScyIndexBeforeExpiry",
83
+ functionFragment: "getScyIndex",
83
84
  values?: undefined
84
85
  ): string;
85
86
  encodeFunctionData(
@@ -88,7 +89,7 @@ export interface IPYieldTokenInterface extends utils.Interface {
88
89
  ): string;
89
90
  encodeFunctionData(functionFragment: "isExpired", values?: undefined): string;
90
91
  encodeFunctionData(
91
- functionFragment: "mintYO",
92
+ functionFragment: "mintPY",
92
93
  values: [string, string]
93
94
  ): string;
94
95
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
@@ -96,11 +97,15 @@ export interface IPYieldTokenInterface extends utils.Interface {
96
97
  functionFragment: "redeemDueInterest",
97
98
  values: [string]
98
99
  ): string;
100
+ encodeFunctionData(
101
+ functionFragment: "redeemDueInterestAndRewards",
102
+ values: [string]
103
+ ): string;
99
104
  encodeFunctionData(
100
105
  functionFragment: "redeemDueRewards",
101
106
  values: [string]
102
107
  ): string;
103
- encodeFunctionData(functionFragment: "redeemYO", values: [string]): string;
108
+ encodeFunctionData(functionFragment: "redeemPY", values: [string]): string;
104
109
  encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
105
110
  encodeFunctionData(
106
111
  functionFragment: "totalSupply",
@@ -131,7 +136,7 @@ export interface IPYieldTokenInterface extends utils.Interface {
131
136
  values?: undefined
132
137
  ): string;
133
138
 
134
- decodeFunctionResult(functionFragment: "OT", data: BytesLike): Result;
139
+ decodeFunctionResult(functionFragment: "PT", data: BytesLike): Result;
135
140
  decodeFunctionResult(functionFragment: "SCY", data: BytesLike): Result;
136
141
  decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
137
142
  decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
@@ -151,7 +156,7 @@ export interface IPYieldTokenInterface extends utils.Interface {
151
156
  data: BytesLike
152
157
  ): Result;
153
158
  decodeFunctionResult(
154
- functionFragment: "getScyIndexBeforeExpiry",
159
+ functionFragment: "getScyIndex",
155
160
  data: BytesLike
156
161
  ): Result;
157
162
  decodeFunctionResult(
@@ -159,17 +164,21 @@ export interface IPYieldTokenInterface extends utils.Interface {
159
164
  data: BytesLike
160
165
  ): Result;
161
166
  decodeFunctionResult(functionFragment: "isExpired", data: BytesLike): Result;
162
- decodeFunctionResult(functionFragment: "mintYO", data: BytesLike): Result;
167
+ decodeFunctionResult(functionFragment: "mintPY", data: BytesLike): Result;
163
168
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
164
169
  decodeFunctionResult(
165
170
  functionFragment: "redeemDueInterest",
166
171
  data: BytesLike
167
172
  ): Result;
173
+ decodeFunctionResult(
174
+ functionFragment: "redeemDueInterestAndRewards",
175
+ data: BytesLike
176
+ ): Result;
168
177
  decodeFunctionResult(
169
178
  functionFragment: "redeemDueRewards",
170
179
  data: BytesLike
171
180
  ): Result;
172
- decodeFunctionResult(functionFragment: "redeemYO", data: BytesLike): Result;
181
+ decodeFunctionResult(functionFragment: "redeemPY", data: BytesLike): Result;
173
182
  decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
174
183
  decodeFunctionResult(
175
184
  functionFragment: "totalSupply",
@@ -199,11 +208,17 @@ export interface IPYieldTokenInterface extends utils.Interface {
199
208
 
200
209
  events: {
201
210
  "Approval(address,address,uint256)": EventFragment;
211
+ "RedeemInterest(address,uint256)": EventFragment;
212
+ "RedeemReward(address,uint256[])": EventFragment;
202
213
  "Transfer(address,address,uint256)": EventFragment;
214
+ "WithdrawFeeToTreasury(uint256[],uint256)": EventFragment;
203
215
  };
204
216
 
205
217
  getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
218
+ getEvent(nameOrSignatureOrTopic: "RedeemInterest"): EventFragment;
219
+ getEvent(nameOrSignatureOrTopic: "RedeemReward"): EventFragment;
206
220
  getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
221
+ getEvent(nameOrSignatureOrTopic: "WithdrawFeeToTreasury"): EventFragment;
207
222
  }
208
223
 
209
224
  export type ApprovalEvent = TypedEvent<
@@ -213,6 +228,20 @@ export type ApprovalEvent = TypedEvent<
213
228
 
214
229
  export type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
215
230
 
231
+ export type RedeemInterestEvent = TypedEvent<
232
+ [string, BigNumber],
233
+ { user: string; interestOut: BigNumber }
234
+ >;
235
+
236
+ export type RedeemInterestEventFilter = TypedEventFilter<RedeemInterestEvent>;
237
+
238
+ export type RedeemRewardEvent = TypedEvent<
239
+ [string, BigNumber[]],
240
+ { user: string; amountRewardsOut: BigNumber[] }
241
+ >;
242
+
243
+ export type RedeemRewardEventFilter = TypedEventFilter<RedeemRewardEvent>;
244
+
216
245
  export type TransferEvent = TypedEvent<
217
246
  [string, string, BigNumber],
218
247
  { from: string; to: string; value: BigNumber }
@@ -220,6 +249,14 @@ export type TransferEvent = TypedEvent<
220
249
 
221
250
  export type TransferEventFilter = TypedEventFilter<TransferEvent>;
222
251
 
252
+ export type WithdrawFeeToTreasuryEvent = TypedEvent<
253
+ [BigNumber[], BigNumber],
254
+ { amountRewardsOut: BigNumber[]; scyOut: BigNumber }
255
+ >;
256
+
257
+ export type WithdrawFeeToTreasuryEventFilter =
258
+ TypedEventFilter<WithdrawFeeToTreasuryEvent>;
259
+
223
260
  export interface IPYieldToken extends BaseContract {
224
261
  contractName: "IPYieldToken";
225
262
  connect(signerOrProvider: Signer | Provider | string): this;
@@ -248,7 +285,7 @@ export interface IPYieldToken extends BaseContract {
248
285
  removeListener: OnEvent<this>;
249
286
 
250
287
  functions: {
251
- OT(overrides?: CallOverrides): Promise<[string]>;
288
+ PT(overrides?: CallOverrides): Promise<[string]>;
252
289
 
253
290
  SCY(overrides?: CallOverrides): Promise<[string]>;
254
291
 
@@ -289,7 +326,7 @@ export interface IPYieldToken extends BaseContract {
289
326
 
290
327
  getRewardTokens(overrides?: CallOverrides): Promise<[string[]]>;
291
328
 
292
- getScyIndexBeforeExpiry(
329
+ getScyIndex(
293
330
  overrides?: Overrides & { from?: string | Promise<string> }
294
331
  ): Promise<ContractTransaction>;
295
332
 
@@ -306,8 +343,8 @@ export interface IPYieldToken extends BaseContract {
306
343
 
307
344
  isExpired(overrides?: CallOverrides): Promise<[boolean]>;
308
345
 
309
- mintYO(
310
- receiverOT: string,
346
+ mintPY(
347
+ receiverPT: string,
311
348
  receiverYT: string,
312
349
  overrides?: Overrides & { from?: string | Promise<string> }
313
350
  ): Promise<ContractTransaction>;
@@ -319,12 +356,17 @@ export interface IPYieldToken extends BaseContract {
319
356
  overrides?: Overrides & { from?: string | Promise<string> }
320
357
  ): Promise<ContractTransaction>;
321
358
 
359
+ redeemDueInterestAndRewards(
360
+ user: string,
361
+ overrides?: Overrides & { from?: string | Promise<string> }
362
+ ): Promise<ContractTransaction>;
363
+
322
364
  redeemDueRewards(
323
365
  user: string,
324
366
  overrides?: Overrides & { from?: string | Promise<string> }
325
367
  ): Promise<ContractTransaction>;
326
368
 
327
- redeemYO(
369
+ redeemPY(
328
370
  receiver: string,
329
371
  overrides?: Overrides & { from?: string | Promise<string> }
330
372
  ): Promise<ContractTransaction>;
@@ -365,7 +407,7 @@ export interface IPYieldToken extends BaseContract {
365
407
  ): Promise<ContractTransaction>;
366
408
  };
367
409
 
368
- OT(overrides?: CallOverrides): Promise<string>;
410
+ PT(overrides?: CallOverrides): Promise<string>;
369
411
 
370
412
  SCY(overrides?: CallOverrides): Promise<string>;
371
413
 
@@ -403,7 +445,7 @@ export interface IPYieldToken extends BaseContract {
403
445
 
404
446
  getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
405
447
 
406
- getScyIndexBeforeExpiry(
448
+ getScyIndex(
407
449
  overrides?: Overrides & { from?: string | Promise<string> }
408
450
  ): Promise<ContractTransaction>;
409
451
 
@@ -417,8 +459,8 @@ export interface IPYieldToken extends BaseContract {
417
459
 
418
460
  isExpired(overrides?: CallOverrides): Promise<boolean>;
419
461
 
420
- mintYO(
421
- receiverOT: string,
462
+ mintPY(
463
+ receiverPT: string,
422
464
  receiverYT: string,
423
465
  overrides?: Overrides & { from?: string | Promise<string> }
424
466
  ): Promise<ContractTransaction>;
@@ -430,12 +472,17 @@ export interface IPYieldToken extends BaseContract {
430
472
  overrides?: Overrides & { from?: string | Promise<string> }
431
473
  ): Promise<ContractTransaction>;
432
474
 
475
+ redeemDueInterestAndRewards(
476
+ user: string,
477
+ overrides?: Overrides & { from?: string | Promise<string> }
478
+ ): Promise<ContractTransaction>;
479
+
433
480
  redeemDueRewards(
434
481
  user: string,
435
482
  overrides?: Overrides & { from?: string | Promise<string> }
436
483
  ): Promise<ContractTransaction>;
437
484
 
438
- redeemYO(
485
+ redeemPY(
439
486
  receiver: string,
440
487
  overrides?: Overrides & { from?: string | Promise<string> }
441
488
  ): Promise<ContractTransaction>;
@@ -476,7 +523,7 @@ export interface IPYieldToken extends BaseContract {
476
523
  ): Promise<ContractTransaction>;
477
524
 
478
525
  callStatic: {
479
- OT(overrides?: CallOverrides): Promise<string>;
526
+ PT(overrides?: CallOverrides): Promise<string>;
480
527
 
481
528
  SCY(overrides?: CallOverrides): Promise<string>;
482
529
 
@@ -517,7 +564,14 @@ export interface IPYieldToken extends BaseContract {
517
564
 
518
565
  getRewardTokens(overrides?: CallOverrides): Promise<string[]>;
519
566
 
520
- getScyIndexBeforeExpiry(overrides?: CallOverrides): Promise<BigNumber>;
567
+ getScyIndex(
568
+ overrides?: CallOverrides
569
+ ): Promise<
570
+ [BigNumber, BigNumber] & {
571
+ currentIndex: BigNumber;
572
+ lastIndexBeforeExpiry: BigNumber;
573
+ }
574
+ >;
521
575
 
522
576
  getUserReward(
523
577
  user: string,
@@ -532,8 +586,8 @@ export interface IPYieldToken extends BaseContract {
532
586
 
533
587
  isExpired(overrides?: CallOverrides): Promise<boolean>;
534
588
 
535
- mintYO(
536
- receiverOT: string,
589
+ mintPY(
590
+ receiverPT: string,
537
591
  receiverYT: string,
538
592
  overrides?: CallOverrides
539
593
  ): Promise<BigNumber>;
@@ -545,12 +599,22 @@ export interface IPYieldToken extends BaseContract {
545
599
  overrides?: CallOverrides
546
600
  ): Promise<BigNumber>;
547
601
 
602
+ redeemDueInterestAndRewards(
603
+ user: string,
604
+ overrides?: CallOverrides
605
+ ): Promise<
606
+ [BigNumber, BigNumber[]] & {
607
+ interestOut: BigNumber;
608
+ rewardsOut: BigNumber[];
609
+ }
610
+ >;
611
+
548
612
  redeemDueRewards(
549
613
  user: string,
550
614
  overrides?: CallOverrides
551
615
  ): Promise<BigNumber[]>;
552
616
 
553
- redeemYO(receiver: string, overrides?: CallOverrides): Promise<BigNumber>;
617
+ redeemPY(receiver: string, overrides?: CallOverrides): Promise<BigNumber>;
554
618
 
555
619
  symbol(overrides?: CallOverrides): Promise<string>;
556
620
 
@@ -590,6 +654,24 @@ export interface IPYieldToken extends BaseContract {
590
654
  value?: null
591
655
  ): ApprovalEventFilter;
592
656
 
657
+ "RedeemInterest(address,uint256)"(
658
+ user?: string | null,
659
+ interestOut?: null
660
+ ): RedeemInterestEventFilter;
661
+ RedeemInterest(
662
+ user?: string | null,
663
+ interestOut?: null
664
+ ): RedeemInterestEventFilter;
665
+
666
+ "RedeemReward(address,uint256[])"(
667
+ user?: string | null,
668
+ amountRewardsOut?: null
669
+ ): RedeemRewardEventFilter;
670
+ RedeemReward(
671
+ user?: string | null,
672
+ amountRewardsOut?: null
673
+ ): RedeemRewardEventFilter;
674
+
593
675
  "Transfer(address,address,uint256)"(
594
676
  from?: string | null,
595
677
  to?: string | null,
@@ -600,10 +682,19 @@ export interface IPYieldToken extends BaseContract {
600
682
  to?: string | null,
601
683
  value?: null
602
684
  ): TransferEventFilter;
685
+
686
+ "WithdrawFeeToTreasury(uint256[],uint256)"(
687
+ amountRewardsOut?: null,
688
+ scyOut?: null
689
+ ): WithdrawFeeToTreasuryEventFilter;
690
+ WithdrawFeeToTreasury(
691
+ amountRewardsOut?: null,
692
+ scyOut?: null
693
+ ): WithdrawFeeToTreasuryEventFilter;
603
694
  };
604
695
 
605
696
  estimateGas: {
606
- OT(overrides?: CallOverrides): Promise<BigNumber>;
697
+ PT(overrides?: CallOverrides): Promise<BigNumber>;
607
698
 
608
699
  SCY(overrides?: CallOverrides): Promise<BigNumber>;
609
700
 
@@ -637,7 +728,7 @@ export interface IPYieldToken extends BaseContract {
637
728
 
638
729
  getRewardTokens(overrides?: CallOverrides): Promise<BigNumber>;
639
730
 
640
- getScyIndexBeforeExpiry(
731
+ getScyIndex(
641
732
  overrides?: Overrides & { from?: string | Promise<string> }
642
733
  ): Promise<BigNumber>;
643
734
 
@@ -649,8 +740,8 @@ export interface IPYieldToken extends BaseContract {
649
740
 
650
741
  isExpired(overrides?: CallOverrides): Promise<BigNumber>;
651
742
 
652
- mintYO(
653
- receiverOT: string,
743
+ mintPY(
744
+ receiverPT: string,
654
745
  receiverYT: string,
655
746
  overrides?: Overrides & { from?: string | Promise<string> }
656
747
  ): Promise<BigNumber>;
@@ -662,12 +753,17 @@ export interface IPYieldToken extends BaseContract {
662
753
  overrides?: Overrides & { from?: string | Promise<string> }
663
754
  ): Promise<BigNumber>;
664
755
 
756
+ redeemDueInterestAndRewards(
757
+ user: string,
758
+ overrides?: Overrides & { from?: string | Promise<string> }
759
+ ): Promise<BigNumber>;
760
+
665
761
  redeemDueRewards(
666
762
  user: string,
667
763
  overrides?: Overrides & { from?: string | Promise<string> }
668
764
  ): Promise<BigNumber>;
669
765
 
670
- redeemYO(
766
+ redeemPY(
671
767
  receiver: string,
672
768
  overrides?: Overrides & { from?: string | Promise<string> }
673
769
  ): Promise<BigNumber>;
@@ -709,7 +805,7 @@ export interface IPYieldToken extends BaseContract {
709
805
  };
710
806
 
711
807
  populateTransaction: {
712
- OT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
808
+ PT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
713
809
 
714
810
  SCY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
715
811
 
@@ -746,7 +842,7 @@ export interface IPYieldToken extends BaseContract {
746
842
 
747
843
  getRewardTokens(overrides?: CallOverrides): Promise<PopulatedTransaction>;
748
844
 
749
- getScyIndexBeforeExpiry(
845
+ getScyIndex(
750
846
  overrides?: Overrides & { from?: string | Promise<string> }
751
847
  ): Promise<PopulatedTransaction>;
752
848
 
@@ -758,8 +854,8 @@ export interface IPYieldToken extends BaseContract {
758
854
 
759
855
  isExpired(overrides?: CallOverrides): Promise<PopulatedTransaction>;
760
856
 
761
- mintYO(
762
- receiverOT: string,
857
+ mintPY(
858
+ receiverPT: string,
763
859
  receiverYT: string,
764
860
  overrides?: Overrides & { from?: string | Promise<string> }
765
861
  ): Promise<PopulatedTransaction>;
@@ -771,12 +867,17 @@ export interface IPYieldToken extends BaseContract {
771
867
  overrides?: Overrides & { from?: string | Promise<string> }
772
868
  ): Promise<PopulatedTransaction>;
773
869
 
870
+ redeemDueInterestAndRewards(
871
+ user: string,
872
+ overrides?: Overrides & { from?: string | Promise<string> }
873
+ ): Promise<PopulatedTransaction>;
874
+
774
875
  redeemDueRewards(
775
876
  user: string,
776
877
  overrides?: Overrides & { from?: string | Promise<string> }
777
878
  ): Promise<PopulatedTransaction>;
778
879
 
779
- redeemYO(
880
+ redeemPY(
780
881
  receiver: string,
781
882
  overrides?: Overrides & { from?: string | Promise<string> }
782
883
  ): Promise<PopulatedTransaction>;