@pendle/core-v2 0.5.1-beta-4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/contracts/SuperComposableYield/ISuperComposableYield.sol +2 -0
  2. package/contracts/SuperComposableYield/implementations/RewardManager.sol +35 -20
  3. package/contracts/SuperComposableYield/implementations/SCYBase.sol +39 -19
  4. package/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol +26 -14
  5. package/contracts/core/PendleBaseToken.sol +2 -2
  6. package/contracts/core/PendleMarket.sol +145 -61
  7. package/contracts/core/PendleMarketFactory.sol +30 -19
  8. package/contracts/core/{PendleOwnershipToken.sol → PendlePrincipalToken.sol} +14 -2
  9. package/contracts/core/PendleRouter.sol +23 -9
  10. package/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol +21 -20
  11. package/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol +22 -16
  12. package/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol +13 -13
  13. package/contracts/core/PendleSCYImpl/PendleStETHSCY.sol +107 -0
  14. package/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol +14 -15
  15. package/contracts/core/PendleYieldContractFactory.sol +29 -14
  16. package/contracts/core/PendleYieldToken.sol +130 -76
  17. package/contracts/core/RouterStatic.sol +16 -157
  18. package/contracts/core/actions/ActionCallback.sol +36 -18
  19. package/contracts/core/actions/ActionCore.sol +41 -88
  20. package/contracts/core/actions/ActionRedeem.sol +36 -0
  21. package/contracts/core/actions/ActionYT.sol +41 -59
  22. package/contracts/core/actions/base/{ActionSCYAndOTBase.sol → ActionSCYAndPTBase.sol} +59 -45
  23. package/contracts/core/actions/base/{ActionSCYAndYOBase.sol → ActionSCYAndPYBase.sol} +57 -19
  24. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +31 -21
  25. package/contracts/interfaces/IPActionCore.sol +21 -28
  26. package/contracts/interfaces/IPActionRedeem.sol +17 -0
  27. package/contracts/interfaces/IPActionYT.sol +5 -12
  28. package/contracts/interfaces/IPAllAction.sol +2 -2
  29. package/contracts/interfaces/IPMarket.sol +33 -10
  30. package/contracts/interfaces/IPMarketAddRemoveCallback.sol +2 -2
  31. package/contracts/interfaces/IPMarketFactory.sol +3 -1
  32. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
  33. package/contracts/interfaces/{IPOwnershipToken.sol → IPPrincipalToken.sol} +1 -1
  34. package/contracts/interfaces/IPRouterStatic.sol +7 -82
  35. package/contracts/interfaces/IPYieldContractFactory.sol +10 -2
  36. package/contracts/interfaces/IPYieldToken.sol +14 -5
  37. package/contracts/interfaces/IWstETH.sol +10 -0
  38. package/contracts/libraries/JoeLibrary.sol +1 -1
  39. package/contracts/libraries/math/LogExpMath.sol +1 -1
  40. package/contracts/libraries/math/MarketApproxLib.sol +128 -88
  41. package/contracts/libraries/math/MarketMathAux.sol +13 -13
  42. package/contracts/libraries/math/MarketMathCore.sol +62 -93
  43. package/contracts/libraries/math/Math.sol +14 -2
  44. package/contracts/periphery/PendleGovernanceManager.sol +5 -3
  45. package/package.json +3 -2
  46. package/typechain-types/ActionCallback.ts +5 -5
  47. package/typechain-types/ActionCore.ts +312 -234
  48. package/typechain-types/ActionRedeem.ts +125 -0
  49. package/typechain-types/ActionSCYAndPYBase.ts +223 -0
  50. package/typechain-types/ActionSCYAndYOBase.ts +129 -3
  51. package/typechain-types/ActionSCYAndYTBase.ts +149 -3
  52. package/typechain-types/ActionYT.ts +192 -94
  53. package/typechain-types/IPActionCore.ts +183 -231
  54. package/typechain-types/IPActionRedeem.ts +125 -0
  55. package/typechain-types/IPActionYT.ts +43 -91
  56. package/typechain-types/IPAllAction.ts +258 -321
  57. package/typechain-types/IPMarket.ts +150 -50
  58. package/typechain-types/IPMarketAddRemoveCallback.ts +10 -10
  59. package/typechain-types/IPMarketFactory.ts +28 -6
  60. package/typechain-types/IPMarketSwapCallback.ts +5 -5
  61. package/typechain-types/{IPOwnershipToken.ts → IPPrincipalToken.ts} +5 -5
  62. package/typechain-types/IPRouterStatic.ts +50 -530
  63. package/typechain-types/IPYieldContractFactory.ts +85 -19
  64. package/typechain-types/IPYieldToken.ts +138 -37
  65. package/typechain-types/ISuperComposableYield.ts +13 -0
  66. package/typechain-types/IWstETH.ts +149 -0
  67. package/typechain-types/PendleAaveV3SCY.ts +110 -0
  68. package/typechain-types/PendleBaseToken.ts +1 -1
  69. package/typechain-types/PendleBenQiErc20SCY.ts +55 -12
  70. package/typechain-types/PendleBtrflyScy.ts +27 -23
  71. package/typechain-types/PendleGovernanceManager.ts +5 -5
  72. package/typechain-types/PendleMarket.ts +197 -100
  73. package/typechain-types/PendleMarketFactory.ts +96 -34
  74. package/typechain-types/{PendleOwnershipToken.ts → PendlePrincipalToken.ts} +15 -6
  75. package/typechain-types/PendleRouter.ts +19 -0
  76. package/typechain-types/PendleRouterRedeemUpg.ts +125 -0
  77. package/typechain-types/PendleStEthSCY.ts +872 -0
  78. package/typechain-types/PendleYearnVaultScy.ts +27 -23
  79. package/typechain-types/PendleYieldContractFactory.ts +94 -28
  80. package/typechain-types/PendleYieldToken.ts +142 -57
  81. package/typechain-types/RewardManager.ts +21 -0
  82. package/typechain-types/RouterStatic.ts +50 -530
  83. package/typechain-types/SCYBase.ts +25 -0
  84. package/typechain-types/SCYBaseWithRewards.ts +64 -0
  85. package/typechain-types/factories/ActionCallback__factory.ts +2 -2
  86. package/typechain-types/factories/ActionCore__factory.ts +263 -79
  87. package/typechain-types/factories/ActionRedeem__factory.ts +105 -0
  88. package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +200 -0
  89. package/typechain-types/factories/ActionSCYAndYOBase__factory.ts +148 -0
  90. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +173 -0
  91. package/typechain-types/factories/ActionYT__factory.ts +265 -56
  92. package/typechain-types/factories/IPActionCore__factory.ts +114 -78
  93. package/typechain-types/factories/IPActionRedeem__factory.ts +70 -0
  94. package/typechain-types/factories/IPActionYT__factory.ts +90 -54
  95. package/typechain-types/factories/IPAllAction__factory.ts +254 -138
  96. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +2 -2
  97. package/typechain-types/factories/IPMarketFactory__factory.ts +26 -1
  98. package/typechain-types/factories/IPMarketSwapCallback__factory.ts +1 -1
  99. package/typechain-types/factories/IPMarket__factory.ts +125 -13
  100. package/typechain-types/factories/{IPOwnershipToken__factory.ts → IPPrincipalToken__factory.ts} +8 -8
  101. package/typechain-types/factories/IPRouterStatic__factory.ts +12 -628
  102. package/typechain-types/factories/IPYieldContractFactory__factory.ts +72 -2
  103. package/typechain-types/factories/IPYieldToken__factory.ts +93 -7
  104. package/typechain-types/factories/ISuperComposableYield__factory.ts +13 -0
  105. package/typechain-types/factories/IWstETH__factory.ts +74 -0
  106. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +97 -3
  107. package/typechain-types/factories/PendleBaseToken__factory.ts +1 -1
  108. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +62 -7
  109. package/typechain-types/factories/PendleBtrflyScy__factory.ts +42 -19
  110. package/typechain-types/factories/PendleGovernanceManager__factory.ts +2 -2
  111. package/typechain-types/factories/PendleMarketFactory__factory.ts +66 -15
  112. package/typechain-types/factories/PendleMarket__factory.ts +170 -53
  113. package/typechain-types/factories/PendlePrincipalToken__factory.ts +540 -0
  114. package/typechain-types/factories/PendleRouterRedeemUpg__factory.ts +112 -0
  115. package/typechain-types/factories/PendleRouter__factory.ts +23 -1
  116. package/typechain-types/factories/PendleStEthSCY__factory.ts +716 -0
  117. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +41 -18
  118. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +75 -5
  119. package/typechain-types/factories/PendleYieldToken__factory.ts +102 -33
  120. package/typechain-types/factories/RewardManager__factory.ts +13 -0
  121. package/typechain-types/factories/RouterStatic__factory.ts +13 -629
  122. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +60 -2
  123. package/typechain-types/factories/SCYBase__factory.ts +28 -2
  124. package/typechain-types/hardhat.d.ts +52 -16
  125. package/typechain-types/index.ts +14 -6
  126. package/typechain-types/factories/PendleOwnershipToken__factory.ts +0 -527
@@ -0,0 +1,540 @@
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
+ PendlePrincipalToken,
15
+ PendlePrincipalTokenInterface,
16
+ } from "../PendlePrincipalToken";
17
+
18
+ const _abi = [
19
+ {
20
+ inputs: [
21
+ {
22
+ internalType: "address",
23
+ name: "_SCY",
24
+ type: "address",
25
+ },
26
+ {
27
+ internalType: "string",
28
+ name: "_name",
29
+ type: "string",
30
+ },
31
+ {
32
+ internalType: "string",
33
+ name: "_symbol",
34
+ type: "string",
35
+ },
36
+ {
37
+ internalType: "uint8",
38
+ name: "__decimals",
39
+ type: "uint8",
40
+ },
41
+ {
42
+ internalType: "uint256",
43
+ name: "_expiry",
44
+ type: "uint256",
45
+ },
46
+ ],
47
+ stateMutability: "nonpayable",
48
+ type: "constructor",
49
+ },
50
+ {
51
+ anonymous: false,
52
+ inputs: [
53
+ {
54
+ indexed: true,
55
+ internalType: "address",
56
+ name: "owner",
57
+ type: "address",
58
+ },
59
+ {
60
+ indexed: true,
61
+ internalType: "address",
62
+ name: "spender",
63
+ type: "address",
64
+ },
65
+ {
66
+ indexed: false,
67
+ internalType: "uint256",
68
+ name: "value",
69
+ type: "uint256",
70
+ },
71
+ ],
72
+ name: "Approval",
73
+ type: "event",
74
+ },
75
+ {
76
+ anonymous: false,
77
+ inputs: [
78
+ {
79
+ indexed: true,
80
+ internalType: "address",
81
+ name: "from",
82
+ type: "address",
83
+ },
84
+ {
85
+ indexed: true,
86
+ internalType: "address",
87
+ name: "to",
88
+ type: "address",
89
+ },
90
+ {
91
+ indexed: false,
92
+ internalType: "uint256",
93
+ name: "value",
94
+ type: "uint256",
95
+ },
96
+ ],
97
+ name: "Transfer",
98
+ type: "event",
99
+ },
100
+ {
101
+ anonymous: false,
102
+ inputs: [
103
+ {
104
+ indexed: true,
105
+ internalType: "address",
106
+ name: "YT",
107
+ type: "address",
108
+ },
109
+ ],
110
+ name: "YTSet",
111
+ type: "event",
112
+ },
113
+ {
114
+ inputs: [],
115
+ name: "SCY",
116
+ outputs: [
117
+ {
118
+ internalType: "address",
119
+ name: "",
120
+ type: "address",
121
+ },
122
+ ],
123
+ stateMutability: "view",
124
+ type: "function",
125
+ },
126
+ {
127
+ inputs: [],
128
+ name: "YT",
129
+ outputs: [
130
+ {
131
+ internalType: "address",
132
+ name: "",
133
+ type: "address",
134
+ },
135
+ ],
136
+ stateMutability: "view",
137
+ type: "function",
138
+ },
139
+ {
140
+ inputs: [
141
+ {
142
+ internalType: "address",
143
+ name: "owner",
144
+ type: "address",
145
+ },
146
+ {
147
+ internalType: "address",
148
+ name: "spender",
149
+ type: "address",
150
+ },
151
+ ],
152
+ name: "allowance",
153
+ outputs: [
154
+ {
155
+ internalType: "uint256",
156
+ name: "",
157
+ type: "uint256",
158
+ },
159
+ ],
160
+ stateMutability: "view",
161
+ type: "function",
162
+ },
163
+ {
164
+ inputs: [
165
+ {
166
+ internalType: "address",
167
+ name: "spender",
168
+ type: "address",
169
+ },
170
+ {
171
+ internalType: "uint256",
172
+ name: "amount",
173
+ type: "uint256",
174
+ },
175
+ ],
176
+ name: "approve",
177
+ outputs: [
178
+ {
179
+ internalType: "bool",
180
+ name: "",
181
+ type: "bool",
182
+ },
183
+ ],
184
+ stateMutability: "nonpayable",
185
+ type: "function",
186
+ },
187
+ {
188
+ inputs: [
189
+ {
190
+ internalType: "address",
191
+ name: "account",
192
+ type: "address",
193
+ },
194
+ ],
195
+ name: "balanceOf",
196
+ outputs: [
197
+ {
198
+ internalType: "uint256",
199
+ name: "",
200
+ type: "uint256",
201
+ },
202
+ ],
203
+ stateMutability: "view",
204
+ type: "function",
205
+ },
206
+ {
207
+ inputs: [
208
+ {
209
+ internalType: "address",
210
+ name: "user",
211
+ type: "address",
212
+ },
213
+ {
214
+ internalType: "uint256",
215
+ name: "amount",
216
+ type: "uint256",
217
+ },
218
+ ],
219
+ name: "burnByYT",
220
+ outputs: [],
221
+ stateMutability: "nonpayable",
222
+ type: "function",
223
+ },
224
+ {
225
+ inputs: [],
226
+ name: "decimals",
227
+ outputs: [
228
+ {
229
+ internalType: "uint8",
230
+ name: "",
231
+ type: "uint8",
232
+ },
233
+ ],
234
+ stateMutability: "view",
235
+ type: "function",
236
+ },
237
+ {
238
+ inputs: [
239
+ {
240
+ internalType: "address",
241
+ name: "spender",
242
+ type: "address",
243
+ },
244
+ {
245
+ internalType: "uint256",
246
+ name: "subtractedValue",
247
+ type: "uint256",
248
+ },
249
+ ],
250
+ name: "decreaseAllowance",
251
+ outputs: [
252
+ {
253
+ internalType: "bool",
254
+ name: "",
255
+ type: "bool",
256
+ },
257
+ ],
258
+ stateMutability: "nonpayable",
259
+ type: "function",
260
+ },
261
+ {
262
+ inputs: [],
263
+ name: "expiry",
264
+ outputs: [
265
+ {
266
+ internalType: "uint256",
267
+ name: "",
268
+ type: "uint256",
269
+ },
270
+ ],
271
+ stateMutability: "view",
272
+ type: "function",
273
+ },
274
+ {
275
+ inputs: [],
276
+ name: "factory",
277
+ outputs: [
278
+ {
279
+ internalType: "address",
280
+ name: "",
281
+ type: "address",
282
+ },
283
+ ],
284
+ stateMutability: "view",
285
+ type: "function",
286
+ },
287
+ {
288
+ inputs: [
289
+ {
290
+ internalType: "address",
291
+ name: "spender",
292
+ type: "address",
293
+ },
294
+ {
295
+ internalType: "uint256",
296
+ name: "addedValue",
297
+ type: "uint256",
298
+ },
299
+ ],
300
+ name: "increaseAllowance",
301
+ outputs: [
302
+ {
303
+ internalType: "bool",
304
+ name: "",
305
+ type: "bool",
306
+ },
307
+ ],
308
+ stateMutability: "nonpayable",
309
+ type: "function",
310
+ },
311
+ {
312
+ inputs: [
313
+ {
314
+ internalType: "address",
315
+ name: "_YT",
316
+ type: "address",
317
+ },
318
+ ],
319
+ name: "initialize",
320
+ outputs: [],
321
+ stateMutability: "nonpayable",
322
+ type: "function",
323
+ },
324
+ {
325
+ inputs: [],
326
+ name: "isExpired",
327
+ outputs: [
328
+ {
329
+ internalType: "bool",
330
+ name: "",
331
+ type: "bool",
332
+ },
333
+ ],
334
+ stateMutability: "view",
335
+ type: "function",
336
+ },
337
+ {
338
+ inputs: [
339
+ {
340
+ internalType: "address",
341
+ name: "user",
342
+ type: "address",
343
+ },
344
+ {
345
+ internalType: "uint256",
346
+ name: "amount",
347
+ type: "uint256",
348
+ },
349
+ ],
350
+ name: "mintByYT",
351
+ outputs: [],
352
+ stateMutability: "nonpayable",
353
+ type: "function",
354
+ },
355
+ {
356
+ inputs: [],
357
+ name: "name",
358
+ outputs: [
359
+ {
360
+ internalType: "string",
361
+ name: "",
362
+ type: "string",
363
+ },
364
+ ],
365
+ stateMutability: "view",
366
+ type: "function",
367
+ },
368
+ {
369
+ inputs: [],
370
+ name: "symbol",
371
+ outputs: [
372
+ {
373
+ internalType: "string",
374
+ name: "",
375
+ type: "string",
376
+ },
377
+ ],
378
+ stateMutability: "view",
379
+ type: "function",
380
+ },
381
+ {
382
+ inputs: [],
383
+ name: "timeCreated",
384
+ outputs: [
385
+ {
386
+ internalType: "uint256",
387
+ name: "",
388
+ type: "uint256",
389
+ },
390
+ ],
391
+ stateMutability: "view",
392
+ type: "function",
393
+ },
394
+ {
395
+ inputs: [],
396
+ name: "totalSupply",
397
+ outputs: [
398
+ {
399
+ internalType: "uint256",
400
+ name: "",
401
+ type: "uint256",
402
+ },
403
+ ],
404
+ stateMutability: "view",
405
+ type: "function",
406
+ },
407
+ {
408
+ inputs: [
409
+ {
410
+ internalType: "address",
411
+ name: "to",
412
+ type: "address",
413
+ },
414
+ {
415
+ internalType: "uint256",
416
+ name: "amount",
417
+ type: "uint256",
418
+ },
419
+ ],
420
+ name: "transfer",
421
+ outputs: [
422
+ {
423
+ internalType: "bool",
424
+ name: "",
425
+ type: "bool",
426
+ },
427
+ ],
428
+ stateMutability: "nonpayable",
429
+ type: "function",
430
+ },
431
+ {
432
+ inputs: [
433
+ {
434
+ internalType: "address",
435
+ name: "from",
436
+ type: "address",
437
+ },
438
+ {
439
+ internalType: "address",
440
+ name: "to",
441
+ type: "address",
442
+ },
443
+ {
444
+ internalType: "uint256",
445
+ name: "amount",
446
+ type: "uint256",
447
+ },
448
+ ],
449
+ name: "transferFrom",
450
+ outputs: [
451
+ {
452
+ internalType: "bool",
453
+ name: "",
454
+ type: "bool",
455
+ },
456
+ ],
457
+ stateMutability: "nonpayable",
458
+ type: "function",
459
+ },
460
+ ];
461
+
462
+ const _bytecode =
463
+ "0x6101206040523480156200001257600080fd5b506040516200128a3803806200128a833981016040819052620000359162000298565b83838383838381600390805190602001906200005392919062000125565b5080516200006990600490602084019062000125565b505050428111620000b25760405162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f45585049525960901b60448201526064015b60405180910390fd5b60ff9091166080524260a05260c05250503360e0526001600160a01b0385166200010e5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401620000a9565b505050506001600160a01b03166101005262000385565b828054620001339062000348565b90600052602060002090601f016020900481019282620001575760008555620001a2565b82601f106200017257805160ff1916838001178555620001a2565b82800160010185558215620001a2579182015b82811115620001a257825182559160200191906001019062000185565b50620001b0929150620001b4565b5090565b5b80821115620001b05760008155600101620001b5565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001f357600080fd5b81516001600160401b0380821115620002105762000210620001cb565b604051601f8301601f19908116603f011681019082821181831017156200023b576200023b620001cb565b816040528381526020925086838588010111156200025857600080fd5b600091505b838210156200027c57858201830151818301840152908201906200025d565b838211156200028e5760008385830101525b9695505050505050565b600080600080600060a08688031215620002b157600080fd5b85516001600160a01b0381168114620002c957600080fd5b60208701519095506001600160401b0380821115620002e757600080fd5b620002f589838a01620001e1565b955060408801519150808211156200030c57600080fd5b506200031b88828901620001e1565b935050606086015160ff811681146200033357600080fd5b80925050608086015190509295509295909350565b600181811c908216806200035d57607f821691505b602082108114156200037f57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610eb2620003d860003960006101ee0152600081816102aa015261057c01526000818161017e01526102f70152600061031e015260006101ac0152610eb26000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c806306fdde0314610101578063095ea7b31461011f57806312a31dcc1461014257806318160ddd1461015757806323b872dd146101695780632f13b60c1461017c578063313ce567146101a557806339509351146101d657806347bfac62146101e957806370a0823114610228578063781c18db1461025157806395d89b4114610264578063a457c2d71461026c578063a9059cbb1461027f578063b64761f914610292578063c45a0155146102a5578063c4d66de8146102cc578063dd62ed3e146102df578063e184c9be146102f2578063f1653f6e14610319575b600080fd5b610109610340565b6040516101169190610c67565b60405180910390f35b61013261012d366004610cd4565b6103d2565b6040519015158152602001610116565b610155610150366004610cd4565b6103ea565b005b6002545b604051908152602001610116565b610132610177366004610d00565b61042b565b7f0000000000000000000000000000000000000000000000000000000000000000421015610132565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610116565b6101326101e4366004610cd4565b61044f565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610116565b61015b610236366004610d41565b6001600160a01b031660009081526020819052604090205490565b600554610210906001600160a01b031681565b61010961048e565b61013261027a366004610cd4565b61049d565b61013261028d366004610cd4565b61052f565b6101556102a0366004610cd4565b61053d565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6101556102da366004610d41565b610571565b61015b6102ed366004610d65565b6106e0565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60606003805461034f90610d9e565b80601f016020809104026020016040519081016040528092919081815260200182805461037b90610d9e565b80156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b5050505050905090565b6000336103e081858561070b565b5060019392505050565b6005546001600160a01b0316331461041d5760405162461bcd60e51b815260040161041490610dd9565b60405180910390fd5b6104278282610830565b5050565b6000336104398582856108fd565b610444858585610977565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906103e09082908690610489908790610e10565b61070b565b60606004805461034f90610d9e565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156105225760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610414565b610444828686840361070b565b6000336103e0818585610977565b6005546001600160a01b031633146105675760405162461bcd60e51b815260040161041490610dd9565b6104278282610b33565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105d85760405162461bcd60e51b815260206004820152600c60248201526b4f4e4c595f464143544f525960a01b6044820152606401610414565b306001600160a01b0316816001600160a01b031663d94073d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561061b57600080fd5b505afa15801561062f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106539190610e28565b6001600160a01b0316146106965760405162461bcd60e51b815260206004820152600a6024820152691a5b9d985b1a5908165560b21b6044820152606401610414565b600580546001600160a01b0319166001600160a01b0383169081179091556040517f1b89da6b7b61e4a687f655889a2d3239e13e3009cb0a9435ec14342f249a24e190600090a250565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661076d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610414565b6001600160a01b0382166107ce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610414565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166108865760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610414565b80600260008282546108989190610e10565b90915550506001600160a01b038216600090815260208190526040812080548392906108c5908490610e10565b90915550506040518181526001600160a01b03831690600090600080516020610e5d8339815191529060200160405180910390a35050565b600061090984846106e0565b9050600019811461097157818110156109645760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610414565b610971848484840361070b565b50505050565b6001600160a01b0383166109db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610414565b6001600160a01b038216610a3d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610414565b6001600160a01b03831660009081526020819052604090205481811015610ab55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610414565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610aec908490610e10565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610e5d83398151915284604051610b2691815260200190565b60405180910390a3610971565b6001600160a01b038216610b935760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610414565b6001600160a01b03821660009081526020819052604090205481811015610c075760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610414565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610c36908490610e45565b90915550506040518281526000906001600160a01b03851690600080516020610e5d83398151915290602001610823565b600060208083528351808285015260005b81811015610c9457858101830151858201604001528201610c78565b81811115610ca6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610cd157600080fd5b50565b60008060408385031215610ce757600080fd5b8235610cf281610cbc565b946020939093013593505050565b600080600060608486031215610d1557600080fd5b8335610d2081610cbc565b92506020840135610d3081610cbc565b929592945050506040919091013590565b600060208284031215610d5357600080fd5b8135610d5e81610cbc565b9392505050565b60008060408385031215610d7857600080fd5b8235610d8381610cbc565b91506020830135610d9381610cbc565b809150509250929050565b600181811c90821680610db257607f821691505b60208210811415610dd357634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526613d3931657d65560ca1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610e2357610e23610dfa565b500190565b600060208284031215610e3a57600080fd5b8151610d5e81610cbc565b600082821015610e5757610e57610dfa565b50039056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220126c2868ce67db0421870b1654dbef9f1498e686900227ac7a4473fa90e106c564736f6c63430008090033";
464
+
465
+ type PendlePrincipalTokenConstructorParams =
466
+ | [signer?: Signer]
467
+ | ConstructorParameters<typeof ContractFactory>;
468
+
469
+ const isSuperArgs = (
470
+ xs: PendlePrincipalTokenConstructorParams
471
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
472
+
473
+ export class PendlePrincipalToken__factory extends ContractFactory {
474
+ constructor(...args: PendlePrincipalTokenConstructorParams) {
475
+ if (isSuperArgs(args)) {
476
+ super(...args);
477
+ } else {
478
+ super(_abi, _bytecode, args[0]);
479
+ }
480
+ this.contractName = "PendlePrincipalToken";
481
+ }
482
+
483
+ deploy(
484
+ _SCY: string,
485
+ _name: string,
486
+ _symbol: string,
487
+ __decimals: BigNumberish,
488
+ _expiry: BigNumberish,
489
+ overrides?: Overrides & { from?: string | Promise<string> }
490
+ ): Promise<PendlePrincipalToken> {
491
+ return super.deploy(
492
+ _SCY,
493
+ _name,
494
+ _symbol,
495
+ __decimals,
496
+ _expiry,
497
+ overrides || {}
498
+ ) as Promise<PendlePrincipalToken>;
499
+ }
500
+ getDeployTransaction(
501
+ _SCY: string,
502
+ _name: string,
503
+ _symbol: string,
504
+ __decimals: BigNumberish,
505
+ _expiry: BigNumberish,
506
+ overrides?: Overrides & { from?: string | Promise<string> }
507
+ ): TransactionRequest {
508
+ return super.getDeployTransaction(
509
+ _SCY,
510
+ _name,
511
+ _symbol,
512
+ __decimals,
513
+ _expiry,
514
+ overrides || {}
515
+ );
516
+ }
517
+ attach(address: string): PendlePrincipalToken {
518
+ return super.attach(address) as PendlePrincipalToken;
519
+ }
520
+ connect(signer: Signer): PendlePrincipalToken__factory {
521
+ return super.connect(signer) as PendlePrincipalToken__factory;
522
+ }
523
+ static readonly contractName: "PendlePrincipalToken";
524
+ public readonly contractName: "PendlePrincipalToken";
525
+ static readonly bytecode = _bytecode;
526
+ static readonly abi = _abi;
527
+ static createInterface(): PendlePrincipalTokenInterface {
528
+ return new utils.Interface(_abi) as PendlePrincipalTokenInterface;
529
+ }
530
+ static connect(
531
+ address: string,
532
+ signerOrProvider: Signer | Provider
533
+ ): PendlePrincipalToken {
534
+ return new Contract(
535
+ address,
536
+ _abi,
537
+ signerOrProvider
538
+ ) as PendlePrincipalToken;
539
+ }
540
+ }
@@ -0,0 +1,112 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type {
7
+ PendleRouterRedeemUpg,
8
+ PendleRouterRedeemUpgInterface,
9
+ } from "../PendleRouterRedeemUpg";
10
+
11
+ const _abi = [
12
+ {
13
+ inputs: [
14
+ {
15
+ internalType: "address",
16
+ name: "user",
17
+ type: "address",
18
+ },
19
+ {
20
+ internalType: "address[]",
21
+ name: "scys",
22
+ type: "address[]",
23
+ },
24
+ {
25
+ internalType: "address[]",
26
+ name: "yieldTokens",
27
+ type: "address[]",
28
+ },
29
+ {
30
+ internalType: "address[]",
31
+ name: "",
32
+ type: "address[]",
33
+ },
34
+ ],
35
+ name: "redeemDueIncome",
36
+ outputs: [
37
+ {
38
+ internalType: "uint256[][]",
39
+ name: "scyRewards",
40
+ type: "uint256[][]",
41
+ },
42
+ {
43
+ internalType: "uint256[]",
44
+ name: "ytInterests",
45
+ type: "uint256[]",
46
+ },
47
+ {
48
+ internalType: "uint256[][]",
49
+ name: "ytRewards",
50
+ type: "uint256[][]",
51
+ },
52
+ ],
53
+ stateMutability: "nonpayable",
54
+ type: "function",
55
+ },
56
+ ];
57
+
58
+ const _bytecode =
59
+ "0x608060405234801561001057600080fd5b50610701806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e4e1d73714610030575b600080fd5b61004361003e366004610393565b61005b565b604051610052939291906104b9565b60405180910390f35b60608080876001600160401b0381111561007757610077610523565b6040519080825280602002602001820160405280156100aa57816020015b60608152602001906001900390816100955790505b50925060005b8881101561018e578989828181106100ca576100ca610539565b90506020020160208101906100df919061054f565b6001600160a01b031663b286de768c6040518263ffffffff1660e01b815260040161010a9190610571565b600060405180830381600087803b15801561012457600080fd5b505af1158015610138573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610160919081019061061f565b84828151811061017257610172610539565b6020026020010181905250806101879061065b565b90506100b0565b50856001600160401b038111156101a7576101a7610523565b6040519080825280602002602001820160405280156101d0578160200160208202803683370190505b509150856001600160401b038111156101eb576101eb610523565b60405190808252806020026020018201604052801561021e57816020015b60608152602001906001900390816102095790505b50905060005b8681101561031e5787878281811061023e5761023e610539565b9050602002016020810190610253919061054f565b6001600160a01b031663bdaba5368c6040518263ffffffff1660e01b815260040161027e9190610571565b600060405180830381600087803b15801561029857600080fd5b505af11580156102ac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102d49190810190610684565b8483815181106102e6576102e6610539565b602002602001018484815181106102ff576102ff610539565b6020908102919091010191909152526103178161065b565b9050610224565b509750975097945050505050565b80356001600160a01b038116811461034357600080fd5b919050565b60008083601f84011261035a57600080fd5b5081356001600160401b0381111561037157600080fd5b6020830191508360208260051b850101111561038c57600080fd5b9250929050565b60008060008060008060006080888a0312156103ae57600080fd5b6103b78861032c565b965060208801356001600160401b03808211156103d357600080fd5b6103df8b838c01610348565b909850965060408a01359150808211156103f857600080fd5b6104048b838c01610348565b909650945060608a013591508082111561041d57600080fd5b5061042a8a828b01610348565b989b979a50959850939692959293505050565b600081518084526020808501808196508360051b810191508286016000805b868110156104ab578385038a52825180518087529087019087870190845b818110156104965783518352928901929189019160010161047a565b50509a87019a9550509185019160010161045c565b509298975050505050505050565b6060815260006104cc606083018661043d565b82810360208481019190915285518083528682019282019060005b81811015610503578451835293830193918301916001016104e7565b50508481036040860152610517818761043d565b98975050505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561056157600080fd5b61056a8261032c565b9392505050565b6001600160a01b0391909116815260200190565b600082601f83011261059657600080fd5b815160206001600160401b03808311156105b2576105b2610523565b8260051b604051601f19603f830116810181811084821117156105d7576105d7610523565b6040529384528581018301938381019250878511156105f557600080fd5b83870191505b84821015610614578151835291830191908301906105fb565b979650505050505050565b60006020828403121561063157600080fd5b81516001600160401b0381111561064757600080fd5b61065384828501610585565b949350505050565b600060001982141561067d57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000806040838503121561069757600080fd5b825160208401519092506001600160401b038111156106b557600080fd5b6106c185828601610585565b915050925092905056fea26469706673582212200f859dfb218cbd41a7c3031bd654f3bb5a6b3fd5cfa853f158942eba6dfcbfb864736f6c63430008090033";
60
+
61
+ type PendleRouterRedeemUpgConstructorParams =
62
+ | [signer?: Signer]
63
+ | ConstructorParameters<typeof ContractFactory>;
64
+
65
+ const isSuperArgs = (
66
+ xs: PendleRouterRedeemUpgConstructorParams
67
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
68
+
69
+ export class PendleRouterRedeemUpg__factory extends ContractFactory {
70
+ constructor(...args: PendleRouterRedeemUpgConstructorParams) {
71
+ if (isSuperArgs(args)) {
72
+ super(...args);
73
+ } else {
74
+ super(_abi, _bytecode, args[0]);
75
+ }
76
+ this.contractName = "PendleRouterRedeemUpg";
77
+ }
78
+
79
+ deploy(
80
+ overrides?: Overrides & { from?: string | Promise<string> }
81
+ ): Promise<PendleRouterRedeemUpg> {
82
+ return super.deploy(overrides || {}) as Promise<PendleRouterRedeemUpg>;
83
+ }
84
+ getDeployTransaction(
85
+ overrides?: Overrides & { from?: string | Promise<string> }
86
+ ): TransactionRequest {
87
+ return super.getDeployTransaction(overrides || {});
88
+ }
89
+ attach(address: string): PendleRouterRedeemUpg {
90
+ return super.attach(address) as PendleRouterRedeemUpg;
91
+ }
92
+ connect(signer: Signer): PendleRouterRedeemUpg__factory {
93
+ return super.connect(signer) as PendleRouterRedeemUpg__factory;
94
+ }
95
+ static readonly contractName: "PendleRouterRedeemUpg";
96
+ public readonly contractName: "PendleRouterRedeemUpg";
97
+ static readonly bytecode = _bytecode;
98
+ static readonly abi = _abi;
99
+ static createInterface(): PendleRouterRedeemUpgInterface {
100
+ return new utils.Interface(_abi) as PendleRouterRedeemUpgInterface;
101
+ }
102
+ static connect(
103
+ address: string,
104
+ signerOrProvider: Signer | Provider
105
+ ): PendleRouterRedeemUpg {
106
+ return new Contract(
107
+ address,
108
+ _abi,
109
+ signerOrProvider
110
+ ) as PendleRouterRedeemUpg;
111
+ }
112
+ }