@pendle/core-v2 0.1.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 (182) hide show
  1. package/LICENSE +100 -0
  2. package/contracts/SuperComposableYield/ISuperComposableYield.sol +68 -0
  3. package/contracts/SuperComposableYield/SCYUtils.sol +14 -0
  4. package/contracts/SuperComposableYield/implementations/RewardManager.sol +117 -0
  5. package/contracts/SuperComposableYield/implementations/SCYBase.sol +126 -0
  6. package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +79 -0
  7. package/contracts/core/PendleBaseToken.sol +39 -0
  8. package/contracts/core/PendleMarket.sol +248 -0
  9. package/contracts/core/PendleMarketFactory.sol +60 -0
  10. package/contracts/core/PendleOwnershipToken.sol +44 -0
  11. package/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol +139 -0
  12. package/contracts/core/PendleSCYImpl/AaveV3/WadRayMath.sol +126 -0
  13. package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +127 -0
  14. package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +125 -0
  15. package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +115 -0
  16. package/contracts/core/PendleYieldContractFactory.sol +109 -0
  17. package/contracts/core/PendleYieldToken.sol +240 -0
  18. package/contracts/core/misc/BoringOwnable.sol +62 -0
  19. package/contracts/core/misc/BoringOwnableUpg.sol +64 -0
  20. package/contracts/core/misc/PendleJoeSwapHelperUpg.sol +82 -0
  21. package/contracts/core/router/PendleRouterCoreUpg.sol +219 -0
  22. package/contracts/core/router/PendleRouterProxy.sol +64 -0
  23. package/contracts/core/router/PendleRouterYTUpg.sol +134 -0
  24. package/contracts/core/router/base/PendleRouterOTBaseUpg.sol +218 -0
  25. package/contracts/core/router/base/PendleRouterSCYAndForgeBaseUpg.sol +141 -0
  26. package/contracts/core/router/base/PendleRouterYTBaseUpg.sol +212 -0
  27. package/contracts/interfaces/IAToken.sol +34 -0
  28. package/contracts/interfaces/IAavePool.sol +41 -0
  29. package/contracts/interfaces/IAaveRewardsController.sol +32 -0
  30. package/contracts/interfaces/IBenQiComptroller.sol +33 -0
  31. package/contracts/interfaces/IJoePair.sol +98 -0
  32. package/contracts/interfaces/IJoeRouter01.sol +162 -0
  33. package/contracts/interfaces/IPBaseToken.sol +9 -0
  34. package/contracts/interfaces/IPFlashCallBack.sol +10 -0
  35. package/contracts/interfaces/IPGovernanceManager.sol +28 -0
  36. package/contracts/interfaces/IPMarket.sol +57 -0
  37. package/contracts/interfaces/IPMarketAddRemoveCallback.sol +18 -0
  38. package/contracts/interfaces/IPMarketFactory.sol +8 -0
  39. package/contracts/interfaces/IPMarketSwapCallback.sol +10 -0
  40. package/contracts/interfaces/IPOwnershipToken.sol +15 -0
  41. package/contracts/interfaces/IPPermissionsV2.sol +28 -0
  42. package/contracts/interfaces/IPRouterCore.sol +108 -0
  43. package/contracts/interfaces/IPRouterYT.sol +47 -0
  44. package/contracts/interfaces/IPYieldContractFactory.sol +36 -0
  45. package/contracts/interfaces/IPYieldToken.sol +19 -0
  46. package/contracts/interfaces/IQiErc20.sol +35 -0
  47. package/contracts/interfaces/IQiToken.sol +29 -0
  48. package/contracts/interfaces/IREDACTEDStaking.sol +35 -0
  49. package/contracts/interfaces/IWETH.sol +34 -0
  50. package/contracts/interfaces/IWXBTRFLY.sol +37 -0
  51. package/contracts/interfaces/IYearnVault.sol +32 -0
  52. package/contracts/libraries/JoeLibrary.sol +121 -0
  53. package/contracts/libraries/SCYIndex.sol +55 -0
  54. package/contracts/libraries/helpers/ExpiryUtilsLib.sol +166 -0
  55. package/contracts/libraries/math/FixedPoint.sol +208 -0
  56. package/contracts/libraries/math/LogExpMath.sol +515 -0
  57. package/contracts/libraries/math/MarketApproxLib.sol +140 -0
  58. package/contracts/libraries/math/MarketMathLib.sol +606 -0
  59. package/contracts/periphery/PendleGovernanceManager.sol +36 -0
  60. package/contracts/periphery/PermissionsV2.sol +23 -0
  61. package/package.json +76 -0
  62. package/typechain-types/BoringOwnable.ts +194 -0
  63. package/typechain-types/BoringOwnableData.ts +100 -0
  64. package/typechain-types/BoringOwnableUpg.ts +194 -0
  65. package/typechain-types/BoringOwnableUpgData.ts +100 -0
  66. package/typechain-types/ERC1967UpgradeUpgradeable.ts +97 -0
  67. package/typechain-types/ERC20.ts +417 -0
  68. package/typechain-types/IAToken.ts +331 -0
  69. package/typechain-types/IAavePool.ts +192 -0
  70. package/typechain-types/IAaveRewardsController.ts +148 -0
  71. package/typechain-types/IBeaconUpgradeable.ts +87 -0
  72. package/typechain-types/IBenQiComptroller.ts +125 -0
  73. package/typechain-types/IERC1822ProxiableUpgradeable.ts +87 -0
  74. package/typechain-types/IERC20.ts +300 -0
  75. package/typechain-types/IERC20Metadata.ts +339 -0
  76. package/typechain-types/IJoePair.ts +888 -0
  77. package/typechain-types/IJoeRouter01.ts +1107 -0
  78. package/typechain-types/IPBaseToken.ts +365 -0
  79. package/typechain-types/IPFlashCallback.ts +115 -0
  80. package/typechain-types/IPGovernanceManager.ts +84 -0
  81. package/typechain-types/IPMarket.ts +701 -0
  82. package/typechain-types/IPMarketAddRemoveCallback.ts +169 -0
  83. package/typechain-types/IPMarketFactory.ts +109 -0
  84. package/typechain-types/IPMarketSwapCallback.ts +115 -0
  85. package/typechain-types/IPOwnershipToken.ts +488 -0
  86. package/typechain-types/IPRouterCore.ts +759 -0
  87. package/typechain-types/IPRouterYT.ts +405 -0
  88. package/typechain-types/IPYieldContractFactory.ts +192 -0
  89. package/typechain-types/IPYieldToken.ts +525 -0
  90. package/typechain-types/IPermissionsV2.ts +87 -0
  91. package/typechain-types/IQiErc20.ts +402 -0
  92. package/typechain-types/IQiToken.ts +327 -0
  93. package/typechain-types/IREDACTEDStaking.ts +216 -0
  94. package/typechain-types/ISuperComposableYield.ts +652 -0
  95. package/typechain-types/IWETH.ts +380 -0
  96. package/typechain-types/IWXBTRFLY.ts +254 -0
  97. package/typechain-types/IYearnVault.ts +152 -0
  98. package/typechain-types/PendleAaveV3SCY.ts +901 -0
  99. package/typechain-types/PendleBaseToken.ts +505 -0
  100. package/typechain-types/PendleBenQiErc20SCY.ts +914 -0
  101. package/typechain-types/PendleBtrflyScy.ts +794 -0
  102. package/typechain-types/PendleGovernanceManager.ts +187 -0
  103. package/typechain-types/PendleJoeSwapHelperUpg.ts +97 -0
  104. package/typechain-types/PendleMarket.ts +1008 -0
  105. package/typechain-types/PendleMarketFactory.ts +246 -0
  106. package/typechain-types/PendleOwnershipToken.ts +628 -0
  107. package/typechain-types/PendleRouterCoreUpg.ts +780 -0
  108. package/typechain-types/PendleRouterProxy.ts +417 -0
  109. package/typechain-types/PendleRouterSCYAndForgeBaseUpg.ts +98 -0
  110. package/typechain-types/PendleRouterYTBaseUpg.ts +134 -0
  111. package/typechain-types/PendleRouterYTUpg.ts +453 -0
  112. package/typechain-types/PendleYearnVaultScy.ts +784 -0
  113. package/typechain-types/PendleYieldContractFactory.ts +479 -0
  114. package/typechain-types/PendleYieldToken.ts +1030 -0
  115. package/typechain-types/PermissionsV2.ts +87 -0
  116. package/typechain-types/Proxy.ts +57 -0
  117. package/typechain-types/RewardManager.ts +172 -0
  118. package/typechain-types/SCYBase.ts +734 -0
  119. package/typechain-types/SCYBaseWithRewards.ts +819 -0
  120. package/typechain-types/UUPSUpgradeable.ts +197 -0
  121. package/typechain-types/common.ts +44 -0
  122. package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
  123. package/typechain-types/factories/BoringOwnableUpgData__factory.ts +94 -0
  124. package/typechain-types/factories/BoringOwnableUpg__factory.ts +139 -0
  125. package/typechain-types/factories/BoringOwnable__factory.ts +149 -0
  126. package/typechain-types/factories/ERC1967UpgradeUpgradeable__factory.ts +75 -0
  127. package/typechain-types/factories/ERC20__factory.ts +348 -0
  128. package/typechain-types/factories/IAToken__factory.ts +225 -0
  129. package/typechain-types/factories/IAavePool__factory.ts +99 -0
  130. package/typechain-types/factories/IAaveRewardsController__factory.ts +78 -0
  131. package/typechain-types/factories/IBeaconUpgradeable__factory.ts +39 -0
  132. package/typechain-types/factories/IBenQiComptroller__factory.ts +59 -0
  133. package/typechain-types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  134. package/typechain-types/factories/IERC20Metadata__factory.ts +248 -0
  135. package/typechain-types/factories/IERC20__factory.ts +203 -0
  136. package/typechain-types/factories/IJoePair__factory.ts +674 -0
  137. package/typechain-types/factories/IJoeRouter01__factory.ts +772 -0
  138. package/typechain-types/factories/IPBaseToken__factory.ts +271 -0
  139. package/typechain-types/factories/IPFlashCallback__factory.ts +49 -0
  140. package/typechain-types/factories/IPGovernanceManager__factory.ts +39 -0
  141. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +86 -0
  142. package/typechain-types/factories/IPMarketFactory__factory.ts +58 -0
  143. package/typechain-types/factories/IPMarketSwapCallback__factory.ts +53 -0
  144. package/typechain-types/factories/IPMarket__factory.ts +559 -0
  145. package/typechain-types/factories/IPOwnershipToken__factory.ts +349 -0
  146. package/typechain-types/factories/IPRouterCore__factory.ts +516 -0
  147. package/typechain-types/factories/IPRouterYT__factory.ts +246 -0
  148. package/typechain-types/factories/IPYieldContractFactory__factory.ts +117 -0
  149. package/typechain-types/factories/IPYieldToken__factory.ts +383 -0
  150. package/typechain-types/factories/IPermissionsV2__factory.ts +39 -0
  151. package/typechain-types/factories/IQiErc20__factory.ts +270 -0
  152. package/typechain-types/factories/IQiToken__factory.ts +219 -0
  153. package/typechain-types/factories/IREDACTEDStaking__factory.ts +107 -0
  154. package/typechain-types/factories/ISuperComposableYield__factory.ts +438 -0
  155. package/typechain-types/factories/IWETH__factory.ts +261 -0
  156. package/typechain-types/factories/IWXBTRFLY__factory.ts +131 -0
  157. package/typechain-types/factories/IYearnVault__factory.ts +74 -0
  158. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +727 -0
  159. package/typechain-types/factories/PendleBaseToken__factory.ts +386 -0
  160. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +753 -0
  161. package/typechain-types/factories/PendleBtrflyScy__factory.ts +652 -0
  162. package/typechain-types/factories/PendleGovernanceManager__factory.ts +149 -0
  163. package/typechain-types/factories/PendleJoeSwapHelperUpg__factory.ts +56 -0
  164. package/typechain-types/factories/PendleMarketFactory__factory.ts +207 -0
  165. package/typechain-types/factories/PendleMarket__factory.ts +891 -0
  166. package/typechain-types/factories/PendleOwnershipToken__factory.ts +565 -0
  167. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +620 -0
  168. package/typechain-types/factories/PendleRouterProxy__factory.ts +316 -0
  169. package/typechain-types/factories/PendleRouterSCYAndForgeBaseUpg__factory.ts +56 -0
  170. package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +66 -0
  171. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +363 -0
  172. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +630 -0
  173. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +368 -0
  174. package/typechain-types/factories/PendleYieldToken__factory.ts +814 -0
  175. package/typechain-types/factories/PermissionsV2__factory.ts +36 -0
  176. package/typechain-types/factories/Proxy__factory.ts +28 -0
  177. package/typechain-types/factories/RewardManager__factory.ts +89 -0
  178. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +535 -0
  179. package/typechain-types/factories/SCYBase__factory.ts +479 -0
  180. package/typechain-types/factories/UUPSUpgradeable__factory.ts +115 -0
  181. package/typechain-types/hardhat.d.ts +564 -0
  182. package/typechain-types/index.ts +122 -0
@@ -0,0 +1,814 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Signer,
6
+ utils,
7
+ Contract,
8
+ ContractFactory,
9
+ Overrides,
10
+ BigNumberish,
11
+ } from "ethers";
12
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
13
+ import type {
14
+ PendleYieldToken,
15
+ PendleYieldTokenInterface,
16
+ } from "../PendleYieldToken";
17
+
18
+ const _abi = [
19
+ {
20
+ inputs: [
21
+ {
22
+ internalType: "address",
23
+ name: "_SCY",
24
+ type: "address",
25
+ },
26
+ {
27
+ internalType: "address",
28
+ name: "_OT",
29
+ type: "address",
30
+ },
31
+ {
32
+ internalType: "string",
33
+ name: "_name",
34
+ type: "string",
35
+ },
36
+ {
37
+ internalType: "string",
38
+ name: "_symbol",
39
+ type: "string",
40
+ },
41
+ {
42
+ internalType: "uint8",
43
+ name: "__decimals",
44
+ type: "uint8",
45
+ },
46
+ {
47
+ internalType: "uint256",
48
+ name: "_expiry",
49
+ type: "uint256",
50
+ },
51
+ ],
52
+ stateMutability: "nonpayable",
53
+ type: "constructor",
54
+ },
55
+ {
56
+ anonymous: false,
57
+ inputs: [
58
+ {
59
+ indexed: true,
60
+ internalType: "address",
61
+ name: "owner",
62
+ type: "address",
63
+ },
64
+ {
65
+ indexed: true,
66
+ internalType: "address",
67
+ name: "spender",
68
+ type: "address",
69
+ },
70
+ {
71
+ indexed: false,
72
+ internalType: "uint256",
73
+ name: "value",
74
+ type: "uint256",
75
+ },
76
+ ],
77
+ name: "Approval",
78
+ type: "event",
79
+ },
80
+ {
81
+ anonymous: false,
82
+ inputs: [
83
+ {
84
+ indexed: true,
85
+ internalType: "address",
86
+ name: "user",
87
+ type: "address",
88
+ },
89
+ {
90
+ indexed: false,
91
+ internalType: "uint256",
92
+ name: "amount",
93
+ type: "uint256",
94
+ },
95
+ ],
96
+ name: "Burn",
97
+ type: "event",
98
+ },
99
+ {
100
+ anonymous: false,
101
+ inputs: [
102
+ {
103
+ indexed: true,
104
+ internalType: "address",
105
+ name: "user",
106
+ type: "address",
107
+ },
108
+ {
109
+ indexed: false,
110
+ internalType: "uint256",
111
+ name: "amount",
112
+ type: "uint256",
113
+ },
114
+ ],
115
+ name: "Mint",
116
+ type: "event",
117
+ },
118
+ {
119
+ anonymous: false,
120
+ inputs: [
121
+ {
122
+ indexed: true,
123
+ internalType: "address",
124
+ name: "from",
125
+ type: "address",
126
+ },
127
+ {
128
+ indexed: true,
129
+ internalType: "address",
130
+ name: "to",
131
+ type: "address",
132
+ },
133
+ {
134
+ indexed: false,
135
+ internalType: "uint256",
136
+ name: "value",
137
+ type: "uint256",
138
+ },
139
+ ],
140
+ name: "Transfer",
141
+ type: "event",
142
+ },
143
+ {
144
+ inputs: [],
145
+ name: "OT",
146
+ outputs: [
147
+ {
148
+ internalType: "address",
149
+ name: "",
150
+ type: "address",
151
+ },
152
+ ],
153
+ stateMutability: "view",
154
+ type: "function",
155
+ },
156
+ {
157
+ inputs: [],
158
+ name: "SCY",
159
+ outputs: [
160
+ {
161
+ internalType: "address",
162
+ name: "",
163
+ type: "address",
164
+ },
165
+ ],
166
+ stateMutability: "view",
167
+ type: "function",
168
+ },
169
+ {
170
+ inputs: [
171
+ {
172
+ internalType: "address",
173
+ name: "owner",
174
+ type: "address",
175
+ },
176
+ {
177
+ internalType: "address",
178
+ name: "spender",
179
+ type: "address",
180
+ },
181
+ ],
182
+ name: "allowance",
183
+ outputs: [
184
+ {
185
+ internalType: "uint256",
186
+ name: "",
187
+ type: "uint256",
188
+ },
189
+ ],
190
+ stateMutability: "view",
191
+ type: "function",
192
+ },
193
+ {
194
+ inputs: [
195
+ {
196
+ internalType: "address",
197
+ name: "spender",
198
+ type: "address",
199
+ },
200
+ {
201
+ internalType: "uint256",
202
+ name: "amount",
203
+ type: "uint256",
204
+ },
205
+ ],
206
+ name: "approve",
207
+ outputs: [
208
+ {
209
+ internalType: "bool",
210
+ name: "",
211
+ type: "bool",
212
+ },
213
+ ],
214
+ stateMutability: "nonpayable",
215
+ type: "function",
216
+ },
217
+ {
218
+ inputs: [
219
+ {
220
+ internalType: "address",
221
+ name: "account",
222
+ type: "address",
223
+ },
224
+ ],
225
+ name: "balanceOf",
226
+ outputs: [
227
+ {
228
+ internalType: "uint256",
229
+ name: "",
230
+ type: "uint256",
231
+ },
232
+ ],
233
+ stateMutability: "view",
234
+ type: "function",
235
+ },
236
+ {
237
+ inputs: [
238
+ {
239
+ internalType: "address",
240
+ name: "",
241
+ type: "address",
242
+ },
243
+ ],
244
+ name: "data",
245
+ outputs: [
246
+ {
247
+ internalType: "uint256",
248
+ name: "lastScyIndex",
249
+ type: "uint256",
250
+ },
251
+ {
252
+ internalType: "uint256",
253
+ name: "dueInterest",
254
+ type: "uint256",
255
+ },
256
+ ],
257
+ stateMutability: "view",
258
+ type: "function",
259
+ },
260
+ {
261
+ inputs: [],
262
+ name: "decimals",
263
+ outputs: [
264
+ {
265
+ internalType: "uint8",
266
+ name: "",
267
+ type: "uint8",
268
+ },
269
+ ],
270
+ stateMutability: "view",
271
+ type: "function",
272
+ },
273
+ {
274
+ inputs: [
275
+ {
276
+ internalType: "address",
277
+ name: "spender",
278
+ type: "address",
279
+ },
280
+ {
281
+ internalType: "uint256",
282
+ name: "subtractedValue",
283
+ type: "uint256",
284
+ },
285
+ ],
286
+ name: "decreaseAllowance",
287
+ outputs: [
288
+ {
289
+ internalType: "bool",
290
+ name: "",
291
+ type: "bool",
292
+ },
293
+ ],
294
+ stateMutability: "nonpayable",
295
+ type: "function",
296
+ },
297
+ {
298
+ inputs: [],
299
+ name: "expiry",
300
+ outputs: [
301
+ {
302
+ internalType: "uint256",
303
+ name: "",
304
+ type: "uint256",
305
+ },
306
+ ],
307
+ stateMutability: "view",
308
+ type: "function",
309
+ },
310
+ {
311
+ inputs: [],
312
+ name: "factory",
313
+ outputs: [
314
+ {
315
+ internalType: "address",
316
+ name: "",
317
+ type: "address",
318
+ },
319
+ ],
320
+ stateMutability: "view",
321
+ type: "function",
322
+ },
323
+ {
324
+ inputs: [],
325
+ name: "getRewardTokens",
326
+ outputs: [
327
+ {
328
+ internalType: "address[]",
329
+ name: "",
330
+ type: "address[]",
331
+ },
332
+ ],
333
+ stateMutability: "view",
334
+ type: "function",
335
+ },
336
+ {
337
+ inputs: [],
338
+ name: "getScyIndexBeforeExpiry",
339
+ outputs: [
340
+ {
341
+ internalType: "uint256",
342
+ name: "res",
343
+ type: "uint256",
344
+ },
345
+ ],
346
+ stateMutability: "nonpayable",
347
+ type: "function",
348
+ },
349
+ {
350
+ inputs: [
351
+ {
352
+ internalType: "address",
353
+ name: "",
354
+ type: "address",
355
+ },
356
+ ],
357
+ name: "globalReward",
358
+ outputs: [
359
+ {
360
+ internalType: "uint256",
361
+ name: "index",
362
+ type: "uint256",
363
+ },
364
+ {
365
+ internalType: "uint256",
366
+ name: "lastBalance",
367
+ type: "uint256",
368
+ },
369
+ ],
370
+ stateMutability: "view",
371
+ type: "function",
372
+ },
373
+ {
374
+ inputs: [
375
+ {
376
+ internalType: "address",
377
+ name: "spender",
378
+ type: "address",
379
+ },
380
+ {
381
+ internalType: "uint256",
382
+ name: "addedValue",
383
+ type: "uint256",
384
+ },
385
+ ],
386
+ name: "increaseAllowance",
387
+ outputs: [
388
+ {
389
+ internalType: "bool",
390
+ name: "",
391
+ type: "bool",
392
+ },
393
+ ],
394
+ stateMutability: "nonpayable",
395
+ type: "function",
396
+ },
397
+ {
398
+ inputs: [],
399
+ name: "isExpired",
400
+ outputs: [
401
+ {
402
+ internalType: "bool",
403
+ name: "res",
404
+ type: "bool",
405
+ },
406
+ ],
407
+ stateMutability: "view",
408
+ type: "function",
409
+ },
410
+ {
411
+ inputs: [],
412
+ name: "lastScyBalance",
413
+ outputs: [
414
+ {
415
+ internalType: "uint256",
416
+ name: "",
417
+ type: "uint256",
418
+ },
419
+ ],
420
+ stateMutability: "view",
421
+ type: "function",
422
+ },
423
+ {
424
+ inputs: [],
425
+ name: "lastScyIndexBeforeExpiry",
426
+ outputs: [
427
+ {
428
+ internalType: "uint256",
429
+ name: "",
430
+ type: "uint256",
431
+ },
432
+ ],
433
+ stateMutability: "view",
434
+ type: "function",
435
+ },
436
+ {
437
+ inputs: [
438
+ {
439
+ internalType: "address",
440
+ name: "receiverOT",
441
+ type: "address",
442
+ },
443
+ {
444
+ internalType: "address",
445
+ name: "receiverYT",
446
+ type: "address",
447
+ },
448
+ ],
449
+ name: "mintYO",
450
+ outputs: [
451
+ {
452
+ internalType: "uint256",
453
+ name: "amountYOOut",
454
+ type: "uint256",
455
+ },
456
+ ],
457
+ stateMutability: "nonpayable",
458
+ type: "function",
459
+ },
460
+ {
461
+ inputs: [],
462
+ name: "name",
463
+ outputs: [
464
+ {
465
+ internalType: "string",
466
+ name: "",
467
+ type: "string",
468
+ },
469
+ ],
470
+ stateMutability: "view",
471
+ type: "function",
472
+ },
473
+ {
474
+ inputs: [
475
+ {
476
+ internalType: "uint256",
477
+ name: "",
478
+ type: "uint256",
479
+ },
480
+ ],
481
+ name: "paramL",
482
+ outputs: [
483
+ {
484
+ internalType: "uint256",
485
+ name: "",
486
+ type: "uint256",
487
+ },
488
+ ],
489
+ stateMutability: "view",
490
+ type: "function",
491
+ },
492
+ {
493
+ inputs: [
494
+ {
495
+ internalType: "address",
496
+ name: "user",
497
+ type: "address",
498
+ },
499
+ ],
500
+ name: "redeemDueInterest",
501
+ outputs: [
502
+ {
503
+ internalType: "uint256",
504
+ name: "interestOut",
505
+ type: "uint256",
506
+ },
507
+ ],
508
+ stateMutability: "nonpayable",
509
+ type: "function",
510
+ },
511
+ {
512
+ inputs: [
513
+ {
514
+ internalType: "address",
515
+ name: "user",
516
+ type: "address",
517
+ },
518
+ {
519
+ internalType: "address",
520
+ name: "receiver",
521
+ type: "address",
522
+ },
523
+ ],
524
+ name: "redeemDueRewards",
525
+ outputs: [
526
+ {
527
+ internalType: "uint256[]",
528
+ name: "rewardsOut",
529
+ type: "uint256[]",
530
+ },
531
+ ],
532
+ stateMutability: "nonpayable",
533
+ type: "function",
534
+ },
535
+ {
536
+ inputs: [
537
+ {
538
+ internalType: "address",
539
+ name: "receiver",
540
+ type: "address",
541
+ },
542
+ ],
543
+ name: "redeemYO",
544
+ outputs: [
545
+ {
546
+ internalType: "uint256",
547
+ name: "amountScyOut",
548
+ type: "uint256",
549
+ },
550
+ ],
551
+ stateMutability: "nonpayable",
552
+ type: "function",
553
+ },
554
+ {
555
+ inputs: [],
556
+ name: "symbol",
557
+ outputs: [
558
+ {
559
+ internalType: "string",
560
+ name: "",
561
+ type: "string",
562
+ },
563
+ ],
564
+ stateMutability: "view",
565
+ type: "function",
566
+ },
567
+ {
568
+ inputs: [],
569
+ name: "timeCreated",
570
+ outputs: [
571
+ {
572
+ internalType: "uint256",
573
+ name: "",
574
+ type: "uint256",
575
+ },
576
+ ],
577
+ stateMutability: "view",
578
+ type: "function",
579
+ },
580
+ {
581
+ inputs: [],
582
+ name: "totalProtocolFee",
583
+ outputs: [
584
+ {
585
+ internalType: "uint256",
586
+ name: "",
587
+ type: "uint256",
588
+ },
589
+ ],
590
+ stateMutability: "view",
591
+ type: "function",
592
+ },
593
+ {
594
+ inputs: [
595
+ {
596
+ internalType: "address",
597
+ name: "",
598
+ type: "address",
599
+ },
600
+ ],
601
+ name: "totalRewardsPostExpiry",
602
+ outputs: [
603
+ {
604
+ internalType: "uint256",
605
+ name: "",
606
+ type: "uint256",
607
+ },
608
+ ],
609
+ stateMutability: "view",
610
+ type: "function",
611
+ },
612
+ {
613
+ inputs: [],
614
+ name: "totalSupply",
615
+ outputs: [
616
+ {
617
+ internalType: "uint256",
618
+ name: "",
619
+ type: "uint256",
620
+ },
621
+ ],
622
+ stateMutability: "view",
623
+ type: "function",
624
+ },
625
+ {
626
+ inputs: [
627
+ {
628
+ internalType: "address",
629
+ name: "to",
630
+ type: "address",
631
+ },
632
+ {
633
+ internalType: "uint256",
634
+ name: "amount",
635
+ type: "uint256",
636
+ },
637
+ ],
638
+ name: "transfer",
639
+ outputs: [
640
+ {
641
+ internalType: "bool",
642
+ name: "",
643
+ type: "bool",
644
+ },
645
+ ],
646
+ stateMutability: "nonpayable",
647
+ type: "function",
648
+ },
649
+ {
650
+ inputs: [
651
+ {
652
+ internalType: "address",
653
+ name: "from",
654
+ type: "address",
655
+ },
656
+ {
657
+ internalType: "address",
658
+ name: "to",
659
+ type: "address",
660
+ },
661
+ {
662
+ internalType: "uint256",
663
+ name: "amount",
664
+ type: "uint256",
665
+ },
666
+ ],
667
+ name: "transferFrom",
668
+ outputs: [
669
+ {
670
+ internalType: "bool",
671
+ name: "",
672
+ type: "bool",
673
+ },
674
+ ],
675
+ stateMutability: "nonpayable",
676
+ type: "function",
677
+ },
678
+ {
679
+ inputs: [],
680
+ name: "updateGlobalReward",
681
+ outputs: [],
682
+ stateMutability: "nonpayable",
683
+ type: "function",
684
+ },
685
+ {
686
+ inputs: [
687
+ {
688
+ internalType: "address",
689
+ name: "user",
690
+ type: "address",
691
+ },
692
+ ],
693
+ name: "updateUserReward",
694
+ outputs: [],
695
+ stateMutability: "nonpayable",
696
+ type: "function",
697
+ },
698
+ {
699
+ inputs: [
700
+ {
701
+ internalType: "address",
702
+ name: "",
703
+ type: "address",
704
+ },
705
+ {
706
+ internalType: "address",
707
+ name: "",
708
+ type: "address",
709
+ },
710
+ ],
711
+ name: "userReward",
712
+ outputs: [
713
+ {
714
+ internalType: "uint256",
715
+ name: "lastIndex",
716
+ type: "uint256",
717
+ },
718
+ {
719
+ internalType: "uint256",
720
+ name: "accruedReward",
721
+ type: "uint256",
722
+ },
723
+ ],
724
+ stateMutability: "view",
725
+ type: "function",
726
+ },
727
+ {
728
+ inputs: [],
729
+ name: "withdrawFeeToTreasury",
730
+ outputs: [],
731
+ stateMutability: "nonpayable",
732
+ type: "function",
733
+ },
734
+ ];
735
+
736
+ const _bytecode =
737
+ "0x6101406040523480156200001257600080fd5b5060405162002a7e38038062002a7e833981016040819052620000359162000274565b838383838383816003908051906020019062000053929190620000e4565b50805162000069906004906020840190620000e4565b505050428111620000b15760405162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f45585049525960901b604482015260640160405180910390fd5b60ff9091166080524260a05260c05250503360e052505050506001600160a01b0391821661010052166101205262000365565b828054620000f29062000328565b90600052602060002090601f01602090048101928262000116576000855562000161565b82601f106200013157805160ff191683800117855562000161565b8280016001018555821562000161579182015b828111156200016157825182559160200191906001019062000144565b506200016f92915062000173565b5090565b5b808211156200016f576000815560010162000174565b80516001600160a01b0381168114620001a257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001cf57600080fd5b81516001600160401b0380821115620001ec57620001ec620001a7565b604051601f8301601f19908116603f01168101908282118183101715620002175762000217620001a7565b816040528381526020925086838588010111156200023457600080fd5b600091505b8382101562000258578582018301518183018401529082019062000239565b838211156200026a5760008385830101525b9695505050505050565b60008060008060008060c087890312156200028e57600080fd5b62000299876200018a565b9550620002a9602088016200018a565b60408801519095506001600160401b0380821115620002c757600080fd5b620002d58a838b01620001bd565b95506060890151915080821115620002ec57600080fd5b50620002fb89828a01620001bd565b935050608087015160ff811681146200031357600080fd5b8092505060a087015190509295509295509295565b600181811c908216806200033d57607f821691505b602082108114156200035f57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610120516126606200041e60003960008181610423015281816107bd0152818161089a0152610d34015260008181610265015281816107450152818161091b0152818161097701528181610a1601528181610c1001528181610da801528181611422015281816117b80152611d510152600081816103d40152818161068a0152610ab50152600081816104a601526105c3015260006104cd0152600061021001526126606000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c806306fdde031461019b578063095ea7b3146101b957806318160ddd146101dc57806323b872dd146101ee5780632f13b60c14610201578063313ce56714610209578063395093511461023a578063443cb7f81461024d57806347bfac62146102605780635cbadbe41461029457806366247a72146102db57806370a08231146102ee5780637695caa21461030157806380a7c9ac1461030b57806388611f351461031e57806395d89b41146103275780639b1e03f01461032f5780639c9fdc3b14610337578063a090ee5014610340578063a457c2d714610348578063a9059cbb1461035b578063aa1fb9701461036e578063b2427a6c14610381578063b90d3d0c146103a8578063c45a0155146103cf578063c4f59f9b146103f6578063c6d6916c1461040b578063c836545a1461041e578063ccb2f5c514610445578063d86e030214610465578063dcda874d1461046e578063dd62ed3e1461048e578063e184c9be146104a1578063f1653f6e146104c8575b600080fd5b6101a36104ef565b6040516101b09190612153565b60405180910390f35b6101cc6101c736600461219b565b610581565b60405190151581526020016101b0565b6002545b6040519081526020016101b0565b6101cc6101fc3660046121c7565b61059b565b6101cc6105c1565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101b0565b6101cc61024836600461219b565b6105e8565b6101e061025b366004612208565b610627565b6102877f000000000000000000000000000000000000000000000000000000000000000081565b6040516101b09190612221565b6102c66102a2366004612235565b60066020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152016101b0565b6101e06102e936600461226e565b610648565b6101e06102fc36600461226e565b61077c565b610309610797565b005b6101e061031936600461226e565b6107b8565b6101e0600b5481565b6101a3610950565b6101e061095f565b6101e060085481565b610309610a12565b6101cc61035636600461219b565b610c4b565b6101cc61036936600461219b565b610ced565b6101e061037c366004612235565b610cfb565b6102c661038f36600461226e565b6005602052600090815260409020805460019091015482565b6102c66103b636600461226e565b600c602052600090815260409020805460019091015482565b6102877f000000000000000000000000000000000000000000000000000000000000000081565b6103fe610da4565b6040516101b0919061228b565b61030961041936600461226e565b610e40565b6102877f000000000000000000000000000000000000000000000000000000000000000081565b610458610453366004612235565b610e55565b6040516101b091906122d8565b6101e060075481565b6101e061047c36600461226e565b600a6020526000908152604090205481565b6101e061049c366004612235565b610f1c565b6101e07f000000000000000000000000000000000000000000000000000000000000000081565b6101e07f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546104fe90612310565b80601f016020809104026020016040519081016040528092919081815260200182805461052a90612310565b80156105775780601f1061054c57610100808354040283529160200191610577565b820191906000526020600020905b81548152906001019060200180831161055a57829003601f168201915b5050505050905090565b60003361058f818585610f47565b60019150505b92915050565b6000336105a985828561106b565b6105b48585856110e5565b60019150505b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000042101590565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061058f908290869061062290879061235b565b610f47565b6009818154811061063757600080fd5b600091825260209091200154905081565b6000610653826112ac565b6001600160a01b038083166000908152600c60209081526040808320600101805490849055815163dd86fea160e01b8152915190947f0000000000000000000000000000000000000000000000000000000000000000169263dd86fea19260048082019391829003018186803b1580156106cc57600080fd5b505afa1580156106e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107049190612373565b90506000610712838361138c565b905080600b6000828254610726919061235b565b909155506107369050818461238c565b935061076c6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866113b5565b61077461140b565b505050919050565b6001600160a01b031660009081526020819052604090205490565b60006107a1610da4565b90506107b5816107b060025490565b6114ac565b50565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108079190612221565b60206040518083038186803b15801561081f57600080fd5b505afa158015610833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108579190612373565b90506108616105c1565b61088357610877816108723061077c565b611642565b90506108833082611658565b60405163b64761f960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b64761f9906108d190309085906004016123a3565b600060405180830381600087803b1580156108eb57600080fd5b505af11580156108ff573d6000803e3d6000fd5b5050505061090c816117a0565b91506109426001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684846113b5565b61094a61140b565b50919050565b6060600480546104fe90612310565b60006109696105c1565b15610975575060085490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f65d6fc86040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190612373565b6008819055919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a6d57600080fd5b505afa158015610a81573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aa99190810190612425565b905060008151905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0c57600080fd5b505afa158015610b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4491906124b8565b905060005b82811015610bf6576000848281518110610b6557610b656124d5565b6020908102919091018101516001600160a01b0381166000908152600a9092526040909120549091508015610bcb57610bcb8482888681518110610bab57610bab6124d5565b60200260200101516001600160a01b03166113b59092919063ffffffff16565b506001600160a01b03166000908152600a602052604081205580610bee816124eb565b915050610b49565b50600b5415610c4657600b54610c38906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083906113b5565b610c4061140b565b6000600b555b505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610cd55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610ce28286868403610f47565b506001949350505050565b60003361058f8185856110e5565b600080610d066117b3565b9050610d11816118a9565b9150610d1d83836118bc565b6040516304a8c77360e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312a31dcc90610d6b90879086906004016123a3565b600060405180830381600087803b158015610d8557600080fd5b505af1158015610d99573d6000803e3d6000fd5b505050505092915050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b158015610dff57600080fd5b505afa158015610e13573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e3b9190810190612425565b905090565b6107b581610e4d8361077c565b600254611996565b60606001600160a01b0383163314610ec057826001600160a01b0316826001600160a01b031614610ebb5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b2103932b1b2b4bb32b960811b6044820152606401610ccc565b610f05565b6001600160a01b038216610f055760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610ccc565b610f1283610e4d8561077c565b6105ba83836119b7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b038316610fa95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ccc565b6001600160a01b03821661100a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ccc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006110778484610f1c565b905060001981146110df57818110156110d25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610ccc565b6110df8484848403610f47565b50505050565b6001600160a01b0383166111495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ccc565b6001600160a01b0382166111ab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ccc565b6111b6838383611b94565b6001600160a01b0383166000908152602081905260409020548181101561122e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ccc565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061126590849061235b565b92505081905550826001600160a01b0316846001600160a01b031660008051602061260b8339815191528460405161129f91815260200190565b60405180910390a36110df565b6001600160a01b0381166000908152600c6020526040812054906112ce61095f565b9050808214156112dd57505050565b81611302576001600160a01b039092166000908152600c602052604090209190915550565b600061130d8461077c565b9050600061133861131e8486612506565b611328868661238c565b6113329085612506565b90611c2c565b6001600160a01b0386166000908152600c602052604081206001018054929350839290919061136890849061235b565b9091555050506001600160a01b039093166000908152600c60205260409020555050565b6000806113998385612506565b90506113ad670de0b6b3a764000082612525565b949350505050565b610c468363a9059cbb60e01b84846040516024016113d49291906123a3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611c63565b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190611457903090600401612221565b60206040518083038186803b15801561146f57600080fd5b505afa158015611483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a79190612373565b600755565b6114b4611d35565b6114bd82611dd9565b60006114c76105c1565b905060005b83518110156110df5760008482815181106114e9576114e96124d5565b602002602001015190506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016115219190612221565b60206040518083038186803b15801561153957600080fd5b505afa15801561154d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115719190612373565b6001600160a01b0383166000908152600560205260408120600101549192509061159b908361238c565b905084156115d6576001600160a01b0383166000908152600a6020526040812080548392906115cb90849061235b565b909155506116149050565b8515611614576115e68187611c2c565b6001600160a01b0384166000908152600560205260408120805490919061160e90849061235b565b90915550505b506001600160a01b0390911660009081526005602052604090206001015561163b816124eb565b90506114cc565b600081831061165157816105ba565b5090919050565b6001600160a01b0382166116b85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ccc565b6116c482600083611b94565b6001600160a01b038216600090815260208190526040902054818110156117385760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610ccc565b6001600160a01b038316600090815260208190526040812083830390556002805484929061176790849061238c565b90915550506040518281526000906001600160a01b0385169060008051602061260b8339815191529060200160405180910390a3505050565b60006105956117ad61095f565b83611e7c565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016118029190612221565b60206040518083038186803b15801561181a57600080fd5b505afa15801561182e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118529190612373565b905060075481611862919061238c565b9150600082116118a35760405162461bcd60e51b815260206004820152600c60248201526b524543454956455f5a45524f60a01b6044820152606401610ccc565b60075590565b60006105956118b661095f565b83611e9b565b6001600160a01b0382166119125760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610ccc565b61191e60008383611b94565b8060026000828254611930919061235b565b90915550506001600160a01b0382166000908152602081905260408120805483929061195d90849061235b565b90915550506040518181526001600160a01b0383169060009060008051602061260b8339815191529060200160405180910390a35b5050565b60006119a0610da4565b90506119ac81836114ac565b6110df818585611eb0565b606060006119c3610da4565b905080516001600160401b038111156119de576119de6123bc565b604051908082528060200260200182016040528015611a07578160200160208202803683370190505b50915060005b8151811015611b8c576000828281518110611a2a57611a2a6124d5565b6020026020010151905060066000876001600160a01b03166001600160a01b031681526020019081526020016000206000826001600160a01b03166001600160a01b0316815260200190815260200160002060010154848381518110611a9257611a926124d5565b6020908102919091018101919091526001600160a01b0380881660009081526006835260408082209285168252919092528120600101558351849083908110611add57611add6124d5565b602002602001015160056000836001600160a01b03166001600160a01b031681526020019081526020016000206001016000828254611b1c919061238c565b92505081905550838281518110611b3557611b356124d5565b6020026020010151600014611b7b57611b7b85858481518110611b5a57611b5a6124d5565b6020026020010151836001600160a01b03166113b59092919063ffffffff16565b50611b85816124eb565b9050611a0d565b505092915050565b6000611b9e610da4565b9050611bad816107b060025490565b6001600160a01b03841615801590611bce57506001600160a01b0384163014155b15611bef57611bdc846112ac565b611bef8185611bea8761077c565b611eb0565b6001600160a01b03831615801590611c1057506001600160a01b0383163014155b156110df57611c1e836112ac565b6110df8184611bea8661077c565b600082611c3b57506000610595565b6000611c4f670de0b6b3a764000085612506565b9050611c5b8382612525565b915050610595565b6000611cb8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166120139092919063ffffffff16565b805190915015610c465780806020019051810190611cd69190612547565b610c465760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ccc565b6040516326a7076d60e21b8152306004820181905260248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639a9c1db490604401600060405180830381600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107b59190810190612569565b60005b81518110156119925760056000838381518110611dfb57611dfb6124d5565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000015460001415611e6c57600160056000848481518110611e4757611e476124d5565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b611e75816124eb565b9050611ddc565b600082611e91670de0b6b3a764000084612506565b6105ba9190612525565b6000670de0b6b3a7640000611e918484612506565b60005b83518110156110df576000848281518110611ed057611ed06124d5565b6020908102919091018101516001600160a01b03808716600090815260068452604080822092841682529184528181205460059094522054909250811415611f19575050612003565b80611f5557506001600160a01b039081166000818152600560209081526040808320549488168352600682528083209383529290522055612003565b6001600160a01b038216600090815260056020526040812054611f7990839061238c565b90506000611f87868361138c565b6001600160a01b038089166000908152600660209081526040808320938916835292905290812060010180549293508392909190611fc690849061235b565b9091555050506001600160a01b03928316600081815260056020908152604080832054968a16835260068252808320938352929052209290925550505b61200c816124eb565b9050611eb3565b60606113ad8484600085856001600160a01b0385163b6120755760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ccc565b600080866001600160a01b0316858760405161209191906125ee565b60006040518083038185875af1925050503d80600081146120ce576040519150601f19603f3d011682016040523d82523d6000602084013e6120d3565b606091505b50915091506120e38282866120ee565b979650505050505050565b606083156120fd5750816105ba565b82511561210d5782518084602001fd5b8160405162461bcd60e51b8152600401610ccc9190612153565b60005b8381101561214257818101518382015260200161212a565b838111156110df5750506000910152565b6020815260008251806020840152612172816040850160208701612127565b601f01601f19169190910160400192915050565b6001600160a01b03811681146107b557600080fd5b600080604083850312156121ae57600080fd5b82356121b981612186565b946020939093013593505050565b6000806000606084860312156121dc57600080fd5b83356121e781612186565b925060208401356121f781612186565b929592945050506040919091013590565b60006020828403121561221a57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561224857600080fd5b823561225381612186565b9150602083013561226381612186565b809150509250929050565b60006020828403121561228057600080fd5b81356105ba81612186565b6020808252825182820181905260009190848201906040850190845b818110156122cc5783516001600160a01b0316835292840192918401916001016122a7565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156122cc578351835292840192918401916001016122f4565b600181811c9082168061232457607f821691505b6020821081141561094a57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561236e5761236e612345565b500190565b60006020828403121561238557600080fd5b5051919050565b60008282101561239e5761239e612345565b500390565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156123fa576123fa6123bc565b604052919050565b60006001600160401b0382111561241b5761241b6123bc565b5060051b60200190565b6000602080838503121561243857600080fd5b82516001600160401b0381111561244e57600080fd5b8301601f8101851361245f57600080fd5b805161247261246d82612402565b6123d2565b81815260059190911b8201830190838101908783111561249157600080fd5b928401925b828410156120e35783516124a981612186565b82529284019290840190612496565b6000602082840312156124ca57600080fd5b81516105ba81612186565b634e487b7160e01b600052603260045260246000fd5b60006000198214156124ff576124ff612345565b5060010190565b600081600019048311821515161561252057612520612345565b500290565b60008261254257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561255957600080fd5b815180151581146105ba57600080fd5b6000602080838503121561257c57600080fd5b82516001600160401b0381111561259257600080fd5b8301601f810185136125a357600080fd5b80516125b161246d82612402565b81815260059190911b820183019083810190878311156125d057600080fd5b928401925b828410156120e3578351825292840192908401906125d5565b60008251612600818460208701612127565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122005fb4232707bff9e9b0101c807ed76043dfe40761c6c1f7d03be8f863c278a1664736f6c63430008090033";
738
+
739
+ type PendleYieldTokenConstructorParams =
740
+ | [signer?: Signer]
741
+ | ConstructorParameters<typeof ContractFactory>;
742
+
743
+ const isSuperArgs = (
744
+ xs: PendleYieldTokenConstructorParams
745
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
746
+
747
+ export class PendleYieldToken__factory extends ContractFactory {
748
+ constructor(...args: PendleYieldTokenConstructorParams) {
749
+ if (isSuperArgs(args)) {
750
+ super(...args);
751
+ } else {
752
+ super(_abi, _bytecode, args[0]);
753
+ }
754
+ this.contractName = "PendleYieldToken";
755
+ }
756
+
757
+ deploy(
758
+ _SCY: string,
759
+ _OT: string,
760
+ _name: string,
761
+ _symbol: string,
762
+ __decimals: BigNumberish,
763
+ _expiry: BigNumberish,
764
+ overrides?: Overrides & { from?: string | Promise<string> }
765
+ ): Promise<PendleYieldToken> {
766
+ return super.deploy(
767
+ _SCY,
768
+ _OT,
769
+ _name,
770
+ _symbol,
771
+ __decimals,
772
+ _expiry,
773
+ overrides || {}
774
+ ) as Promise<PendleYieldToken>;
775
+ }
776
+ getDeployTransaction(
777
+ _SCY: string,
778
+ _OT: string,
779
+ _name: string,
780
+ _symbol: string,
781
+ __decimals: BigNumberish,
782
+ _expiry: BigNumberish,
783
+ overrides?: Overrides & { from?: string | Promise<string> }
784
+ ): TransactionRequest {
785
+ return super.getDeployTransaction(
786
+ _SCY,
787
+ _OT,
788
+ _name,
789
+ _symbol,
790
+ __decimals,
791
+ _expiry,
792
+ overrides || {}
793
+ );
794
+ }
795
+ attach(address: string): PendleYieldToken {
796
+ return super.attach(address) as PendleYieldToken;
797
+ }
798
+ connect(signer: Signer): PendleYieldToken__factory {
799
+ return super.connect(signer) as PendleYieldToken__factory;
800
+ }
801
+ static readonly contractName: "PendleYieldToken";
802
+ public readonly contractName: "PendleYieldToken";
803
+ static readonly bytecode = _bytecode;
804
+ static readonly abi = _abi;
805
+ static createInterface(): PendleYieldTokenInterface {
806
+ return new utils.Interface(_abi) as PendleYieldTokenInterface;
807
+ }
808
+ static connect(
809
+ address: string,
810
+ signerOrProvider: Signer | Provider
811
+ ): PendleYieldToken {
812
+ return new Contract(address, _abi, signerOrProvider) as PendleYieldToken;
813
+ }
814
+ }