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