@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,753 @@
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
+ PendleBenQiErc20SCY,
15
+ PendleBenQiErc20SCYInterface,
16
+ } from "../PendleBenQiErc20SCY";
17
+
18
+ const _abi = [
19
+ {
20
+ inputs: [
21
+ {
22
+ internalType: "string",
23
+ name: "_name",
24
+ type: "string",
25
+ },
26
+ {
27
+ internalType: "string",
28
+ name: "_symbol",
29
+ type: "string",
30
+ },
31
+ {
32
+ internalType: "uint8",
33
+ name: "__scydecimals",
34
+ type: "uint8",
35
+ },
36
+ {
37
+ internalType: "uint8",
38
+ name: "__assetDecimals",
39
+ type: "uint8",
40
+ },
41
+ {
42
+ internalType: "address",
43
+ name: "_underlying",
44
+ type: "address",
45
+ },
46
+ {
47
+ internalType: "address",
48
+ name: "_qiToken",
49
+ type: "address",
50
+ },
51
+ {
52
+ internalType: "address",
53
+ name: "_comptroller",
54
+ type: "address",
55
+ },
56
+ {
57
+ internalType: "address",
58
+ name: "_QI",
59
+ type: "address",
60
+ },
61
+ {
62
+ internalType: "address",
63
+ name: "_WAVAX",
64
+ type: "address",
65
+ },
66
+ ],
67
+ stateMutability: "nonpayable",
68
+ type: "constructor",
69
+ },
70
+ {
71
+ anonymous: false,
72
+ inputs: [
73
+ {
74
+ indexed: true,
75
+ internalType: "address",
76
+ name: "owner",
77
+ type: "address",
78
+ },
79
+ {
80
+ indexed: true,
81
+ internalType: "address",
82
+ name: "spender",
83
+ type: "address",
84
+ },
85
+ {
86
+ indexed: false,
87
+ internalType: "uint256",
88
+ name: "value",
89
+ type: "uint256",
90
+ },
91
+ ],
92
+ name: "Approval",
93
+ type: "event",
94
+ },
95
+ {
96
+ anonymous: false,
97
+ inputs: [
98
+ {
99
+ indexed: true,
100
+ internalType: "address",
101
+ name: "from",
102
+ type: "address",
103
+ },
104
+ {
105
+ indexed: true,
106
+ internalType: "address",
107
+ name: "to",
108
+ type: "address",
109
+ },
110
+ {
111
+ indexed: false,
112
+ internalType: "uint256",
113
+ name: "value",
114
+ type: "uint256",
115
+ },
116
+ ],
117
+ name: "Transfer",
118
+ type: "event",
119
+ },
120
+ {
121
+ inputs: [],
122
+ name: "QI",
123
+ outputs: [
124
+ {
125
+ internalType: "address",
126
+ name: "",
127
+ type: "address",
128
+ },
129
+ ],
130
+ stateMutability: "view",
131
+ type: "function",
132
+ },
133
+ {
134
+ inputs: [],
135
+ name: "WAVAX",
136
+ outputs: [
137
+ {
138
+ internalType: "address",
139
+ name: "",
140
+ type: "address",
141
+ },
142
+ ],
143
+ stateMutability: "view",
144
+ type: "function",
145
+ },
146
+ {
147
+ inputs: [
148
+ {
149
+ internalType: "address",
150
+ name: "owner",
151
+ type: "address",
152
+ },
153
+ {
154
+ internalType: "address",
155
+ name: "spender",
156
+ type: "address",
157
+ },
158
+ ],
159
+ name: "allowance",
160
+ outputs: [
161
+ {
162
+ internalType: "uint256",
163
+ name: "",
164
+ type: "uint256",
165
+ },
166
+ ],
167
+ stateMutability: "view",
168
+ type: "function",
169
+ },
170
+ {
171
+ inputs: [
172
+ {
173
+ internalType: "address",
174
+ name: "spender",
175
+ type: "address",
176
+ },
177
+ {
178
+ internalType: "uint256",
179
+ name: "amount",
180
+ type: "uint256",
181
+ },
182
+ ],
183
+ name: "approve",
184
+ outputs: [
185
+ {
186
+ internalType: "bool",
187
+ name: "",
188
+ type: "bool",
189
+ },
190
+ ],
191
+ stateMutability: "nonpayable",
192
+ type: "function",
193
+ },
194
+ {
195
+ inputs: [],
196
+ name: "assetDecimals",
197
+ outputs: [
198
+ {
199
+ internalType: "uint8",
200
+ name: "",
201
+ type: "uint8",
202
+ },
203
+ ],
204
+ stateMutability: "view",
205
+ type: "function",
206
+ },
207
+ {
208
+ inputs: [
209
+ {
210
+ internalType: "address",
211
+ name: "account",
212
+ type: "address",
213
+ },
214
+ ],
215
+ name: "balanceOf",
216
+ outputs: [
217
+ {
218
+ internalType: "uint256",
219
+ name: "",
220
+ type: "uint256",
221
+ },
222
+ ],
223
+ stateMutability: "view",
224
+ type: "function",
225
+ },
226
+ {
227
+ inputs: [],
228
+ name: "comptroller",
229
+ outputs: [
230
+ {
231
+ internalType: "address",
232
+ name: "",
233
+ type: "address",
234
+ },
235
+ ],
236
+ stateMutability: "view",
237
+ type: "function",
238
+ },
239
+ {
240
+ inputs: [],
241
+ name: "decimals",
242
+ outputs: [
243
+ {
244
+ internalType: "uint8",
245
+ name: "",
246
+ type: "uint8",
247
+ },
248
+ ],
249
+ stateMutability: "view",
250
+ type: "function",
251
+ },
252
+ {
253
+ inputs: [
254
+ {
255
+ internalType: "address",
256
+ name: "spender",
257
+ type: "address",
258
+ },
259
+ {
260
+ internalType: "uint256",
261
+ name: "subtractedValue",
262
+ type: "uint256",
263
+ },
264
+ ],
265
+ name: "decreaseAllowance",
266
+ outputs: [
267
+ {
268
+ internalType: "bool",
269
+ name: "",
270
+ type: "bool",
271
+ },
272
+ ],
273
+ stateMutability: "nonpayable",
274
+ type: "function",
275
+ },
276
+ {
277
+ inputs: [],
278
+ name: "getBaseTokens",
279
+ outputs: [
280
+ {
281
+ internalType: "address[]",
282
+ name: "res",
283
+ type: "address[]",
284
+ },
285
+ ],
286
+ stateMutability: "view",
287
+ type: "function",
288
+ },
289
+ {
290
+ inputs: [],
291
+ name: "getRewardTokens",
292
+ outputs: [
293
+ {
294
+ internalType: "address[]",
295
+ name: "res",
296
+ type: "address[]",
297
+ },
298
+ ],
299
+ stateMutability: "view",
300
+ type: "function",
301
+ },
302
+ {
303
+ inputs: [
304
+ {
305
+ internalType: "address",
306
+ name: "",
307
+ type: "address",
308
+ },
309
+ ],
310
+ name: "globalReward",
311
+ outputs: [
312
+ {
313
+ internalType: "uint256",
314
+ name: "index",
315
+ type: "uint256",
316
+ },
317
+ {
318
+ internalType: "uint256",
319
+ name: "lastBalance",
320
+ type: "uint256",
321
+ },
322
+ ],
323
+ stateMutability: "view",
324
+ type: "function",
325
+ },
326
+ {
327
+ inputs: [
328
+ {
329
+ internalType: "address",
330
+ name: "spender",
331
+ type: "address",
332
+ },
333
+ {
334
+ internalType: "uint256",
335
+ name: "addedValue",
336
+ type: "uint256",
337
+ },
338
+ ],
339
+ name: "increaseAllowance",
340
+ outputs: [
341
+ {
342
+ internalType: "bool",
343
+ name: "",
344
+ type: "bool",
345
+ },
346
+ ],
347
+ stateMutability: "nonpayable",
348
+ type: "function",
349
+ },
350
+ {
351
+ inputs: [
352
+ {
353
+ internalType: "address",
354
+ name: "token",
355
+ type: "address",
356
+ },
357
+ ],
358
+ name: "isValidBaseToken",
359
+ outputs: [
360
+ {
361
+ internalType: "bool",
362
+ name: "res",
363
+ type: "bool",
364
+ },
365
+ ],
366
+ stateMutability: "view",
367
+ type: "function",
368
+ },
369
+ {
370
+ inputs: [],
371
+ name: "lastScyIndex",
372
+ outputs: [
373
+ {
374
+ internalType: "uint256",
375
+ name: "",
376
+ type: "uint256",
377
+ },
378
+ ],
379
+ stateMutability: "view",
380
+ type: "function",
381
+ },
382
+ {
383
+ inputs: [
384
+ {
385
+ internalType: "address",
386
+ name: "receiver",
387
+ type: "address",
388
+ },
389
+ {
390
+ internalType: "address",
391
+ name: "baseTokenIn",
392
+ type: "address",
393
+ },
394
+ {
395
+ internalType: "uint256",
396
+ name: "minAmountScyOut",
397
+ type: "uint256",
398
+ },
399
+ ],
400
+ name: "mint",
401
+ outputs: [
402
+ {
403
+ internalType: "uint256",
404
+ name: "amountScyOut",
405
+ type: "uint256",
406
+ },
407
+ ],
408
+ stateMutability: "nonpayable",
409
+ type: "function",
410
+ },
411
+ {
412
+ inputs: [],
413
+ name: "name",
414
+ outputs: [
415
+ {
416
+ internalType: "string",
417
+ name: "",
418
+ type: "string",
419
+ },
420
+ ],
421
+ stateMutability: "view",
422
+ type: "function",
423
+ },
424
+ {
425
+ inputs: [],
426
+ name: "qiToken",
427
+ outputs: [
428
+ {
429
+ internalType: "address",
430
+ name: "",
431
+ type: "address",
432
+ },
433
+ ],
434
+ stateMutability: "view",
435
+ type: "function",
436
+ },
437
+ {
438
+ inputs: [
439
+ {
440
+ internalType: "address",
441
+ name: "receiver",
442
+ type: "address",
443
+ },
444
+ {
445
+ internalType: "address",
446
+ name: "baseTokenOut",
447
+ type: "address",
448
+ },
449
+ {
450
+ internalType: "uint256",
451
+ name: "minAmountBaseOut",
452
+ type: "uint256",
453
+ },
454
+ ],
455
+ name: "redeem",
456
+ outputs: [
457
+ {
458
+ internalType: "uint256",
459
+ name: "amountBaseOut",
460
+ type: "uint256",
461
+ },
462
+ ],
463
+ stateMutability: "nonpayable",
464
+ type: "function",
465
+ },
466
+ {
467
+ inputs: [
468
+ {
469
+ internalType: "address",
470
+ name: "user",
471
+ type: "address",
472
+ },
473
+ {
474
+ internalType: "address",
475
+ name: "receiver",
476
+ type: "address",
477
+ },
478
+ ],
479
+ name: "redeemReward",
480
+ outputs: [
481
+ {
482
+ internalType: "uint256[]",
483
+ name: "outAmounts",
484
+ type: "uint256[]",
485
+ },
486
+ ],
487
+ stateMutability: "nonpayable",
488
+ type: "function",
489
+ },
490
+ {
491
+ inputs: [],
492
+ name: "scyIndexCurrent",
493
+ outputs: [
494
+ {
495
+ internalType: "uint256",
496
+ name: "res",
497
+ type: "uint256",
498
+ },
499
+ ],
500
+ stateMutability: "nonpayable",
501
+ type: "function",
502
+ },
503
+ {
504
+ inputs: [],
505
+ name: "scyIndexStored",
506
+ outputs: [
507
+ {
508
+ internalType: "uint256",
509
+ name: "res",
510
+ type: "uint256",
511
+ },
512
+ ],
513
+ stateMutability: "view",
514
+ type: "function",
515
+ },
516
+ {
517
+ inputs: [],
518
+ name: "symbol",
519
+ outputs: [
520
+ {
521
+ internalType: "string",
522
+ name: "",
523
+ type: "string",
524
+ },
525
+ ],
526
+ stateMutability: "view",
527
+ type: "function",
528
+ },
529
+ {
530
+ inputs: [],
531
+ name: "totalSupply",
532
+ outputs: [
533
+ {
534
+ internalType: "uint256",
535
+ name: "",
536
+ type: "uint256",
537
+ },
538
+ ],
539
+ stateMutability: "view",
540
+ type: "function",
541
+ },
542
+ {
543
+ inputs: [
544
+ {
545
+ internalType: "address",
546
+ name: "to",
547
+ type: "address",
548
+ },
549
+ {
550
+ internalType: "uint256",
551
+ name: "amount",
552
+ type: "uint256",
553
+ },
554
+ ],
555
+ name: "transfer",
556
+ outputs: [
557
+ {
558
+ internalType: "bool",
559
+ name: "",
560
+ type: "bool",
561
+ },
562
+ ],
563
+ stateMutability: "nonpayable",
564
+ type: "function",
565
+ },
566
+ {
567
+ inputs: [
568
+ {
569
+ internalType: "address",
570
+ name: "from",
571
+ type: "address",
572
+ },
573
+ {
574
+ internalType: "address",
575
+ name: "to",
576
+ type: "address",
577
+ },
578
+ {
579
+ internalType: "uint256",
580
+ name: "amount",
581
+ type: "uint256",
582
+ },
583
+ ],
584
+ name: "transferFrom",
585
+ outputs: [
586
+ {
587
+ internalType: "bool",
588
+ name: "",
589
+ type: "bool",
590
+ },
591
+ ],
592
+ stateMutability: "nonpayable",
593
+ type: "function",
594
+ },
595
+ {
596
+ inputs: [],
597
+ name: "underlying",
598
+ outputs: [
599
+ {
600
+ internalType: "address",
601
+ name: "",
602
+ type: "address",
603
+ },
604
+ ],
605
+ stateMutability: "view",
606
+ type: "function",
607
+ },
608
+ {
609
+ inputs: [],
610
+ name: "updateGlobalReward",
611
+ outputs: [],
612
+ stateMutability: "nonpayable",
613
+ type: "function",
614
+ },
615
+ {
616
+ inputs: [
617
+ {
618
+ internalType: "address",
619
+ name: "user",
620
+ type: "address",
621
+ },
622
+ ],
623
+ name: "updateUserReward",
624
+ outputs: [],
625
+ stateMutability: "nonpayable",
626
+ type: "function",
627
+ },
628
+ {
629
+ inputs: [
630
+ {
631
+ internalType: "address",
632
+ name: "",
633
+ type: "address",
634
+ },
635
+ {
636
+ internalType: "address",
637
+ name: "",
638
+ type: "address",
639
+ },
640
+ ],
641
+ name: "userReward",
642
+ outputs: [
643
+ {
644
+ internalType: "uint256",
645
+ name: "lastIndex",
646
+ type: "uint256",
647
+ },
648
+ {
649
+ internalType: "uint256",
650
+ name: "accruedReward",
651
+ type: "uint256",
652
+ },
653
+ ],
654
+ stateMutability: "view",
655
+ type: "function",
656
+ },
657
+ {
658
+ stateMutability: "payable",
659
+ type: "receive",
660
+ },
661
+ ];
662
+
663
+ const _bytecode =
664
+ "0x6101606040523480156200001257600080fd5b5060405162002e7b38038062002e7b8339810160408190526200003591620005f6565b888888888383838383838160039080519060200190620000579291906200044b565b5080516200006d9060049060208401906200044b565b50505060ff9182166080521660a052505050506001600160a01b0387811660c081905287821661014081905286831660e0528583166101005291871661012052620000ca93509150600019620000d9602090811b62000cad17901c565b505050505050505050620007d8565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b1580156200012657600080fd5b505afa1580156200013b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001619190620006e3565b6200016d9190620006fd565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152919250620001c991869190620001cf16565b50505050565b60006200022b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620002b660201b62000d99179092919060201c565b805190915015620002b157808060200190518101906200024c919062000724565b620002b15760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6060620002c78484600085620002d1565b90505b9392505050565b606082471015620003345760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620002a8565b6001600160a01b0385163b6200038d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620002a8565b600080866001600160a01b03168587604051620003ab919062000748565b60006040518083038185875af1925050503d8060008114620003ea576040519150601f19603f3d011682016040523d82523d6000602084013e620003ef565b606091505b509092509050620004028282866200040d565b979650505050505050565b606083156200041e575081620002ca565b8251156200042f5782518084602001fd5b8160405162461bcd60e51b8152600401620002a8919062000766565b82805462000459906200079b565b90600052602060002090601f0160209004810192826200047d5760008555620004c8565b82601f106200049857805160ff1916838001178555620004c8565b82800160010185558215620004c8579182015b82811115620004c8578251825591602001919060010190620004ab565b50620004d6929150620004da565b5090565b5b80821115620004d65760008155600101620004db565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005245781810151838201526020016200050a565b83811115620001c95750506000910152565b600082601f8301126200054857600080fd5b81516001600160401b0380821115620005655762000565620004f1565b604051601f8301601f19908116603f01168101908282118183101715620005905762000590620004f1565b81604052838152866020858801011115620005aa57600080fd5b620005bd84602083016020890162000507565b9695505050505050565b805160ff81168114620005d957600080fd5b919050565b80516001600160a01b0381168114620005d957600080fd5b60008060008060008060008060006101208a8c0312156200061657600080fd5b89516001600160401b03808211156200062e57600080fd5b6200063c8d838e0162000536565b9a5060208c01519150808211156200065357600080fd5b50620006628c828d0162000536565b9850506200067360408b01620005c7565b96506200068360608b01620005c7565b95506200069360808b01620005de565b9450620006a360a08b01620005de565b9350620006b360c08b01620005de565b9250620006c360e08b01620005de565b9150620006d46101008b01620005de565b90509295985092959850929598565b600060208284031215620006f657600080fd5b5051919050565b600082198211156200071f57634e487b7160e01b600052601160045260246000fd5b500190565b6000602082840312156200073757600080fd5b81518015158114620002ca57600080fd5b600082516200075c81846020870162000507565b9190910192915050565b60208152600082518060208401526200078781604085016020870162000507565b601f01601f19169190910160400192915050565b600181811c90821680620007b057607f821691505b60208210811415620007d257634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051610140516125ca620008b16000396000818161029e0152818161099801528181610b9f01528181610c0d0152818161101e01528181611073015281816110fd01528181611883015281816118d80152818161198b0152611d7501526000818161036701528181611dcc0152611e540152600081816104050152610ab70152600081816103330152610a630152600081816103b1015281816109ec01528181610b640152818161112601526119620152600061053a0152600061023a01526125ca6000f3fe6080604052600436106101615760003560e01c806306fdde031461016d578063095ea7b3146101985780630e6dfcd5146101c857806318160ddd146101f657806323b872dd1461020b578063313ce5671461022b578063395093511461026c578063462e4cda1461028c5780635cbadbe4146102cd5780635f22f53f146103215780635fe3b567146103555780636265bc85146103895780636f307dc31461039f57806370a08231146103d357806373b295c2146103f35780637695caa2146104275780638e37b2691461043e57806395d89b41146104535780639a9c1db414610468578063a457c2d714610495578063a9059cbb146104b5578063b2427a6c146104d5578063bed64c2f14610509578063c2d416011461052b578063c4f59f9b1461055e578063c6c3bbe614610573578063c6d6916c14610593578063c9c0c082146105b3578063dd62ed3e146105d3578063f65d6fc8146105f357600080fd5b3661016857005b600080fd5b34801561017957600080fd5b50610182610608565b60405161018f9190612196565b60405180910390f35b3480156101a457600080fd5b506101b86101b33660046121e5565b61069a565b604051901515815260200161018f565b3480156101d457600080fd5b506101e86101e336600461220f565b6106b4565b60405190815260200161018f565b34801561020257600080fd5b506002546101e8565b34801561021757600080fd5b506101b861022636600461220f565b61074c565b34801561023757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405160ff909116815260200161018f565b34801561027857600080fd5b506101b86102873660046121e5565b610772565b34801561029857600080fd5b506102c07f000000000000000000000000000000000000000000000000000000000000000081565b60405161018f919061224b565b3480156102d957600080fd5b5061030c6102e836600461225f565b60076020908152600092835260408084209091529082529020805460019091015482565b6040805192835260208301919091520161018f565b34801561032d57600080fd5b506102c07f000000000000000000000000000000000000000000000000000000000000000081565b34801561036157600080fd5b506102c07f000000000000000000000000000000000000000000000000000000000000000081565b34801561039557600080fd5b506101e860085481565b3480156103ab57600080fd5b506102c07f000000000000000000000000000000000000000000000000000000000000000081565b3480156103df57600080fd5b506101e86103ee366004612292565b6107b1565b3480156103ff57600080fd5b506102c07f000000000000000000000000000000000000000000000000000000000000000081565b34801561043357600080fd5b5061043c6107cc565b005b34801561044a57600080fd5b506008546101e8565b34801561045f57600080fd5b506101826107ed565b34801561047457600080fd5b5061048861048336600461225f565b6107fc565b60405161018f91906122ad565b3480156104a157600080fd5b506101b86104b03660046121e5565b6108cb565b3480156104c157600080fd5b506101b86104d03660046121e5565b610968565b3480156104e157600080fd5b5061030c6104f0366004612292565b6006602052600090815260409020805460019091015482565b34801561051557600080fd5b5061051e610976565b60405161018f9190612335565b34801561053757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061025a565b34801561056a57600080fd5b5061051e610a41565b34801561057f57600080fd5b506101e861058e36600461220f565b610ae9565b34801561059f57600080fd5b5061043c6105ae366004612292565b610b53565b3480156105bf57600080fd5b506101b86105ce366004612292565b610b60565b3480156105df57600080fd5b506101e86105ee36600461225f565b610bd8565b3480156105ff57600080fd5b506101e8610c03565b60606003805461061790612348565b80601f016020809104026020016040519081016040528092919081815260200182805461064390612348565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b5050505050905090565b6000336106a8818585610db0565b60019150505b92915050565b60006106bf83610b60565b6106e45760405162461bcd60e51b81526004016106db90612383565b60405180910390fd5b60006106ef306107b1565b90506106fb3082610ed5565b610705848261101a565b9150828210156107275760405162461bcd60e51b81526004016106db906123af565b61073b6001600160a01b038516868461114a565b61074484611169565b509392505050565b60003361075a85828561121a565b61076585858561128e565b60019150505b9392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906106a890829086906107ac9087906123ef565b610db0565b6001600160a01b031660009081526020819052604090205490565b60006107d6610a41565b90506107ea816107e560025490565b611455565b50565b60606004805461061790612348565b60606001600160a01b038316331461086757826001600160a01b0316826001600160a01b0316146108625760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b2103932b1b2b4bb32b960811b60448201526064016106db565b6108ac565b6001600160a01b0382166108ac5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b60448201526064016106db565b6108c1836108b9856107b1565b6002546115a3565b61076b83836115c4565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156109505760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106db565b61095d8286868403610db0565b506001949350505050565b6000336106a881858561128e565b60408051600280825260608083018452926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106109ca576109ca61241d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610a1e57610a1e61241d565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b60408051600280825260608083018452926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610a9557610a9561241d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610a1e57610a1e61241d565b6000610af483610b60565b610b105760405162461bcd60e51b81526004016106db90612383565b6000610b1b846117a1565b9050610b27848261187f565b915082821015610b495760405162461bcd60e51b81526004016106db906123af565b61074485836119af565b6107ea816108b9836107b1565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806106ae57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610ca36008547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610c6657600080fd5b505af1158015610c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9e9190612433565b611a89565b6008819055919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b158015610cf957600080fd5b505afa158015610d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d319190612433565b610d3b91906123ef565b9050610d938463095ea7b360e01b8584604051602401610d5c92919061244c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a9f565b50505050565b6060610da88484600085611b71565b949350505050565b6001600160a01b038316610e125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106db565b6001600160a01b038216610e735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106db565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216610f355760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106db565b610f4182600083611ca2565b6001600160a01b03821660009081526020819052604090205481811015610fb55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106db565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610fe4908490612465565b90915550506040518281526000906001600160a01b0385169060008051602061257583398151915290602001610ec8565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561105d5750806106ae565b60405163db006a7560e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063db006a7590602401602060405180830381600087803b1580156110bf57600080fd5b505af11580156110d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f79190612433565b506111217f0000000000000000000000000000000000000000000000000000000000000000611169565b61076b7f00000000000000000000000000000000000000000000000000000000000000006117a1565b6110158363a9059cbb60e01b8484604051602401610d5c92919061244c565b6001600160a01b0381163014156111825761118261247c565b6040516370a0823160e01b81526001600160a01b038216906370a08231906111ae90309060040161224b565b60206040518083038186803b1580156111c657600080fd5b505afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe9190612433565b6001600160a01b03909116600090815260056020526040902055565b60006112268484610bd8565b90506000198114610d9357818110156112815760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106db565b610d938484848403610db0565b6001600160a01b0383166112f25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106db565b6001600160a01b0382166113545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106db565b61135f838383611ca2565b6001600160a01b038316600090815260208190526040902054818110156113d75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106db565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061140e9084906123ef565b92505081905550826001600160a01b0316846001600160a01b03166000805160206125758339815191528460405161144891815260200190565b60405180910390a3610d93565b61145d611cfa565b61146682611ed3565b60005b82518110156110155760008382815181106114865761148661241d565b602002602001015190506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016114be919061224b565b60206040518083038186803b1580156114d657600080fd5b505afa1580156114ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150e9190612433565b90508315611576576001600160a01b0382166000908152600660205260409020600101546115489085906115429084612465565b90611f76565b6001600160a01b038316600090815260066020526040812080549091906115709084906123ef565b90915550505b6001600160a01b0390911660009081526006602052604090206001015561159c81612492565b9050611469565b60006115ad610a41565b90506115b98183611455565b610d93818585611fad565b606060006115d0610a41565b905080516001600160401b038111156115eb576115eb612407565b604051908082528060200260200182016040528015611614578160200160208202803683370190505b50915060005b81518110156117995760008282815181106116375761163761241d565b6020026020010151905060076000876001600160a01b03166001600160a01b031681526020019081526020016000206000826001600160a01b03166001600160a01b031681526020019081526020016000206001015484838151811061169f5761169f61241d565b6020908102919091018101919091526001600160a01b03808816600090815260078352604080822092851682529190925281206001015583518490839081106116ea576116ea61241d565b602002602001015160066000836001600160a01b03166001600160a01b0316815260200190815260200160002060010160008282546117299190612465565b925050819055508382815181106117425761174261241d565b602002602001015160001461178857611788858584815181106117675761176761241d565b6020026020010151836001600160a01b031661114a9092919063ffffffff16565b5061179281612492565b905061161a565b505092915050565b60006001600160a01b0382163014156117bc576117bc61247c565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906117eb90309060040161224b565b60206040518083038186803b15801561180357600080fd5b505afa158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190612433565b6001600160a01b0384166000908152600560205260409020549091506118619082612465565b6001600160a01b039093166000908152600560205260409020555090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614156118c25750806106ae565b60405163140e25ad60e31b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a0712d6890602401602060405180830381600087803b15801561192457600080fd5b505af1158015611938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195c9190612433565b506119867f0000000000000000000000000000000000000000000000000000000000000000611169565b61076b7f00000000000000000000000000000000000000000000000000000000000000006117a1565b6001600160a01b038216611a055760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106db565b611a1160008383611ca2565b8060026000828254611a2391906123ef565b90915550506001600160a01b03821660009081526020819052604081208054839290611a509084906123ef565b90915550506040518181526001600160a01b038316906000906000805160206125758339815191529060200160405180910390a35b5050565b6000818311611a98578161076b565b5090919050565b6000611af4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d999092919063ffffffff16565b8051909150156110155780806020019051810190611b1291906124ad565b6110155760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106db565b606082471015611bd25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106db565b6001600160a01b0385163b611c295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106db565b600080866001600160a01b03168587604051611c4591906124cf565b60006040518083038185875af1925050503d8060008114611c82576040519150601f19603f3d011682016040523d82523d6000602084013e611c87565b606091505b5091509150611c97828286612110565b979650505050505050565b6000611cac610a41565b9050611cbb816107e560025490565b6001600160a01b03841615611cdd57611cdd8185611cd8876107b1565b611fad565b6001600160a01b03831615610d9357610d938184611cd8866107b1565b6040805160018082528183019092526000916020808301908036833750506040805160018082528183019092529293506000929150602080830190803683370190505090503082600081518110611d5357611d5361241d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600081518110611da757611da761241d565b6001600160a01b039283166020918202929092010152604051638805714b60e01b81527f000000000000000000000000000000000000000000000000000000000000000090911690638805714b90611e0d906000908690869083906001906004016124eb565b600060405180830381600087803b158015611e2757600080fd5b505af1158015611e3b573d6000803e3d6000fd5b5050604051638805714b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250638805714b9150611e95906001908690869060009084906004016124eb565b600060405180830381600087803b158015611eaf57600080fd5b505af1158015611ec3573d6000803e3d6000fd5b5050505047600014611a85575050565b60005b8151811015611a855760066000838381518110611ef557611ef561241d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000015460001415611f6657600160066000848481518110611f4157611f4161241d565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b611f6f81612492565b9050611ed6565b600082611f85575060006106ae565b6000611f99670de0b6b3a764000085612533565b9050611fa58382612552565b9150506106ae565b60005b8351811015610d93576000848281518110611fcd57611fcd61241d565b6020908102919091018101516001600160a01b03808716600090815260078452604080822092841682529184528181205460069094522054909250811415612016575050612100565b8061205257506001600160a01b039081166000818152600660209081526040808320549488168352600782528083209383529290522055612100565b6001600160a01b038216600090815260066020526040812054612076908390612465565b905060006120848683612149565b6001600160a01b0380891660009081526007602090815260408083209389168352929052908120600101805492935083929091906120c39084906123ef565b9091555050506001600160a01b03928316600081815260066020908152604080832054968a16835260078252808320938352929052209290925550505b61210981612492565b9050611fb0565b6060831561211f57508161076b565b82511561212f5782518084602001fd5b8160405162461bcd60e51b81526004016106db9190612196565b6000806121568385612533565b9050610da8670de0b6b3a764000082612552565b60005b8381101561218557818101518382015260200161216d565b83811115610d935750506000910152565b60208152600082518060208401526121b581604085016020870161216a565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146121e057600080fd5b919050565b600080604083850312156121f857600080fd5b612201836121c9565b946020939093013593505050565b60008060006060848603121561222457600080fd5b61222d846121c9565b925061223b602085016121c9565b9150604084013590509250925092565b6001600160a01b0391909116815260200190565b6000806040838503121561227257600080fd5b61227b836121c9565b9150612289602084016121c9565b90509250929050565b6000602082840312156122a457600080fd5b61076b826121c9565b6020808252825182820181905260009190848201906040850190845b818110156122e5578351835292840192918401916001016122c9565b50909695505050505050565b600081518084526020808501945080840160005b8381101561232a5781516001600160a01b031687529582019590820190600101612305565b509495945050505050565b60208152600061076b60208301846122f1565b600181811c9082168061235c57607f821691505b6020821081141561237d57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526012908201527134b73b30b634b2103130b9b2903a37b5b2b760711b604082015260600190565b60208082526010908201526f1a5b9cdd59999a58da595b9d081bdd5d60821b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612402576124026123d9565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561244557600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b600082821015612477576124776123d9565b500390565b634e487b7160e01b600052600160045260246000fd5b60006000198214156124a6576124a66123d9565b5060010190565b6000602082840312156124bf57600080fd5b8151801515811461076b57600080fd5b600082516124e181846020870161216a565b9190910192915050565b60ff8616815260a06020820152600061250760a08301876122f1565b828103604084015261251981876122f1565b941515606084015250509015156080909101529392505050565b600081600019048311821515161561254d5761254d6123d9565b500290565b60008261256f57634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ea4bae451c982a39f77d65b6b857e6c838411298989b476a151d045da89fa8ba64736f6c63430008090033";
665
+
666
+ type PendleBenQiErc20SCYConstructorParams =
667
+ | [signer?: Signer]
668
+ | ConstructorParameters<typeof ContractFactory>;
669
+
670
+ const isSuperArgs = (
671
+ xs: PendleBenQiErc20SCYConstructorParams
672
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
673
+
674
+ export class PendleBenQiErc20SCY__factory extends ContractFactory {
675
+ constructor(...args: PendleBenQiErc20SCYConstructorParams) {
676
+ if (isSuperArgs(args)) {
677
+ super(...args);
678
+ } else {
679
+ super(_abi, _bytecode, args[0]);
680
+ }
681
+ this.contractName = "PendleBenQiErc20SCY";
682
+ }
683
+
684
+ deploy(
685
+ _name: string,
686
+ _symbol: string,
687
+ __scydecimals: BigNumberish,
688
+ __assetDecimals: BigNumberish,
689
+ _underlying: string,
690
+ _qiToken: string,
691
+ _comptroller: string,
692
+ _QI: string,
693
+ _WAVAX: string,
694
+ overrides?: Overrides & { from?: string | Promise<string> }
695
+ ): Promise<PendleBenQiErc20SCY> {
696
+ return super.deploy(
697
+ _name,
698
+ _symbol,
699
+ __scydecimals,
700
+ __assetDecimals,
701
+ _underlying,
702
+ _qiToken,
703
+ _comptroller,
704
+ _QI,
705
+ _WAVAX,
706
+ overrides || {}
707
+ ) as Promise<PendleBenQiErc20SCY>;
708
+ }
709
+ getDeployTransaction(
710
+ _name: string,
711
+ _symbol: string,
712
+ __scydecimals: BigNumberish,
713
+ __assetDecimals: BigNumberish,
714
+ _underlying: string,
715
+ _qiToken: string,
716
+ _comptroller: string,
717
+ _QI: string,
718
+ _WAVAX: string,
719
+ overrides?: Overrides & { from?: string | Promise<string> }
720
+ ): TransactionRequest {
721
+ return super.getDeployTransaction(
722
+ _name,
723
+ _symbol,
724
+ __scydecimals,
725
+ __assetDecimals,
726
+ _underlying,
727
+ _qiToken,
728
+ _comptroller,
729
+ _QI,
730
+ _WAVAX,
731
+ overrides || {}
732
+ );
733
+ }
734
+ attach(address: string): PendleBenQiErc20SCY {
735
+ return super.attach(address) as PendleBenQiErc20SCY;
736
+ }
737
+ connect(signer: Signer): PendleBenQiErc20SCY__factory {
738
+ return super.connect(signer) as PendleBenQiErc20SCY__factory;
739
+ }
740
+ static readonly contractName: "PendleBenQiErc20SCY";
741
+ public readonly contractName: "PendleBenQiErc20SCY";
742
+ static readonly bytecode = _bytecode;
743
+ static readonly abi = _abi;
744
+ static createInterface(): PendleBenQiErc20SCYInterface {
745
+ return new utils.Interface(_abi) as PendleBenQiErc20SCYInterface;
746
+ }
747
+ static connect(
748
+ address: string,
749
+ signerOrProvider: Signer | Provider
750
+ ): PendleBenQiErc20SCY {
751
+ return new Contract(address, _abi, signerOrProvider) as PendleBenQiErc20SCY;
752
+ }
753
+ }