@usdu-core/usdu-core 0.0.1

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 (107) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/.env.example +6 -0
  3. package/.prettierrc.json +7 -0
  4. package/LICENSE +674 -0
  5. package/README.md +244 -0
  6. package/contracts/curve/CurveAdapterV1.sol +310 -0
  7. package/contracts/curve/CurveAdapterV1_1.sol +198 -0
  8. package/contracts/curve/helpers/ICurveStableSwapNG.json +566 -0
  9. package/contracts/curve/helpers/ICurveStableSwapNG.sol +177 -0
  10. package/contracts/deploy/VaultDeployer.sol +110 -0
  11. package/contracts/morpho/MorphoAdapterV1.sol +255 -0
  12. package/contracts/morpho/MorphoAdapterV1_1.sol +137 -0
  13. package/contracts/morpho/MorphoAdapterV1_2.sol +126 -0
  14. package/contracts/morpho/helpers/AggregatorV3Interface.sol +24 -0
  15. package/contracts/morpho/helpers/ChainlinkDataFeedLib.sol +36 -0
  16. package/contracts/morpho/helpers/ConstantsLib.sol +20 -0
  17. package/contracts/morpho/helpers/ErrorsLib.sol +17 -0
  18. package/contracts/morpho/helpers/IERC4626.sol +6 -0
  19. package/contracts/morpho/helpers/IMetaMorphoV1_1.sol +229 -0
  20. package/contracts/morpho/helpers/IMetaMorphoV1_1Factory.sol +32 -0
  21. package/contracts/morpho/helpers/IMorpho.sol +361 -0
  22. package/contracts/morpho/helpers/IMorphoCallbacks.sol +52 -0
  23. package/contracts/morpho/helpers/IMorphoChainlinkOracleV2.sol +39 -0
  24. package/contracts/morpho/helpers/IMorphoChainlinkOracleV2Factory.sol +56 -0
  25. package/contracts/morpho/helpers/IOracle.sol +15 -0
  26. package/contracts/morpho/helpers/MarketParamsLib.sol +21 -0
  27. package/contracts/morpho/helpers/MathLib.sol +45 -0
  28. package/contracts/morpho/helpers/Morpho.sol.bak +517 -0
  29. package/contracts/morpho/helpers/MorphoChainlinkOracleV2.sol +157 -0
  30. package/contracts/morpho/helpers/PendingLib.sol +47 -0
  31. package/contracts/morpho/helpers/SharesMathLib.sol +45 -0
  32. package/contracts/morpho/helpers/VaultLib.sol +18 -0
  33. package/contracts/reward/RewardDistributionV1.sol +110 -0
  34. package/contracts/reward/RewardRouterV0.sol +63 -0
  35. package/contracts/reward/Rewards.example.json +72 -0
  36. package/contracts/stablecoin/IStablecoin.sol +211 -0
  37. package/contracts/stablecoin/IStablecoinMetadata.sol +27 -0
  38. package/contracts/stablecoin/IStablecoinModifier.sol +52 -0
  39. package/contracts/stablecoin/Stablecoin.sol +376 -0
  40. package/contracts/stablecoin/libraries/ConstantsLib.sol +13 -0
  41. package/contracts/stablecoin/libraries/ErrorsLib.sol +45 -0
  42. package/contracts/stablecoin/libraries/EventsLib.sol +74 -0
  43. package/contracts/stablecoin/libraries/PendingLib.sol +38 -0
  44. package/contracts/vault/VaultAdapterRecoverV1.sol +29 -0
  45. package/contracts/vault/VaultAdapterV1.sol +126 -0
  46. package/dist/index.d.mts +16154 -0
  47. package/dist/index.d.ts +16154 -0
  48. package/dist/index.js +21134 -0
  49. package/dist/index.mjs +21061 -0
  50. package/docs/CoreVault: Integration of new Markets.md +197 -0
  51. package/docs/CoreVault: SupplyQueue.md +11 -0
  52. package/docs/Markets USDC Vault.md +35 -0
  53. package/docs/Markets USDU Vault.md +89 -0
  54. package/docs/Markets WETH Vault.md +35 -0
  55. package/docs/Overview.drawio +117 -0
  56. package/exports/abis/curve/CurveAdapterV1.ts +599 -0
  57. package/exports/abis/curve/CurveAdapterV1_1.ts +609 -0
  58. package/exports/abis/curve/CurveAdapterV1_2.ts +721 -0
  59. package/exports/abis/curve/helper/ICurveStableSwapNG.ts +1589 -0
  60. package/exports/abis/morpho/MorphoAdapterV1.ts +516 -0
  61. package/exports/abis/morpho/MorphoAdapterV1_1.ts +489 -0
  62. package/exports/abis/morpho/MorphoAdapterV1_2.ts +459 -0
  63. package/exports/abis/morpho/helper/AggregatorV3Interface.ts +113 -0
  64. package/exports/abis/morpho/helper/IMetaMorphoV1_1.ts +1483 -0
  65. package/exports/abis/morpho/helper/IMetaMorphoV1_1Base.ts +607 -0
  66. package/exports/abis/morpho/helper/IMetaMorphoV1_1StaticTyping.ts +696 -0
  67. package/exports/abis/morpho/helper/IMorpho.ts +1024 -0
  68. package/exports/abis/morpho/helper/IMorphoBase.ts +886 -0
  69. package/exports/abis/morpho/helper/IMorphoChainlinkOracleV2.ts +132 -0
  70. package/exports/abis/morpho/helper/IMorphoChainlinkOracleV2Factory.ts +109 -0
  71. package/exports/abis/morpho/helper/IMorphoFlashLoanCallback.ts +20 -0
  72. package/exports/abis/morpho/helper/IMorphoLiquidateCallback.ts +20 -0
  73. package/exports/abis/morpho/helper/IMorphoRepayCallback.ts +20 -0
  74. package/exports/abis/morpho/helper/IMorphoStaticTyping.ts +1003 -0
  75. package/exports/abis/morpho/helper/IMorphoSupplyCallback.ts +20 -0
  76. package/exports/abis/morpho/helper/IMorphoSupplyCollateralCallback.ts +20 -0
  77. package/exports/abis/morpho/helper/IMulticall.ts +21 -0
  78. package/exports/abis/morpho/helper/IOracle.ts +15 -0
  79. package/exports/abis/morpho/helper/IOwnable.ts +55 -0
  80. package/exports/abis/morpho/helper/MorphoChainlinkOracleV2.ts +188 -0
  81. package/exports/abis/openzeppelin/ERC20.ts +310 -0
  82. package/exports/abis/openzeppelin/ERC20Permit.ts +520 -0
  83. package/exports/abis/openzeppelin/IERC20.ts +185 -0
  84. package/exports/abis/openzeppelin/IERC20Metadata.ts +224 -0
  85. package/exports/abis/openzeppelin/IERC20Permit.ts +77 -0
  86. package/exports/abis/openzeppelin/IERC4626.ts +614 -0
  87. package/exports/abis/reward/RewardDistributionV1.ts +246 -0
  88. package/exports/abis/stablecoin/ErrorsLib.ts +114 -0
  89. package/exports/abis/stablecoin/EventsLib.ts +372 -0
  90. package/exports/abis/stablecoin/IStablecoin.ts +642 -0
  91. package/exports/abis/stablecoin/IStablecoinMetadata.ts +856 -0
  92. package/exports/abis/stablecoin/IStablecoinModifier.ts +15 -0
  93. package/exports/abis/stablecoin/Stablecoin.ts +1922 -0
  94. package/exports/abis/termmax/ITermMaxVault.ts +2335 -0
  95. package/exports/abis/vault/VaultAdapterRecoverV1.ts +490 -0
  96. package/exports/abis/vault/VaultAdapterV1.ts +459 -0
  97. package/exports/address.config.ts +113 -0
  98. package/exports/address.types.ts +130 -0
  99. package/exports/index.ts +61 -0
  100. package/hardhat.config.ts +231 -0
  101. package/helper/store.args.ts +17 -0
  102. package/helper/wallet.info.ts +3 -0
  103. package/helper/wallet.ts +41 -0
  104. package/install-macos.sh +46 -0
  105. package/package.json +73 -0
  106. package/tsconfig.json +15 -0
  107. package/tsup.config.ts +10 -0
@@ -0,0 +1,1024 @@
1
+ export const IMorpho_ABI = [
2
+ {
3
+ inputs: [],
4
+ name: 'DOMAIN_SEPARATOR',
5
+ outputs: [
6
+ {
7
+ internalType: 'bytes32',
8
+ name: '',
9
+ type: 'bytes32',
10
+ },
11
+ ],
12
+ stateMutability: 'view',
13
+ type: 'function',
14
+ },
15
+ {
16
+ inputs: [
17
+ {
18
+ components: [
19
+ {
20
+ internalType: 'address',
21
+ name: 'loanToken',
22
+ type: 'address',
23
+ },
24
+ {
25
+ internalType: 'address',
26
+ name: 'collateralToken',
27
+ type: 'address',
28
+ },
29
+ {
30
+ internalType: 'address',
31
+ name: 'oracle',
32
+ type: 'address',
33
+ },
34
+ {
35
+ internalType: 'address',
36
+ name: 'irm',
37
+ type: 'address',
38
+ },
39
+ {
40
+ internalType: 'uint256',
41
+ name: 'lltv',
42
+ type: 'uint256',
43
+ },
44
+ ],
45
+ internalType: 'struct MarketParams',
46
+ name: 'marketParams',
47
+ type: 'tuple',
48
+ },
49
+ ],
50
+ name: 'accrueInterest',
51
+ outputs: [],
52
+ stateMutability: 'nonpayable',
53
+ type: 'function',
54
+ },
55
+ {
56
+ inputs: [
57
+ {
58
+ components: [
59
+ {
60
+ internalType: 'address',
61
+ name: 'loanToken',
62
+ type: 'address',
63
+ },
64
+ {
65
+ internalType: 'address',
66
+ name: 'collateralToken',
67
+ type: 'address',
68
+ },
69
+ {
70
+ internalType: 'address',
71
+ name: 'oracle',
72
+ type: 'address',
73
+ },
74
+ {
75
+ internalType: 'address',
76
+ name: 'irm',
77
+ type: 'address',
78
+ },
79
+ {
80
+ internalType: 'uint256',
81
+ name: 'lltv',
82
+ type: 'uint256',
83
+ },
84
+ ],
85
+ internalType: 'struct MarketParams',
86
+ name: 'marketParams',
87
+ type: 'tuple',
88
+ },
89
+ {
90
+ internalType: 'uint256',
91
+ name: 'assets',
92
+ type: 'uint256',
93
+ },
94
+ {
95
+ internalType: 'uint256',
96
+ name: 'shares',
97
+ type: 'uint256',
98
+ },
99
+ {
100
+ internalType: 'address',
101
+ name: 'onBehalf',
102
+ type: 'address',
103
+ },
104
+ {
105
+ internalType: 'address',
106
+ name: 'receiver',
107
+ type: 'address',
108
+ },
109
+ ],
110
+ name: 'borrow',
111
+ outputs: [
112
+ {
113
+ internalType: 'uint256',
114
+ name: 'assetsBorrowed',
115
+ type: 'uint256',
116
+ },
117
+ {
118
+ internalType: 'uint256',
119
+ name: 'sharesBorrowed',
120
+ type: 'uint256',
121
+ },
122
+ ],
123
+ stateMutability: 'nonpayable',
124
+ type: 'function',
125
+ },
126
+ {
127
+ inputs: [
128
+ {
129
+ components: [
130
+ {
131
+ internalType: 'address',
132
+ name: 'loanToken',
133
+ type: 'address',
134
+ },
135
+ {
136
+ internalType: 'address',
137
+ name: 'collateralToken',
138
+ type: 'address',
139
+ },
140
+ {
141
+ internalType: 'address',
142
+ name: 'oracle',
143
+ type: 'address',
144
+ },
145
+ {
146
+ internalType: 'address',
147
+ name: 'irm',
148
+ type: 'address',
149
+ },
150
+ {
151
+ internalType: 'uint256',
152
+ name: 'lltv',
153
+ type: 'uint256',
154
+ },
155
+ ],
156
+ internalType: 'struct MarketParams',
157
+ name: 'marketParams',
158
+ type: 'tuple',
159
+ },
160
+ ],
161
+ name: 'createMarket',
162
+ outputs: [],
163
+ stateMutability: 'nonpayable',
164
+ type: 'function',
165
+ },
166
+ {
167
+ inputs: [
168
+ {
169
+ internalType: 'address',
170
+ name: 'irm',
171
+ type: 'address',
172
+ },
173
+ ],
174
+ name: 'enableIrm',
175
+ outputs: [],
176
+ stateMutability: 'nonpayable',
177
+ type: 'function',
178
+ },
179
+ {
180
+ inputs: [
181
+ {
182
+ internalType: 'uint256',
183
+ name: 'lltv',
184
+ type: 'uint256',
185
+ },
186
+ ],
187
+ name: 'enableLltv',
188
+ outputs: [],
189
+ stateMutability: 'nonpayable',
190
+ type: 'function',
191
+ },
192
+ {
193
+ inputs: [
194
+ {
195
+ internalType: 'bytes32[]',
196
+ name: 'slots',
197
+ type: 'bytes32[]',
198
+ },
199
+ ],
200
+ name: 'extSloads',
201
+ outputs: [
202
+ {
203
+ internalType: 'bytes32[]',
204
+ name: '',
205
+ type: 'bytes32[]',
206
+ },
207
+ ],
208
+ stateMutability: 'view',
209
+ type: 'function',
210
+ },
211
+ {
212
+ inputs: [],
213
+ name: 'feeRecipient',
214
+ outputs: [
215
+ {
216
+ internalType: 'address',
217
+ name: '',
218
+ type: 'address',
219
+ },
220
+ ],
221
+ stateMutability: 'view',
222
+ type: 'function',
223
+ },
224
+ {
225
+ inputs: [
226
+ {
227
+ internalType: 'address',
228
+ name: 'token',
229
+ type: 'address',
230
+ },
231
+ {
232
+ internalType: 'uint256',
233
+ name: 'assets',
234
+ type: 'uint256',
235
+ },
236
+ {
237
+ internalType: 'bytes',
238
+ name: 'data',
239
+ type: 'bytes',
240
+ },
241
+ ],
242
+ name: 'flashLoan',
243
+ outputs: [],
244
+ stateMutability: 'nonpayable',
245
+ type: 'function',
246
+ },
247
+ {
248
+ inputs: [
249
+ {
250
+ internalType: 'Id',
251
+ name: 'id',
252
+ type: 'bytes32',
253
+ },
254
+ ],
255
+ name: 'idToMarketParams',
256
+ outputs: [
257
+ {
258
+ components: [
259
+ {
260
+ internalType: 'address',
261
+ name: 'loanToken',
262
+ type: 'address',
263
+ },
264
+ {
265
+ internalType: 'address',
266
+ name: 'collateralToken',
267
+ type: 'address',
268
+ },
269
+ {
270
+ internalType: 'address',
271
+ name: 'oracle',
272
+ type: 'address',
273
+ },
274
+ {
275
+ internalType: 'address',
276
+ name: 'irm',
277
+ type: 'address',
278
+ },
279
+ {
280
+ internalType: 'uint256',
281
+ name: 'lltv',
282
+ type: 'uint256',
283
+ },
284
+ ],
285
+ internalType: 'struct MarketParams',
286
+ name: '',
287
+ type: 'tuple',
288
+ },
289
+ ],
290
+ stateMutability: 'view',
291
+ type: 'function',
292
+ },
293
+ {
294
+ inputs: [
295
+ {
296
+ internalType: 'address',
297
+ name: 'authorizer',
298
+ type: 'address',
299
+ },
300
+ {
301
+ internalType: 'address',
302
+ name: 'authorized',
303
+ type: 'address',
304
+ },
305
+ ],
306
+ name: 'isAuthorized',
307
+ outputs: [
308
+ {
309
+ internalType: 'bool',
310
+ name: '',
311
+ type: 'bool',
312
+ },
313
+ ],
314
+ stateMutability: 'view',
315
+ type: 'function',
316
+ },
317
+ {
318
+ inputs: [
319
+ {
320
+ internalType: 'address',
321
+ name: 'irm',
322
+ type: 'address',
323
+ },
324
+ ],
325
+ name: 'isIrmEnabled',
326
+ outputs: [
327
+ {
328
+ internalType: 'bool',
329
+ name: '',
330
+ type: 'bool',
331
+ },
332
+ ],
333
+ stateMutability: 'view',
334
+ type: 'function',
335
+ },
336
+ {
337
+ inputs: [
338
+ {
339
+ internalType: 'uint256',
340
+ name: 'lltv',
341
+ type: 'uint256',
342
+ },
343
+ ],
344
+ name: 'isLltvEnabled',
345
+ outputs: [
346
+ {
347
+ internalType: 'bool',
348
+ name: '',
349
+ type: 'bool',
350
+ },
351
+ ],
352
+ stateMutability: 'view',
353
+ type: 'function',
354
+ },
355
+ {
356
+ inputs: [
357
+ {
358
+ components: [
359
+ {
360
+ internalType: 'address',
361
+ name: 'loanToken',
362
+ type: 'address',
363
+ },
364
+ {
365
+ internalType: 'address',
366
+ name: 'collateralToken',
367
+ type: 'address',
368
+ },
369
+ {
370
+ internalType: 'address',
371
+ name: 'oracle',
372
+ type: 'address',
373
+ },
374
+ {
375
+ internalType: 'address',
376
+ name: 'irm',
377
+ type: 'address',
378
+ },
379
+ {
380
+ internalType: 'uint256',
381
+ name: 'lltv',
382
+ type: 'uint256',
383
+ },
384
+ ],
385
+ internalType: 'struct MarketParams',
386
+ name: 'marketParams',
387
+ type: 'tuple',
388
+ },
389
+ {
390
+ internalType: 'address',
391
+ name: 'borrower',
392
+ type: 'address',
393
+ },
394
+ {
395
+ internalType: 'uint256',
396
+ name: 'seizedAssets',
397
+ type: 'uint256',
398
+ },
399
+ {
400
+ internalType: 'uint256',
401
+ name: 'repaidShares',
402
+ type: 'uint256',
403
+ },
404
+ {
405
+ internalType: 'bytes',
406
+ name: 'data',
407
+ type: 'bytes',
408
+ },
409
+ ],
410
+ name: 'liquidate',
411
+ outputs: [
412
+ {
413
+ internalType: 'uint256',
414
+ name: '',
415
+ type: 'uint256',
416
+ },
417
+ {
418
+ internalType: 'uint256',
419
+ name: '',
420
+ type: 'uint256',
421
+ },
422
+ ],
423
+ stateMutability: 'nonpayable',
424
+ type: 'function',
425
+ },
426
+ {
427
+ inputs: [
428
+ {
429
+ internalType: 'Id',
430
+ name: 'id',
431
+ type: 'bytes32',
432
+ },
433
+ ],
434
+ name: 'market',
435
+ outputs: [
436
+ {
437
+ components: [
438
+ {
439
+ internalType: 'uint128',
440
+ name: 'totalSupplyAssets',
441
+ type: 'uint128',
442
+ },
443
+ {
444
+ internalType: 'uint128',
445
+ name: 'totalSupplyShares',
446
+ type: 'uint128',
447
+ },
448
+ {
449
+ internalType: 'uint128',
450
+ name: 'totalBorrowAssets',
451
+ type: 'uint128',
452
+ },
453
+ {
454
+ internalType: 'uint128',
455
+ name: 'totalBorrowShares',
456
+ type: 'uint128',
457
+ },
458
+ {
459
+ internalType: 'uint128',
460
+ name: 'lastUpdate',
461
+ type: 'uint128',
462
+ },
463
+ {
464
+ internalType: 'uint128',
465
+ name: 'fee',
466
+ type: 'uint128',
467
+ },
468
+ ],
469
+ internalType: 'struct Market',
470
+ name: 'm',
471
+ type: 'tuple',
472
+ },
473
+ ],
474
+ stateMutability: 'view',
475
+ type: 'function',
476
+ },
477
+ {
478
+ inputs: [
479
+ {
480
+ internalType: 'address',
481
+ name: 'authorizer',
482
+ type: 'address',
483
+ },
484
+ ],
485
+ name: 'nonce',
486
+ outputs: [
487
+ {
488
+ internalType: 'uint256',
489
+ name: '',
490
+ type: 'uint256',
491
+ },
492
+ ],
493
+ stateMutability: 'view',
494
+ type: 'function',
495
+ },
496
+ {
497
+ inputs: [],
498
+ name: 'owner',
499
+ outputs: [
500
+ {
501
+ internalType: 'address',
502
+ name: '',
503
+ type: 'address',
504
+ },
505
+ ],
506
+ stateMutability: 'view',
507
+ type: 'function',
508
+ },
509
+ {
510
+ inputs: [
511
+ {
512
+ internalType: 'Id',
513
+ name: 'id',
514
+ type: 'bytes32',
515
+ },
516
+ {
517
+ internalType: 'address',
518
+ name: 'user',
519
+ type: 'address',
520
+ },
521
+ ],
522
+ name: 'position',
523
+ outputs: [
524
+ {
525
+ components: [
526
+ {
527
+ internalType: 'uint256',
528
+ name: 'supplyShares',
529
+ type: 'uint256',
530
+ },
531
+ {
532
+ internalType: 'uint128',
533
+ name: 'borrowShares',
534
+ type: 'uint128',
535
+ },
536
+ {
537
+ internalType: 'uint128',
538
+ name: 'collateral',
539
+ type: 'uint128',
540
+ },
541
+ ],
542
+ internalType: 'struct Position',
543
+ name: 'p',
544
+ type: 'tuple',
545
+ },
546
+ ],
547
+ stateMutability: 'view',
548
+ type: 'function',
549
+ },
550
+ {
551
+ inputs: [
552
+ {
553
+ components: [
554
+ {
555
+ internalType: 'address',
556
+ name: 'loanToken',
557
+ type: 'address',
558
+ },
559
+ {
560
+ internalType: 'address',
561
+ name: 'collateralToken',
562
+ type: 'address',
563
+ },
564
+ {
565
+ internalType: 'address',
566
+ name: 'oracle',
567
+ type: 'address',
568
+ },
569
+ {
570
+ internalType: 'address',
571
+ name: 'irm',
572
+ type: 'address',
573
+ },
574
+ {
575
+ internalType: 'uint256',
576
+ name: 'lltv',
577
+ type: 'uint256',
578
+ },
579
+ ],
580
+ internalType: 'struct MarketParams',
581
+ name: 'marketParams',
582
+ type: 'tuple',
583
+ },
584
+ {
585
+ internalType: 'uint256',
586
+ name: 'assets',
587
+ type: 'uint256',
588
+ },
589
+ {
590
+ internalType: 'uint256',
591
+ name: 'shares',
592
+ type: 'uint256',
593
+ },
594
+ {
595
+ internalType: 'address',
596
+ name: 'onBehalf',
597
+ type: 'address',
598
+ },
599
+ {
600
+ internalType: 'bytes',
601
+ name: 'data',
602
+ type: 'bytes',
603
+ },
604
+ ],
605
+ name: 'repay',
606
+ outputs: [
607
+ {
608
+ internalType: 'uint256',
609
+ name: 'assetsRepaid',
610
+ type: 'uint256',
611
+ },
612
+ {
613
+ internalType: 'uint256',
614
+ name: 'sharesRepaid',
615
+ type: 'uint256',
616
+ },
617
+ ],
618
+ stateMutability: 'nonpayable',
619
+ type: 'function',
620
+ },
621
+ {
622
+ inputs: [
623
+ {
624
+ internalType: 'address',
625
+ name: 'authorized',
626
+ type: 'address',
627
+ },
628
+ {
629
+ internalType: 'bool',
630
+ name: 'newIsAuthorized',
631
+ type: 'bool',
632
+ },
633
+ ],
634
+ name: 'setAuthorization',
635
+ outputs: [],
636
+ stateMutability: 'nonpayable',
637
+ type: 'function',
638
+ },
639
+ {
640
+ inputs: [
641
+ {
642
+ components: [
643
+ {
644
+ internalType: 'address',
645
+ name: 'authorizer',
646
+ type: 'address',
647
+ },
648
+ {
649
+ internalType: 'address',
650
+ name: 'authorized',
651
+ type: 'address',
652
+ },
653
+ {
654
+ internalType: 'bool',
655
+ name: 'isAuthorized',
656
+ type: 'bool',
657
+ },
658
+ {
659
+ internalType: 'uint256',
660
+ name: 'nonce',
661
+ type: 'uint256',
662
+ },
663
+ {
664
+ internalType: 'uint256',
665
+ name: 'deadline',
666
+ type: 'uint256',
667
+ },
668
+ ],
669
+ internalType: 'struct Authorization',
670
+ name: 'authorization',
671
+ type: 'tuple',
672
+ },
673
+ {
674
+ components: [
675
+ {
676
+ internalType: 'uint8',
677
+ name: 'v',
678
+ type: 'uint8',
679
+ },
680
+ {
681
+ internalType: 'bytes32',
682
+ name: 'r',
683
+ type: 'bytes32',
684
+ },
685
+ {
686
+ internalType: 'bytes32',
687
+ name: 's',
688
+ type: 'bytes32',
689
+ },
690
+ ],
691
+ internalType: 'struct Signature',
692
+ name: 'signature',
693
+ type: 'tuple',
694
+ },
695
+ ],
696
+ name: 'setAuthorizationWithSig',
697
+ outputs: [],
698
+ stateMutability: 'nonpayable',
699
+ type: 'function',
700
+ },
701
+ {
702
+ inputs: [
703
+ {
704
+ components: [
705
+ {
706
+ internalType: 'address',
707
+ name: 'loanToken',
708
+ type: 'address',
709
+ },
710
+ {
711
+ internalType: 'address',
712
+ name: 'collateralToken',
713
+ type: 'address',
714
+ },
715
+ {
716
+ internalType: 'address',
717
+ name: 'oracle',
718
+ type: 'address',
719
+ },
720
+ {
721
+ internalType: 'address',
722
+ name: 'irm',
723
+ type: 'address',
724
+ },
725
+ {
726
+ internalType: 'uint256',
727
+ name: 'lltv',
728
+ type: 'uint256',
729
+ },
730
+ ],
731
+ internalType: 'struct MarketParams',
732
+ name: 'marketParams',
733
+ type: 'tuple',
734
+ },
735
+ {
736
+ internalType: 'uint256',
737
+ name: 'newFee',
738
+ type: 'uint256',
739
+ },
740
+ ],
741
+ name: 'setFee',
742
+ outputs: [],
743
+ stateMutability: 'nonpayable',
744
+ type: 'function',
745
+ },
746
+ {
747
+ inputs: [
748
+ {
749
+ internalType: 'address',
750
+ name: 'newFeeRecipient',
751
+ type: 'address',
752
+ },
753
+ ],
754
+ name: 'setFeeRecipient',
755
+ outputs: [],
756
+ stateMutability: 'nonpayable',
757
+ type: 'function',
758
+ },
759
+ {
760
+ inputs: [
761
+ {
762
+ internalType: 'address',
763
+ name: 'newOwner',
764
+ type: 'address',
765
+ },
766
+ ],
767
+ name: 'setOwner',
768
+ outputs: [],
769
+ stateMutability: 'nonpayable',
770
+ type: 'function',
771
+ },
772
+ {
773
+ inputs: [
774
+ {
775
+ components: [
776
+ {
777
+ internalType: 'address',
778
+ name: 'loanToken',
779
+ type: 'address',
780
+ },
781
+ {
782
+ internalType: 'address',
783
+ name: 'collateralToken',
784
+ type: 'address',
785
+ },
786
+ {
787
+ internalType: 'address',
788
+ name: 'oracle',
789
+ type: 'address',
790
+ },
791
+ {
792
+ internalType: 'address',
793
+ name: 'irm',
794
+ type: 'address',
795
+ },
796
+ {
797
+ internalType: 'uint256',
798
+ name: 'lltv',
799
+ type: 'uint256',
800
+ },
801
+ ],
802
+ internalType: 'struct MarketParams',
803
+ name: 'marketParams',
804
+ type: 'tuple',
805
+ },
806
+ {
807
+ internalType: 'uint256',
808
+ name: 'assets',
809
+ type: 'uint256',
810
+ },
811
+ {
812
+ internalType: 'uint256',
813
+ name: 'shares',
814
+ type: 'uint256',
815
+ },
816
+ {
817
+ internalType: 'address',
818
+ name: 'onBehalf',
819
+ type: 'address',
820
+ },
821
+ {
822
+ internalType: 'bytes',
823
+ name: 'data',
824
+ type: 'bytes',
825
+ },
826
+ ],
827
+ name: 'supply',
828
+ outputs: [
829
+ {
830
+ internalType: 'uint256',
831
+ name: 'assetsSupplied',
832
+ type: 'uint256',
833
+ },
834
+ {
835
+ internalType: 'uint256',
836
+ name: 'sharesSupplied',
837
+ type: 'uint256',
838
+ },
839
+ ],
840
+ stateMutability: 'nonpayable',
841
+ type: 'function',
842
+ },
843
+ {
844
+ inputs: [
845
+ {
846
+ components: [
847
+ {
848
+ internalType: 'address',
849
+ name: 'loanToken',
850
+ type: 'address',
851
+ },
852
+ {
853
+ internalType: 'address',
854
+ name: 'collateralToken',
855
+ type: 'address',
856
+ },
857
+ {
858
+ internalType: 'address',
859
+ name: 'oracle',
860
+ type: 'address',
861
+ },
862
+ {
863
+ internalType: 'address',
864
+ name: 'irm',
865
+ type: 'address',
866
+ },
867
+ {
868
+ internalType: 'uint256',
869
+ name: 'lltv',
870
+ type: 'uint256',
871
+ },
872
+ ],
873
+ internalType: 'struct MarketParams',
874
+ name: 'marketParams',
875
+ type: 'tuple',
876
+ },
877
+ {
878
+ internalType: 'uint256',
879
+ name: 'assets',
880
+ type: 'uint256',
881
+ },
882
+ {
883
+ internalType: 'address',
884
+ name: 'onBehalf',
885
+ type: 'address',
886
+ },
887
+ {
888
+ internalType: 'bytes',
889
+ name: 'data',
890
+ type: 'bytes',
891
+ },
892
+ ],
893
+ name: 'supplyCollateral',
894
+ outputs: [],
895
+ stateMutability: 'nonpayable',
896
+ type: 'function',
897
+ },
898
+ {
899
+ inputs: [
900
+ {
901
+ components: [
902
+ {
903
+ internalType: 'address',
904
+ name: 'loanToken',
905
+ type: 'address',
906
+ },
907
+ {
908
+ internalType: 'address',
909
+ name: 'collateralToken',
910
+ type: 'address',
911
+ },
912
+ {
913
+ internalType: 'address',
914
+ name: 'oracle',
915
+ type: 'address',
916
+ },
917
+ {
918
+ internalType: 'address',
919
+ name: 'irm',
920
+ type: 'address',
921
+ },
922
+ {
923
+ internalType: 'uint256',
924
+ name: 'lltv',
925
+ type: 'uint256',
926
+ },
927
+ ],
928
+ internalType: 'struct MarketParams',
929
+ name: 'marketParams',
930
+ type: 'tuple',
931
+ },
932
+ {
933
+ internalType: 'uint256',
934
+ name: 'assets',
935
+ type: 'uint256',
936
+ },
937
+ {
938
+ internalType: 'uint256',
939
+ name: 'shares',
940
+ type: 'uint256',
941
+ },
942
+ {
943
+ internalType: 'address',
944
+ name: 'onBehalf',
945
+ type: 'address',
946
+ },
947
+ {
948
+ internalType: 'address',
949
+ name: 'receiver',
950
+ type: 'address',
951
+ },
952
+ ],
953
+ name: 'withdraw',
954
+ outputs: [
955
+ {
956
+ internalType: 'uint256',
957
+ name: 'assetsWithdrawn',
958
+ type: 'uint256',
959
+ },
960
+ {
961
+ internalType: 'uint256',
962
+ name: 'sharesWithdrawn',
963
+ type: 'uint256',
964
+ },
965
+ ],
966
+ stateMutability: 'nonpayable',
967
+ type: 'function',
968
+ },
969
+ {
970
+ inputs: [
971
+ {
972
+ components: [
973
+ {
974
+ internalType: 'address',
975
+ name: 'loanToken',
976
+ type: 'address',
977
+ },
978
+ {
979
+ internalType: 'address',
980
+ name: 'collateralToken',
981
+ type: 'address',
982
+ },
983
+ {
984
+ internalType: 'address',
985
+ name: 'oracle',
986
+ type: 'address',
987
+ },
988
+ {
989
+ internalType: 'address',
990
+ name: 'irm',
991
+ type: 'address',
992
+ },
993
+ {
994
+ internalType: 'uint256',
995
+ name: 'lltv',
996
+ type: 'uint256',
997
+ },
998
+ ],
999
+ internalType: 'struct MarketParams',
1000
+ name: 'marketParams',
1001
+ type: 'tuple',
1002
+ },
1003
+ {
1004
+ internalType: 'uint256',
1005
+ name: 'assets',
1006
+ type: 'uint256',
1007
+ },
1008
+ {
1009
+ internalType: 'address',
1010
+ name: 'onBehalf',
1011
+ type: 'address',
1012
+ },
1013
+ {
1014
+ internalType: 'address',
1015
+ name: 'receiver',
1016
+ type: 'address',
1017
+ },
1018
+ ],
1019
+ name: 'withdrawCollateral',
1020
+ outputs: [],
1021
+ stateMutability: 'nonpayable',
1022
+ type: 'function',
1023
+ },
1024
+ ] as const;