@kasarlabs/vesu-mcp 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 (46) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/bin/vesu-mcp.js +14 -0
  4. package/build/index.d.ts +2 -0
  5. package/build/index.js +49 -0
  6. package/build/index.js.map +1 -0
  7. package/build/interfaces/index.d.ts +112 -0
  8. package/build/interfaces/index.js +28 -0
  9. package/build/interfaces/index.js.map +1 -0
  10. package/build/lib/abis/erc20Abi.d.ts +89 -0
  11. package/build/lib/abis/erc20Abi.js +128 -0
  12. package/build/lib/abis/erc20Abi.js.map +1 -0
  13. package/build/lib/abis/extensionAbi.d.ts +1397 -0
  14. package/build/lib/abis/extensionAbi.js +1909 -0
  15. package/build/lib/abis/extensionAbi.js.map +1 -0
  16. package/build/lib/abis/singletonAbi.d.ts +1410 -0
  17. package/build/lib/abis/singletonAbi.js +1914 -0
  18. package/build/lib/abis/singletonAbi.js.map +1 -0
  19. package/build/lib/abis/vTokenAbi.d.ts +561 -0
  20. package/build/lib/abis/vTokenAbi.js +781 -0
  21. package/build/lib/abis/vTokenAbi.js.map +1 -0
  22. package/build/lib/constants/index.d.ts +7 -0
  23. package/build/lib/constants/index.js +7 -0
  24. package/build/lib/constants/index.js.map +1 -0
  25. package/build/lib/dependances/types.d.ts +85 -0
  26. package/build/lib/dependances/types.js +51 -0
  27. package/build/lib/dependances/types.js.map +1 -0
  28. package/build/lib/utils/contracts.d.ts +3458 -0
  29. package/build/lib/utils/contracts.js +22 -0
  30. package/build/lib/utils/contracts.js.map +1 -0
  31. package/build/lib/utils/num.d.ts +33 -0
  32. package/build/lib/utils/num.js +59 -0
  33. package/build/lib/utils/num.js.map +1 -0
  34. package/build/lib/utils/processTransactions.d.ts +6 -0
  35. package/build/lib/utils/processTransactions.js +23 -0
  36. package/build/lib/utils/processTransactions.js.map +1 -0
  37. package/build/schemas/index.d.ts +18 -0
  38. package/build/schemas/index.js +13 -0
  39. package/build/schemas/index.js.map +1 -0
  40. package/build/tools/depositService.d.ts +19 -0
  41. package/build/tools/depositService.js +117 -0
  42. package/build/tools/depositService.js.map +1 -0
  43. package/build/tools/withdrawService.d.ts +20 -0
  44. package/build/tools/withdrawService.js +122 -0
  45. package/build/tools/withdrawService.js.map +1 -0
  46. package/package.json +44 -0
@@ -0,0 +1,3458 @@
1
+ import { Address } from '../../interfaces/index.js';
2
+ export declare const getErc20Contract: (address: Address) => import("starknet").TypedContractV2<readonly [{
3
+ readonly type: "function";
4
+ readonly name: "name";
5
+ readonly inputs: readonly [];
6
+ readonly outputs: readonly [{
7
+ readonly type: "core::felt252";
8
+ }];
9
+ readonly state_mutability: "view";
10
+ }, {
11
+ readonly type: "function";
12
+ readonly name: "symbol";
13
+ readonly inputs: readonly [];
14
+ readonly outputs: readonly [{
15
+ readonly type: "core::felt252";
16
+ }];
17
+ readonly state_mutability: "view";
18
+ }, {
19
+ readonly type: "function";
20
+ readonly name: "decimals";
21
+ readonly inputs: readonly [];
22
+ readonly outputs: readonly [{
23
+ readonly type: "core::integer::u8";
24
+ }];
25
+ readonly state_mutability: "view";
26
+ }, {
27
+ readonly type: "function";
28
+ readonly name: "balance_of";
29
+ readonly inputs: readonly [{
30
+ readonly name: "account";
31
+ readonly type: "core::starknet::contract_address::ContractAddress";
32
+ }];
33
+ readonly outputs: readonly [{
34
+ readonly type: "core::integer::u256";
35
+ }];
36
+ readonly state_mutability: "view";
37
+ }, {
38
+ readonly type: "function";
39
+ readonly name: "balanceOf";
40
+ readonly inputs: readonly [{
41
+ readonly name: "account";
42
+ readonly type: "core::starknet::contract_address::ContractAddress";
43
+ }];
44
+ readonly outputs: readonly [{
45
+ readonly type: "core::integer::u256";
46
+ }];
47
+ readonly state_mutability: "view";
48
+ }, {
49
+ readonly type: "function";
50
+ readonly name: "allowance";
51
+ readonly inputs: readonly [{
52
+ readonly name: "owner";
53
+ readonly type: "core::starknet::contract_address::ContractAddress";
54
+ }, {
55
+ readonly name: "spender";
56
+ readonly type: "core::starknet::contract_address::ContractAddress";
57
+ }];
58
+ readonly outputs: readonly [{
59
+ readonly type: "core::integer::u256";
60
+ }];
61
+ readonly state_mutability: "view";
62
+ }, {
63
+ readonly type: "function";
64
+ readonly name: "approve";
65
+ readonly inputs: readonly [{
66
+ readonly name: "spender";
67
+ readonly type: "core::starknet::contract_address::ContractAddress";
68
+ }, {
69
+ readonly name: "amount";
70
+ readonly type: "core::integer::u256";
71
+ }];
72
+ readonly outputs: readonly [{
73
+ readonly type: "core::bool";
74
+ }];
75
+ readonly state_mutability: "external";
76
+ }, {
77
+ readonly type: "function";
78
+ readonly name: "transfer";
79
+ readonly inputs: readonly [{
80
+ readonly name: "recipient";
81
+ readonly type: "core::starknet::contract_address::ContractAddress";
82
+ }, {
83
+ readonly name: "amount";
84
+ readonly type: "core::integer::u256";
85
+ }];
86
+ readonly outputs: readonly [{
87
+ readonly type: "core::bool";
88
+ }];
89
+ readonly state_mutability: "external";
90
+ }]>;
91
+ export declare const getVTokenContract: (address: Address) => import("starknet").TypedContractV2<readonly [{
92
+ readonly name: "VToken";
93
+ readonly type: "impl";
94
+ readonly interface_name: "vesu::v_token::IVToken";
95
+ }, {
96
+ readonly name: "core::integer::u256";
97
+ readonly type: "struct";
98
+ readonly members: readonly [{
99
+ readonly name: "low";
100
+ readonly type: "core::integer::u128";
101
+ }, {
102
+ readonly name: "high";
103
+ readonly type: "core::integer::u128";
104
+ }];
105
+ }, {
106
+ readonly name: "core::bool";
107
+ readonly type: "enum";
108
+ readonly variants: readonly [{
109
+ readonly name: "False";
110
+ readonly type: "()";
111
+ }, {
112
+ readonly name: "True";
113
+ readonly type: "()";
114
+ }];
115
+ }, {
116
+ readonly name: "vesu::v_token::IVToken";
117
+ readonly type: "interface";
118
+ readonly items: readonly [{
119
+ readonly name: "extension";
120
+ readonly type: "function";
121
+ readonly inputs: readonly [];
122
+ readonly outputs: readonly [{
123
+ readonly type: "core::starknet::contract_address::ContractAddress";
124
+ }];
125
+ readonly state_mutability: "view";
126
+ }, {
127
+ readonly name: "approve_extension";
128
+ readonly type: "function";
129
+ readonly inputs: readonly [];
130
+ readonly outputs: readonly [];
131
+ readonly state_mutability: "external";
132
+ }, {
133
+ readonly name: "mint_v_token";
134
+ readonly type: "function";
135
+ readonly inputs: readonly [{
136
+ readonly name: "recipient";
137
+ readonly type: "core::starknet::contract_address::ContractAddress";
138
+ }, {
139
+ readonly name: "amount";
140
+ readonly type: "core::integer::u256";
141
+ }];
142
+ readonly outputs: readonly [{
143
+ readonly type: "core::bool";
144
+ }];
145
+ readonly state_mutability: "external";
146
+ }, {
147
+ readonly name: "burn_v_token";
148
+ readonly type: "function";
149
+ readonly inputs: readonly [{
150
+ readonly name: "from";
151
+ readonly type: "core::starknet::contract_address::ContractAddress";
152
+ }, {
153
+ readonly name: "amount";
154
+ readonly type: "core::integer::u256";
155
+ }];
156
+ readonly outputs: readonly [{
157
+ readonly type: "core::bool";
158
+ }];
159
+ readonly state_mutability: "external";
160
+ }];
161
+ }, {
162
+ readonly name: "IERC4626";
163
+ readonly type: "impl";
164
+ readonly interface_name: "vesu::v_token::IERC4626";
165
+ }, {
166
+ readonly name: "vesu::v_token::IERC4626";
167
+ readonly type: "interface";
168
+ readonly items: readonly [{
169
+ readonly name: "asset";
170
+ readonly type: "function";
171
+ readonly inputs: readonly [];
172
+ readonly outputs: readonly [{
173
+ readonly type: "core::starknet::contract_address::ContractAddress";
174
+ }];
175
+ readonly state_mutability: "view";
176
+ }, {
177
+ readonly name: "total_assets";
178
+ readonly type: "function";
179
+ readonly inputs: readonly [];
180
+ readonly outputs: readonly [{
181
+ readonly type: "core::integer::u256";
182
+ }];
183
+ readonly state_mutability: "view";
184
+ }, {
185
+ readonly name: "convert_to_shares";
186
+ readonly type: "function";
187
+ readonly inputs: readonly [{
188
+ readonly name: "assets";
189
+ readonly type: "core::integer::u256";
190
+ }];
191
+ readonly outputs: readonly [{
192
+ readonly type: "core::integer::u256";
193
+ }];
194
+ readonly state_mutability: "view";
195
+ }, {
196
+ readonly name: "convert_to_assets";
197
+ readonly type: "function";
198
+ readonly inputs: readonly [{
199
+ readonly name: "shares";
200
+ readonly type: "core::integer::u256";
201
+ }];
202
+ readonly outputs: readonly [{
203
+ readonly type: "core::integer::u256";
204
+ }];
205
+ readonly state_mutability: "view";
206
+ }, {
207
+ readonly name: "max_deposit";
208
+ readonly type: "function";
209
+ readonly inputs: readonly [{
210
+ readonly name: "receiver";
211
+ readonly type: "core::starknet::contract_address::ContractAddress";
212
+ }];
213
+ readonly outputs: readonly [{
214
+ readonly type: "core::integer::u256";
215
+ }];
216
+ readonly state_mutability: "view";
217
+ }, {
218
+ readonly name: "preview_deposit";
219
+ readonly type: "function";
220
+ readonly inputs: readonly [{
221
+ readonly name: "assets";
222
+ readonly type: "core::integer::u256";
223
+ }];
224
+ readonly outputs: readonly [{
225
+ readonly type: "core::integer::u256";
226
+ }];
227
+ readonly state_mutability: "view";
228
+ }, {
229
+ readonly name: "deposit";
230
+ readonly type: "function";
231
+ readonly inputs: readonly [{
232
+ readonly name: "assets";
233
+ readonly type: "core::integer::u256";
234
+ }, {
235
+ readonly name: "receiver";
236
+ readonly type: "core::starknet::contract_address::ContractAddress";
237
+ }];
238
+ readonly outputs: readonly [{
239
+ readonly type: "core::integer::u256";
240
+ }];
241
+ readonly state_mutability: "external";
242
+ }, {
243
+ readonly name: "max_mint";
244
+ readonly type: "function";
245
+ readonly inputs: readonly [{
246
+ readonly name: "receiver";
247
+ readonly type: "core::starknet::contract_address::ContractAddress";
248
+ }];
249
+ readonly outputs: readonly [{
250
+ readonly type: "core::integer::u256";
251
+ }];
252
+ readonly state_mutability: "view";
253
+ }, {
254
+ readonly name: "preview_mint";
255
+ readonly type: "function";
256
+ readonly inputs: readonly [{
257
+ readonly name: "shares";
258
+ readonly type: "core::integer::u256";
259
+ }];
260
+ readonly outputs: readonly [{
261
+ readonly type: "core::integer::u256";
262
+ }];
263
+ readonly state_mutability: "view";
264
+ }, {
265
+ readonly name: "mint";
266
+ readonly type: "function";
267
+ readonly inputs: readonly [{
268
+ readonly name: "shares";
269
+ readonly type: "core::integer::u256";
270
+ }, {
271
+ readonly name: "receiver";
272
+ readonly type: "core::starknet::contract_address::ContractAddress";
273
+ }];
274
+ readonly outputs: readonly [{
275
+ readonly type: "core::integer::u256";
276
+ }];
277
+ readonly state_mutability: "external";
278
+ }, {
279
+ readonly name: "max_withdraw";
280
+ readonly type: "function";
281
+ readonly inputs: readonly [{
282
+ readonly name: "owner";
283
+ readonly type: "core::starknet::contract_address::ContractAddress";
284
+ }];
285
+ readonly outputs: readonly [{
286
+ readonly type: "core::integer::u256";
287
+ }];
288
+ readonly state_mutability: "view";
289
+ }, {
290
+ readonly name: "preview_withdraw";
291
+ readonly type: "function";
292
+ readonly inputs: readonly [{
293
+ readonly name: "assets";
294
+ readonly type: "core::integer::u256";
295
+ }];
296
+ readonly outputs: readonly [{
297
+ readonly type: "core::integer::u256";
298
+ }];
299
+ readonly state_mutability: "view";
300
+ }, {
301
+ readonly name: "withdraw";
302
+ readonly type: "function";
303
+ readonly inputs: readonly [{
304
+ readonly name: "assets";
305
+ readonly type: "core::integer::u256";
306
+ }, {
307
+ readonly name: "receiver";
308
+ readonly type: "core::starknet::contract_address::ContractAddress";
309
+ }, {
310
+ readonly name: "owner";
311
+ readonly type: "core::starknet::contract_address::ContractAddress";
312
+ }];
313
+ readonly outputs: readonly [{
314
+ readonly type: "core::integer::u256";
315
+ }];
316
+ readonly state_mutability: "external";
317
+ }, {
318
+ readonly name: "max_redeem";
319
+ readonly type: "function";
320
+ readonly inputs: readonly [{
321
+ readonly name: "owner";
322
+ readonly type: "core::starknet::contract_address::ContractAddress";
323
+ }];
324
+ readonly outputs: readonly [{
325
+ readonly type: "core::integer::u256";
326
+ }];
327
+ readonly state_mutability: "view";
328
+ }, {
329
+ readonly name: "preview_redeem";
330
+ readonly type: "function";
331
+ readonly inputs: readonly [{
332
+ readonly name: "shares";
333
+ readonly type: "core::integer::u256";
334
+ }];
335
+ readonly outputs: readonly [{
336
+ readonly type: "core::integer::u256";
337
+ }];
338
+ readonly state_mutability: "view";
339
+ }, {
340
+ readonly name: "redeem";
341
+ readonly type: "function";
342
+ readonly inputs: readonly [{
343
+ readonly name: "shares";
344
+ readonly type: "core::integer::u256";
345
+ }, {
346
+ readonly name: "receiver";
347
+ readonly type: "core::starknet::contract_address::ContractAddress";
348
+ }, {
349
+ readonly name: "owner";
350
+ readonly type: "core::starknet::contract_address::ContractAddress";
351
+ }];
352
+ readonly outputs: readonly [{
353
+ readonly type: "core::integer::u256";
354
+ }];
355
+ readonly state_mutability: "external";
356
+ }];
357
+ }, {
358
+ readonly name: "ERC20Impl";
359
+ readonly type: "impl";
360
+ readonly interface_name: "vesu::vendor::erc20::IERC20";
361
+ }, {
362
+ readonly name: "vesu::vendor::erc20::IERC20";
363
+ readonly type: "interface";
364
+ readonly items: readonly [{
365
+ readonly name: "total_supply";
366
+ readonly type: "function";
367
+ readonly inputs: readonly [];
368
+ readonly outputs: readonly [{
369
+ readonly type: "core::integer::u256";
370
+ }];
371
+ readonly state_mutability: "view";
372
+ }, {
373
+ readonly name: "balance_of";
374
+ readonly type: "function";
375
+ readonly inputs: readonly [{
376
+ readonly name: "account";
377
+ readonly type: "core::starknet::contract_address::ContractAddress";
378
+ }];
379
+ readonly outputs: readonly [{
380
+ readonly type: "core::integer::u256";
381
+ }];
382
+ readonly state_mutability: "view";
383
+ }, {
384
+ readonly name: "allowance";
385
+ readonly type: "function";
386
+ readonly inputs: readonly [{
387
+ readonly name: "owner";
388
+ readonly type: "core::starknet::contract_address::ContractAddress";
389
+ }, {
390
+ readonly name: "spender";
391
+ readonly type: "core::starknet::contract_address::ContractAddress";
392
+ }];
393
+ readonly outputs: readonly [{
394
+ readonly type: "core::integer::u256";
395
+ }];
396
+ readonly state_mutability: "view";
397
+ }, {
398
+ readonly name: "transfer";
399
+ readonly type: "function";
400
+ readonly inputs: readonly [{
401
+ readonly name: "recipient";
402
+ readonly type: "core::starknet::contract_address::ContractAddress";
403
+ }, {
404
+ readonly name: "amount";
405
+ readonly type: "core::integer::u256";
406
+ }];
407
+ readonly outputs: readonly [{
408
+ readonly type: "core::bool";
409
+ }];
410
+ readonly state_mutability: "external";
411
+ }, {
412
+ readonly name: "transfer_from";
413
+ readonly type: "function";
414
+ readonly inputs: readonly [{
415
+ readonly name: "sender";
416
+ readonly type: "core::starknet::contract_address::ContractAddress";
417
+ }, {
418
+ readonly name: "recipient";
419
+ readonly type: "core::starknet::contract_address::ContractAddress";
420
+ }, {
421
+ readonly name: "amount";
422
+ readonly type: "core::integer::u256";
423
+ }];
424
+ readonly outputs: readonly [{
425
+ readonly type: "core::bool";
426
+ }];
427
+ readonly state_mutability: "external";
428
+ }, {
429
+ readonly name: "approve";
430
+ readonly type: "function";
431
+ readonly inputs: readonly [{
432
+ readonly name: "spender";
433
+ readonly type: "core::starknet::contract_address::ContractAddress";
434
+ }, {
435
+ readonly name: "amount";
436
+ readonly type: "core::integer::u256";
437
+ }];
438
+ readonly outputs: readonly [{
439
+ readonly type: "core::bool";
440
+ }];
441
+ readonly state_mutability: "external";
442
+ }];
443
+ }, {
444
+ readonly name: "ERC20MetadataImpl";
445
+ readonly type: "impl";
446
+ readonly interface_name: "vesu::vendor::erc20::IERC20Metadata";
447
+ }, {
448
+ readonly name: "vesu::vendor::erc20::IERC20Metadata";
449
+ readonly type: "interface";
450
+ readonly items: readonly [{
451
+ readonly name: "name";
452
+ readonly type: "function";
453
+ readonly inputs: readonly [];
454
+ readonly outputs: readonly [{
455
+ readonly type: "core::felt252";
456
+ }];
457
+ readonly state_mutability: "view";
458
+ }, {
459
+ readonly name: "symbol";
460
+ readonly type: "function";
461
+ readonly inputs: readonly [];
462
+ readonly outputs: readonly [{
463
+ readonly type: "core::felt252";
464
+ }];
465
+ readonly state_mutability: "view";
466
+ }, {
467
+ readonly name: "decimals";
468
+ readonly type: "function";
469
+ readonly inputs: readonly [];
470
+ readonly outputs: readonly [{
471
+ readonly type: "core::integer::u8";
472
+ }];
473
+ readonly state_mutability: "view";
474
+ }];
475
+ }, {
476
+ readonly name: "ERC20CamelOnlyImpl";
477
+ readonly type: "impl";
478
+ readonly interface_name: "vesu::vendor::erc20::IERC20CamelOnly";
479
+ }, {
480
+ readonly name: "vesu::vendor::erc20::IERC20CamelOnly";
481
+ readonly type: "interface";
482
+ readonly items: readonly [{
483
+ readonly name: "totalSupply";
484
+ readonly type: "function";
485
+ readonly inputs: readonly [];
486
+ readonly outputs: readonly [{
487
+ readonly type: "core::integer::u256";
488
+ }];
489
+ readonly state_mutability: "view";
490
+ }, {
491
+ readonly name: "balanceOf";
492
+ readonly type: "function";
493
+ readonly inputs: readonly [{
494
+ readonly name: "account";
495
+ readonly type: "core::starknet::contract_address::ContractAddress";
496
+ }];
497
+ readonly outputs: readonly [{
498
+ readonly type: "core::integer::u256";
499
+ }];
500
+ readonly state_mutability: "view";
501
+ }, {
502
+ readonly name: "transferFrom";
503
+ readonly type: "function";
504
+ readonly inputs: readonly [{
505
+ readonly name: "sender";
506
+ readonly type: "core::starknet::contract_address::ContractAddress";
507
+ }, {
508
+ readonly name: "recipient";
509
+ readonly type: "core::starknet::contract_address::ContractAddress";
510
+ }, {
511
+ readonly name: "amount";
512
+ readonly type: "core::integer::u256";
513
+ }];
514
+ readonly outputs: readonly [{
515
+ readonly type: "core::bool";
516
+ }];
517
+ readonly state_mutability: "external";
518
+ }];
519
+ }, {
520
+ readonly name: "constructor";
521
+ readonly type: "constructor";
522
+ readonly inputs: readonly [{
523
+ readonly name: "name";
524
+ readonly type: "core::felt252";
525
+ }, {
526
+ readonly name: "symbol";
527
+ readonly type: "core::felt252";
528
+ }, {
529
+ readonly name: "decimals";
530
+ readonly type: "core::integer::u8";
531
+ }, {
532
+ readonly name: "pool_id";
533
+ readonly type: "core::felt252";
534
+ }, {
535
+ readonly name: "extension";
536
+ readonly type: "core::starknet::contract_address::ContractAddress";
537
+ }, {
538
+ readonly name: "asset";
539
+ readonly type: "core::starknet::contract_address::ContractAddress";
540
+ }];
541
+ }, {
542
+ readonly kind: "struct";
543
+ readonly name: "vesu::vendor::erc20_component::ERC20Component::Transfer";
544
+ readonly type: "event";
545
+ readonly members: readonly [{
546
+ readonly kind: "key";
547
+ readonly name: "from";
548
+ readonly type: "core::starknet::contract_address::ContractAddress";
549
+ }, {
550
+ readonly kind: "key";
551
+ readonly name: "to";
552
+ readonly type: "core::starknet::contract_address::ContractAddress";
553
+ }, {
554
+ readonly kind: "data";
555
+ readonly name: "value";
556
+ readonly type: "core::integer::u256";
557
+ }];
558
+ }, {
559
+ readonly kind: "struct";
560
+ readonly name: "vesu::vendor::erc20_component::ERC20Component::Approval";
561
+ readonly type: "event";
562
+ readonly members: readonly [{
563
+ readonly kind: "key";
564
+ readonly name: "owner";
565
+ readonly type: "core::starknet::contract_address::ContractAddress";
566
+ }, {
567
+ readonly kind: "key";
568
+ readonly name: "spender";
569
+ readonly type: "core::starknet::contract_address::ContractAddress";
570
+ }, {
571
+ readonly kind: "data";
572
+ readonly name: "value";
573
+ readonly type: "core::integer::u256";
574
+ }];
575
+ }, {
576
+ readonly kind: "enum";
577
+ readonly name: "vesu::vendor::erc20_component::ERC20Component::Event";
578
+ readonly type: "event";
579
+ readonly variants: readonly [{
580
+ readonly kind: "nested";
581
+ readonly name: "Transfer";
582
+ readonly type: "vesu::vendor::erc20_component::ERC20Component::Transfer";
583
+ }, {
584
+ readonly kind: "nested";
585
+ readonly name: "Approval";
586
+ readonly type: "vesu::vendor::erc20_component::ERC20Component::Approval";
587
+ }];
588
+ }, {
589
+ readonly kind: "struct";
590
+ readonly name: "vesu::v_token::VToken::Deposit";
591
+ readonly type: "event";
592
+ readonly members: readonly [{
593
+ readonly kind: "key";
594
+ readonly name: "sender";
595
+ readonly type: "core::starknet::contract_address::ContractAddress";
596
+ }, {
597
+ readonly kind: "key";
598
+ readonly name: "owner";
599
+ readonly type: "core::starknet::contract_address::ContractAddress";
600
+ }, {
601
+ readonly kind: "data";
602
+ readonly name: "assets";
603
+ readonly type: "core::integer::u256";
604
+ }, {
605
+ readonly kind: "data";
606
+ readonly name: "shares";
607
+ readonly type: "core::integer::u256";
608
+ }];
609
+ }, {
610
+ readonly kind: "struct";
611
+ readonly name: "vesu::v_token::VToken::Withdraw";
612
+ readonly type: "event";
613
+ readonly members: readonly [{
614
+ readonly kind: "key";
615
+ readonly name: "sender";
616
+ readonly type: "core::starknet::contract_address::ContractAddress";
617
+ }, {
618
+ readonly kind: "key";
619
+ readonly name: "receiver";
620
+ readonly type: "core::starknet::contract_address::ContractAddress";
621
+ }, {
622
+ readonly kind: "key";
623
+ readonly name: "owner";
624
+ readonly type: "core::starknet::contract_address::ContractAddress";
625
+ }, {
626
+ readonly kind: "data";
627
+ readonly name: "assets";
628
+ readonly type: "core::integer::u256";
629
+ }, {
630
+ readonly kind: "data";
631
+ readonly name: "shares";
632
+ readonly type: "core::integer::u256";
633
+ }];
634
+ }, {
635
+ readonly kind: "enum";
636
+ readonly name: "vesu::v_token::VToken::Event";
637
+ readonly type: "event";
638
+ readonly variants: readonly [{
639
+ readonly kind: "flat";
640
+ readonly name: "ERC20Event";
641
+ readonly type: "vesu::vendor::erc20_component::ERC20Component::Event";
642
+ }, {
643
+ readonly kind: "nested";
644
+ readonly name: "Deposit";
645
+ readonly type: "vesu::v_token::VToken::Deposit";
646
+ }, {
647
+ readonly kind: "nested";
648
+ readonly name: "Withdraw";
649
+ readonly type: "vesu::v_token::VToken::Withdraw";
650
+ }];
651
+ }]>;
652
+ export declare const getSingletonContract: (address: Address) => import("starknet").TypedContractV2<readonly [{
653
+ readonly name: "SingletonImpl";
654
+ readonly type: "impl";
655
+ readonly interface_name: "vesu::singleton::ISingleton";
656
+ }, {
657
+ readonly name: "core::integer::u256";
658
+ readonly type: "struct";
659
+ readonly members: readonly [{
660
+ readonly name: "low";
661
+ readonly type: "core::integer::u128";
662
+ }, {
663
+ readonly name: "high";
664
+ readonly type: "core::integer::u128";
665
+ }];
666
+ }, {
667
+ readonly name: "core::bool";
668
+ readonly type: "enum";
669
+ readonly variants: readonly [{
670
+ readonly name: "False";
671
+ readonly type: "()";
672
+ }, {
673
+ readonly name: "True";
674
+ readonly type: "()";
675
+ }];
676
+ }, {
677
+ readonly name: "vesu::data_model::AssetConfig";
678
+ readonly type: "struct";
679
+ readonly members: readonly [{
680
+ readonly name: "total_collateral_shares";
681
+ readonly type: "core::integer::u256";
682
+ }, {
683
+ readonly name: "total_nominal_debt";
684
+ readonly type: "core::integer::u256";
685
+ }, {
686
+ readonly name: "reserve";
687
+ readonly type: "core::integer::u256";
688
+ }, {
689
+ readonly name: "max_utilization";
690
+ readonly type: "core::integer::u256";
691
+ }, {
692
+ readonly name: "floor";
693
+ readonly type: "core::integer::u256";
694
+ }, {
695
+ readonly name: "scale";
696
+ readonly type: "core::integer::u256";
697
+ }, {
698
+ readonly name: "is_legacy";
699
+ readonly type: "core::bool";
700
+ }, {
701
+ readonly name: "last_updated";
702
+ readonly type: "core::integer::u64";
703
+ }, {
704
+ readonly name: "last_rate_accumulator";
705
+ readonly type: "core::integer::u256";
706
+ }, {
707
+ readonly name: "last_full_utilization_rate";
708
+ readonly type: "core::integer::u256";
709
+ }, {
710
+ readonly name: "fee_rate";
711
+ readonly type: "core::integer::u256";
712
+ }];
713
+ }, {
714
+ readonly name: "vesu::data_model::LTVConfig";
715
+ readonly type: "struct";
716
+ readonly members: readonly [{
717
+ readonly name: "max_ltv";
718
+ readonly type: "core::integer::u64";
719
+ }];
720
+ }, {
721
+ readonly name: "vesu::data_model::Position";
722
+ readonly type: "struct";
723
+ readonly members: readonly [{
724
+ readonly name: "collateral_shares";
725
+ readonly type: "core::integer::u256";
726
+ }, {
727
+ readonly name: "nominal_debt";
728
+ readonly type: "core::integer::u256";
729
+ }];
730
+ }, {
731
+ readonly name: "alexandria_math::i257::i257";
732
+ readonly type: "struct";
733
+ readonly members: readonly [{
734
+ readonly name: "abs";
735
+ readonly type: "core::integer::u256";
736
+ }, {
737
+ readonly name: "is_negative";
738
+ readonly type: "core::bool";
739
+ }];
740
+ }, {
741
+ readonly name: "vesu::data_model::AmountType";
742
+ readonly type: "enum";
743
+ readonly variants: readonly [{
744
+ readonly name: "Delta";
745
+ readonly type: "()";
746
+ }, {
747
+ readonly name: "Target";
748
+ readonly type: "()";
749
+ }];
750
+ }, {
751
+ readonly name: "vesu::data_model::AmountDenomination";
752
+ readonly type: "enum";
753
+ readonly variants: readonly [{
754
+ readonly name: "Native";
755
+ readonly type: "()";
756
+ }, {
757
+ readonly name: "Assets";
758
+ readonly type: "()";
759
+ }];
760
+ }, {
761
+ readonly name: "vesu::data_model::Amount";
762
+ readonly type: "struct";
763
+ readonly members: readonly [{
764
+ readonly name: "amount_type";
765
+ readonly type: "vesu::data_model::AmountType";
766
+ }, {
767
+ readonly name: "denomination";
768
+ readonly type: "vesu::data_model::AmountDenomination";
769
+ }, {
770
+ readonly name: "value";
771
+ readonly type: "alexandria_math::i257::i257";
772
+ }];
773
+ }, {
774
+ readonly name: "vesu::data_model::AssetPrice";
775
+ readonly type: "struct";
776
+ readonly members: readonly [{
777
+ readonly name: "value";
778
+ readonly type: "core::integer::u256";
779
+ }, {
780
+ readonly name: "is_valid";
781
+ readonly type: "core::bool";
782
+ }];
783
+ }, {
784
+ readonly name: "vesu::data_model::Context";
785
+ readonly type: "struct";
786
+ readonly members: readonly [{
787
+ readonly name: "pool_id";
788
+ readonly type: "core::felt252";
789
+ }, {
790
+ readonly name: "extension";
791
+ readonly type: "core::starknet::contract_address::ContractAddress";
792
+ }, {
793
+ readonly name: "collateral_asset";
794
+ readonly type: "core::starknet::contract_address::ContractAddress";
795
+ }, {
796
+ readonly name: "debt_asset";
797
+ readonly type: "core::starknet::contract_address::ContractAddress";
798
+ }, {
799
+ readonly name: "collateral_asset_config";
800
+ readonly type: "vesu::data_model::AssetConfig";
801
+ }, {
802
+ readonly name: "debt_asset_config";
803
+ readonly type: "vesu::data_model::AssetConfig";
804
+ }, {
805
+ readonly name: "collateral_asset_price";
806
+ readonly type: "vesu::data_model::AssetPrice";
807
+ }, {
808
+ readonly name: "debt_asset_price";
809
+ readonly type: "vesu::data_model::AssetPrice";
810
+ }, {
811
+ readonly name: "collateral_asset_fee_shares";
812
+ readonly type: "core::integer::u256";
813
+ }, {
814
+ readonly name: "debt_asset_fee_shares";
815
+ readonly type: "core::integer::u256";
816
+ }, {
817
+ readonly name: "max_ltv";
818
+ readonly type: "core::integer::u64";
819
+ }, {
820
+ readonly name: "user";
821
+ readonly type: "core::starknet::contract_address::ContractAddress";
822
+ }, {
823
+ readonly name: "position";
824
+ readonly type: "vesu::data_model::Position";
825
+ }];
826
+ }, {
827
+ readonly name: "vesu::data_model::AssetParams";
828
+ readonly type: "struct";
829
+ readonly members: readonly [{
830
+ readonly name: "asset";
831
+ readonly type: "core::starknet::contract_address::ContractAddress";
832
+ }, {
833
+ readonly name: "floor";
834
+ readonly type: "core::integer::u256";
835
+ }, {
836
+ readonly name: "initial_rate_accumulator";
837
+ readonly type: "core::integer::u256";
838
+ }, {
839
+ readonly name: "initial_full_utilization_rate";
840
+ readonly type: "core::integer::u256";
841
+ }, {
842
+ readonly name: "max_utilization";
843
+ readonly type: "core::integer::u256";
844
+ }, {
845
+ readonly name: "is_legacy";
846
+ readonly type: "core::bool";
847
+ }, {
848
+ readonly name: "fee_rate";
849
+ readonly type: "core::integer::u256";
850
+ }];
851
+ }, {
852
+ readonly name: "core::array::Span::<vesu::data_model::AssetParams>";
853
+ readonly type: "struct";
854
+ readonly members: readonly [{
855
+ readonly name: "snapshot";
856
+ readonly type: "@core::array::Array::<vesu::data_model::AssetParams>";
857
+ }];
858
+ }, {
859
+ readonly name: "vesu::data_model::LTVParams";
860
+ readonly type: "struct";
861
+ readonly members: readonly [{
862
+ readonly name: "collateral_asset_index";
863
+ readonly type: "core::integer::u32";
864
+ }, {
865
+ readonly name: "debt_asset_index";
866
+ readonly type: "core::integer::u32";
867
+ }, {
868
+ readonly name: "max_ltv";
869
+ readonly type: "core::integer::u64";
870
+ }];
871
+ }, {
872
+ readonly name: "core::array::Span::<vesu::data_model::LTVParams>";
873
+ readonly type: "struct";
874
+ readonly members: readonly [{
875
+ readonly name: "snapshot";
876
+ readonly type: "@core::array::Array::<vesu::data_model::LTVParams>";
877
+ }];
878
+ }, {
879
+ readonly name: "core::array::Span::<core::felt252>";
880
+ readonly type: "struct";
881
+ readonly members: readonly [{
882
+ readonly name: "snapshot";
883
+ readonly type: "@core::array::Array::<core::felt252>";
884
+ }];
885
+ }, {
886
+ readonly name: "vesu::data_model::ModifyPositionParams";
887
+ readonly type: "struct";
888
+ readonly members: readonly [{
889
+ readonly name: "pool_id";
890
+ readonly type: "core::felt252";
891
+ }, {
892
+ readonly name: "collateral_asset";
893
+ readonly type: "core::starknet::contract_address::ContractAddress";
894
+ }, {
895
+ readonly name: "debt_asset";
896
+ readonly type: "core::starknet::contract_address::ContractAddress";
897
+ }, {
898
+ readonly name: "user";
899
+ readonly type: "core::starknet::contract_address::ContractAddress";
900
+ }, {
901
+ readonly name: "collateral";
902
+ readonly type: "vesu::data_model::Amount";
903
+ }, {
904
+ readonly name: "debt";
905
+ readonly type: "vesu::data_model::Amount";
906
+ }, {
907
+ readonly name: "data";
908
+ readonly type: "core::array::Span::<core::felt252>";
909
+ }];
910
+ }, {
911
+ readonly name: "vesu::data_model::UpdatePositionResponse";
912
+ readonly type: "struct";
913
+ readonly members: readonly [{
914
+ readonly name: "collateral_delta";
915
+ readonly type: "alexandria_math::i257::i257";
916
+ }, {
917
+ readonly name: "collateral_shares_delta";
918
+ readonly type: "alexandria_math::i257::i257";
919
+ }, {
920
+ readonly name: "debt_delta";
921
+ readonly type: "alexandria_math::i257::i257";
922
+ }, {
923
+ readonly name: "nominal_debt_delta";
924
+ readonly type: "alexandria_math::i257::i257";
925
+ }, {
926
+ readonly name: "bad_debt";
927
+ readonly type: "core::integer::u256";
928
+ }];
929
+ }, {
930
+ readonly name: "vesu::data_model::UnsignedAmount";
931
+ readonly type: "struct";
932
+ readonly members: readonly [{
933
+ readonly name: "amount_type";
934
+ readonly type: "vesu::data_model::AmountType";
935
+ }, {
936
+ readonly name: "denomination";
937
+ readonly type: "vesu::data_model::AmountDenomination";
938
+ }, {
939
+ readonly name: "value";
940
+ readonly type: "core::integer::u256";
941
+ }];
942
+ }, {
943
+ readonly name: "vesu::data_model::TransferPositionParams";
944
+ readonly type: "struct";
945
+ readonly members: readonly [{
946
+ readonly name: "pool_id";
947
+ readonly type: "core::felt252";
948
+ }, {
949
+ readonly name: "from_collateral_asset";
950
+ readonly type: "core::starknet::contract_address::ContractAddress";
951
+ }, {
952
+ readonly name: "from_debt_asset";
953
+ readonly type: "core::starknet::contract_address::ContractAddress";
954
+ }, {
955
+ readonly name: "to_collateral_asset";
956
+ readonly type: "core::starknet::contract_address::ContractAddress";
957
+ }, {
958
+ readonly name: "to_debt_asset";
959
+ readonly type: "core::starknet::contract_address::ContractAddress";
960
+ }, {
961
+ readonly name: "from_user";
962
+ readonly type: "core::starknet::contract_address::ContractAddress";
963
+ }, {
964
+ readonly name: "to_user";
965
+ readonly type: "core::starknet::contract_address::ContractAddress";
966
+ }, {
967
+ readonly name: "collateral";
968
+ readonly type: "vesu::data_model::UnsignedAmount";
969
+ }, {
970
+ readonly name: "debt";
971
+ readonly type: "vesu::data_model::UnsignedAmount";
972
+ }, {
973
+ readonly name: "from_data";
974
+ readonly type: "core::array::Span::<core::felt252>";
975
+ }, {
976
+ readonly name: "to_data";
977
+ readonly type: "core::array::Span::<core::felt252>";
978
+ }];
979
+ }, {
980
+ readonly name: "vesu::data_model::LiquidatePositionParams";
981
+ readonly type: "struct";
982
+ readonly members: readonly [{
983
+ readonly name: "pool_id";
984
+ readonly type: "core::felt252";
985
+ }, {
986
+ readonly name: "collateral_asset";
987
+ readonly type: "core::starknet::contract_address::ContractAddress";
988
+ }, {
989
+ readonly name: "debt_asset";
990
+ readonly type: "core::starknet::contract_address::ContractAddress";
991
+ }, {
992
+ readonly name: "user";
993
+ readonly type: "core::starknet::contract_address::ContractAddress";
994
+ }, {
995
+ readonly name: "receive_as_shares";
996
+ readonly type: "core::bool";
997
+ }, {
998
+ readonly name: "data";
999
+ readonly type: "core::array::Span::<core::felt252>";
1000
+ }];
1001
+ }, {
1002
+ readonly name: "vesu::singleton::ISingleton";
1003
+ readonly type: "interface";
1004
+ readonly items: readonly [{
1005
+ readonly name: "creator_nonce";
1006
+ readonly type: "function";
1007
+ readonly inputs: readonly [{
1008
+ readonly name: "creator";
1009
+ readonly type: "core::starknet::contract_address::ContractAddress";
1010
+ }];
1011
+ readonly outputs: readonly [{
1012
+ readonly type: "core::felt252";
1013
+ }];
1014
+ readonly state_mutability: "view";
1015
+ }, {
1016
+ readonly name: "extension";
1017
+ readonly type: "function";
1018
+ readonly inputs: readonly [{
1019
+ readonly name: "pool_id";
1020
+ readonly type: "core::felt252";
1021
+ }];
1022
+ readonly outputs: readonly [{
1023
+ readonly type: "core::starknet::contract_address::ContractAddress";
1024
+ }];
1025
+ readonly state_mutability: "view";
1026
+ }, {
1027
+ readonly name: "asset_config_unsafe";
1028
+ readonly type: "function";
1029
+ readonly inputs: readonly [{
1030
+ readonly name: "pool_id";
1031
+ readonly type: "core::felt252";
1032
+ }, {
1033
+ readonly name: "asset";
1034
+ readonly type: "core::starknet::contract_address::ContractAddress";
1035
+ }];
1036
+ readonly outputs: readonly [{
1037
+ readonly type: "(vesu::data_model::AssetConfig, core::integer::u256)";
1038
+ }];
1039
+ readonly state_mutability: "view";
1040
+ }, {
1041
+ readonly name: "asset_config";
1042
+ readonly type: "function";
1043
+ readonly inputs: readonly [{
1044
+ readonly name: "pool_id";
1045
+ readonly type: "core::felt252";
1046
+ }, {
1047
+ readonly name: "asset";
1048
+ readonly type: "core::starknet::contract_address::ContractAddress";
1049
+ }];
1050
+ readonly outputs: readonly [{
1051
+ readonly type: "(vesu::data_model::AssetConfig, core::integer::u256)";
1052
+ }];
1053
+ readonly state_mutability: "external";
1054
+ }, {
1055
+ readonly name: "ltv_config";
1056
+ readonly type: "function";
1057
+ readonly inputs: readonly [{
1058
+ readonly name: "pool_id";
1059
+ readonly type: "core::felt252";
1060
+ }, {
1061
+ readonly name: "collateral_asset";
1062
+ readonly type: "core::starknet::contract_address::ContractAddress";
1063
+ }, {
1064
+ readonly name: "debt_asset";
1065
+ readonly type: "core::starknet::contract_address::ContractAddress";
1066
+ }];
1067
+ readonly outputs: readonly [{
1068
+ readonly type: "vesu::data_model::LTVConfig";
1069
+ }];
1070
+ readonly state_mutability: "view";
1071
+ }, {
1072
+ readonly name: "position_unsafe";
1073
+ readonly type: "function";
1074
+ readonly inputs: readonly [{
1075
+ readonly name: "pool_id";
1076
+ readonly type: "core::felt252";
1077
+ }, {
1078
+ readonly name: "collateral_asset";
1079
+ readonly type: "core::starknet::contract_address::ContractAddress";
1080
+ }, {
1081
+ readonly name: "debt_asset";
1082
+ readonly type: "core::starknet::contract_address::ContractAddress";
1083
+ }, {
1084
+ readonly name: "user";
1085
+ readonly type: "core::starknet::contract_address::ContractAddress";
1086
+ }];
1087
+ readonly outputs: readonly [{
1088
+ readonly type: "(vesu::data_model::Position, core::integer::u256, core::integer::u256)";
1089
+ }];
1090
+ readonly state_mutability: "view";
1091
+ }, {
1092
+ readonly name: "position";
1093
+ readonly type: "function";
1094
+ readonly inputs: readonly [{
1095
+ readonly name: "pool_id";
1096
+ readonly type: "core::felt252";
1097
+ }, {
1098
+ readonly name: "collateral_asset";
1099
+ readonly type: "core::starknet::contract_address::ContractAddress";
1100
+ }, {
1101
+ readonly name: "debt_asset";
1102
+ readonly type: "core::starknet::contract_address::ContractAddress";
1103
+ }, {
1104
+ readonly name: "user";
1105
+ readonly type: "core::starknet::contract_address::ContractAddress";
1106
+ }];
1107
+ readonly outputs: readonly [{
1108
+ readonly type: "(vesu::data_model::Position, core::integer::u256, core::integer::u256)";
1109
+ }];
1110
+ readonly state_mutability: "external";
1111
+ }, {
1112
+ readonly name: "check_collateralization_unsafe";
1113
+ readonly type: "function";
1114
+ readonly inputs: readonly [{
1115
+ readonly name: "pool_id";
1116
+ readonly type: "core::felt252";
1117
+ }, {
1118
+ readonly name: "collateral_asset";
1119
+ readonly type: "core::starknet::contract_address::ContractAddress";
1120
+ }, {
1121
+ readonly name: "debt_asset";
1122
+ readonly type: "core::starknet::contract_address::ContractAddress";
1123
+ }, {
1124
+ readonly name: "user";
1125
+ readonly type: "core::starknet::contract_address::ContractAddress";
1126
+ }];
1127
+ readonly outputs: readonly [{
1128
+ readonly type: "(core::bool, core::integer::u256, core::integer::u256)";
1129
+ }];
1130
+ readonly state_mutability: "view";
1131
+ }, {
1132
+ readonly name: "check_collateralization";
1133
+ readonly type: "function";
1134
+ readonly inputs: readonly [{
1135
+ readonly name: "pool_id";
1136
+ readonly type: "core::felt252";
1137
+ }, {
1138
+ readonly name: "collateral_asset";
1139
+ readonly type: "core::starknet::contract_address::ContractAddress";
1140
+ }, {
1141
+ readonly name: "debt_asset";
1142
+ readonly type: "core::starknet::contract_address::ContractAddress";
1143
+ }, {
1144
+ readonly name: "user";
1145
+ readonly type: "core::starknet::contract_address::ContractAddress";
1146
+ }];
1147
+ readonly outputs: readonly [{
1148
+ readonly type: "(core::bool, core::integer::u256, core::integer::u256)";
1149
+ }];
1150
+ readonly state_mutability: "external";
1151
+ }, {
1152
+ readonly name: "rate_accumulator_unsafe";
1153
+ readonly type: "function";
1154
+ readonly inputs: readonly [{
1155
+ readonly name: "pool_id";
1156
+ readonly type: "core::felt252";
1157
+ }, {
1158
+ readonly name: "asset";
1159
+ readonly type: "core::starknet::contract_address::ContractAddress";
1160
+ }];
1161
+ readonly outputs: readonly [{
1162
+ readonly type: "core::integer::u256";
1163
+ }];
1164
+ readonly state_mutability: "view";
1165
+ }, {
1166
+ readonly name: "rate_accumulator";
1167
+ readonly type: "function";
1168
+ readonly inputs: readonly [{
1169
+ readonly name: "pool_id";
1170
+ readonly type: "core::felt252";
1171
+ }, {
1172
+ readonly name: "asset";
1173
+ readonly type: "core::starknet::contract_address::ContractAddress";
1174
+ }];
1175
+ readonly outputs: readonly [{
1176
+ readonly type: "core::integer::u256";
1177
+ }];
1178
+ readonly state_mutability: "external";
1179
+ }, {
1180
+ readonly name: "utilization_unsafe";
1181
+ readonly type: "function";
1182
+ readonly inputs: readonly [{
1183
+ readonly name: "pool_id";
1184
+ readonly type: "core::felt252";
1185
+ }, {
1186
+ readonly name: "asset";
1187
+ readonly type: "core::starknet::contract_address::ContractAddress";
1188
+ }];
1189
+ readonly outputs: readonly [{
1190
+ readonly type: "core::integer::u256";
1191
+ }];
1192
+ readonly state_mutability: "view";
1193
+ }, {
1194
+ readonly name: "utilization";
1195
+ readonly type: "function";
1196
+ readonly inputs: readonly [{
1197
+ readonly name: "pool_id";
1198
+ readonly type: "core::felt252";
1199
+ }, {
1200
+ readonly name: "asset";
1201
+ readonly type: "core::starknet::contract_address::ContractAddress";
1202
+ }];
1203
+ readonly outputs: readonly [{
1204
+ readonly type: "core::integer::u256";
1205
+ }];
1206
+ readonly state_mutability: "external";
1207
+ }, {
1208
+ readonly name: "delegation";
1209
+ readonly type: "function";
1210
+ readonly inputs: readonly [{
1211
+ readonly name: "pool_id";
1212
+ readonly type: "core::felt252";
1213
+ }, {
1214
+ readonly name: "delegator";
1215
+ readonly type: "core::starknet::contract_address::ContractAddress";
1216
+ }, {
1217
+ readonly name: "delegatee";
1218
+ readonly type: "core::starknet::contract_address::ContractAddress";
1219
+ }];
1220
+ readonly outputs: readonly [{
1221
+ readonly type: "core::bool";
1222
+ }];
1223
+ readonly state_mutability: "view";
1224
+ }, {
1225
+ readonly name: "calculate_pool_id";
1226
+ readonly type: "function";
1227
+ readonly inputs: readonly [{
1228
+ readonly name: "caller_address";
1229
+ readonly type: "core::starknet::contract_address::ContractAddress";
1230
+ }, {
1231
+ readonly name: "nonce";
1232
+ readonly type: "core::felt252";
1233
+ }];
1234
+ readonly outputs: readonly [{
1235
+ readonly type: "core::felt252";
1236
+ }];
1237
+ readonly state_mutability: "view";
1238
+ }, {
1239
+ readonly name: "calculate_debt";
1240
+ readonly type: "function";
1241
+ readonly inputs: readonly [{
1242
+ readonly name: "nominal_debt";
1243
+ readonly type: "alexandria_math::i257::i257";
1244
+ }, {
1245
+ readonly name: "rate_accumulator";
1246
+ readonly type: "core::integer::u256";
1247
+ }, {
1248
+ readonly name: "asset_scale";
1249
+ readonly type: "core::integer::u256";
1250
+ }];
1251
+ readonly outputs: readonly [{
1252
+ readonly type: "core::integer::u256";
1253
+ }];
1254
+ readonly state_mutability: "view";
1255
+ }, {
1256
+ readonly name: "calculate_nominal_debt";
1257
+ readonly type: "function";
1258
+ readonly inputs: readonly [{
1259
+ readonly name: "debt";
1260
+ readonly type: "alexandria_math::i257::i257";
1261
+ }, {
1262
+ readonly name: "rate_accumulator";
1263
+ readonly type: "core::integer::u256";
1264
+ }, {
1265
+ readonly name: "asset_scale";
1266
+ readonly type: "core::integer::u256";
1267
+ }];
1268
+ readonly outputs: readonly [{
1269
+ readonly type: "core::integer::u256";
1270
+ }];
1271
+ readonly state_mutability: "view";
1272
+ }, {
1273
+ readonly name: "calculate_collateral_shares_unsafe";
1274
+ readonly type: "function";
1275
+ readonly inputs: readonly [{
1276
+ readonly name: "pool_id";
1277
+ readonly type: "core::felt252";
1278
+ }, {
1279
+ readonly name: "asset";
1280
+ readonly type: "core::starknet::contract_address::ContractAddress";
1281
+ }, {
1282
+ readonly name: "collateral";
1283
+ readonly type: "alexandria_math::i257::i257";
1284
+ }];
1285
+ readonly outputs: readonly [{
1286
+ readonly type: "core::integer::u256";
1287
+ }];
1288
+ readonly state_mutability: "view";
1289
+ }, {
1290
+ readonly name: "calculate_collateral_shares";
1291
+ readonly type: "function";
1292
+ readonly inputs: readonly [{
1293
+ readonly name: "pool_id";
1294
+ readonly type: "core::felt252";
1295
+ }, {
1296
+ readonly name: "asset";
1297
+ readonly type: "core::starknet::contract_address::ContractAddress";
1298
+ }, {
1299
+ readonly name: "collateral";
1300
+ readonly type: "alexandria_math::i257::i257";
1301
+ }];
1302
+ readonly outputs: readonly [{
1303
+ readonly type: "core::integer::u256";
1304
+ }];
1305
+ readonly state_mutability: "external";
1306
+ }, {
1307
+ readonly name: "calculate_collateral_unsafe";
1308
+ readonly type: "function";
1309
+ readonly inputs: readonly [{
1310
+ readonly name: "pool_id";
1311
+ readonly type: "core::felt252";
1312
+ }, {
1313
+ readonly name: "asset";
1314
+ readonly type: "core::starknet::contract_address::ContractAddress";
1315
+ }, {
1316
+ readonly name: "collateral_shares";
1317
+ readonly type: "alexandria_math::i257::i257";
1318
+ }];
1319
+ readonly outputs: readonly [{
1320
+ readonly type: "core::integer::u256";
1321
+ }];
1322
+ readonly state_mutability: "view";
1323
+ }, {
1324
+ readonly name: "calculate_collateral";
1325
+ readonly type: "function";
1326
+ readonly inputs: readonly [{
1327
+ readonly name: "pool_id";
1328
+ readonly type: "core::felt252";
1329
+ }, {
1330
+ readonly name: "asset";
1331
+ readonly type: "core::starknet::contract_address::ContractAddress";
1332
+ }, {
1333
+ readonly name: "collateral_shares";
1334
+ readonly type: "alexandria_math::i257::i257";
1335
+ }];
1336
+ readonly outputs: readonly [{
1337
+ readonly type: "core::integer::u256";
1338
+ }];
1339
+ readonly state_mutability: "external";
1340
+ }, {
1341
+ readonly name: "deconstruct_collateral_amount_unsafe";
1342
+ readonly type: "function";
1343
+ readonly inputs: readonly [{
1344
+ readonly name: "pool_id";
1345
+ readonly type: "core::felt252";
1346
+ }, {
1347
+ readonly name: "collateral_asset";
1348
+ readonly type: "core::starknet::contract_address::ContractAddress";
1349
+ }, {
1350
+ readonly name: "debt_asset";
1351
+ readonly type: "core::starknet::contract_address::ContractAddress";
1352
+ }, {
1353
+ readonly name: "user";
1354
+ readonly type: "core::starknet::contract_address::ContractAddress";
1355
+ }, {
1356
+ readonly name: "collateral";
1357
+ readonly type: "vesu::data_model::Amount";
1358
+ }];
1359
+ readonly outputs: readonly [{
1360
+ readonly type: "(alexandria_math::i257::i257, alexandria_math::i257::i257)";
1361
+ }];
1362
+ readonly state_mutability: "view";
1363
+ }, {
1364
+ readonly name: "deconstruct_collateral_amount";
1365
+ readonly type: "function";
1366
+ readonly inputs: readonly [{
1367
+ readonly name: "pool_id";
1368
+ readonly type: "core::felt252";
1369
+ }, {
1370
+ readonly name: "collateral_asset";
1371
+ readonly type: "core::starknet::contract_address::ContractAddress";
1372
+ }, {
1373
+ readonly name: "debt_asset";
1374
+ readonly type: "core::starknet::contract_address::ContractAddress";
1375
+ }, {
1376
+ readonly name: "user";
1377
+ readonly type: "core::starknet::contract_address::ContractAddress";
1378
+ }, {
1379
+ readonly name: "collateral";
1380
+ readonly type: "vesu::data_model::Amount";
1381
+ }];
1382
+ readonly outputs: readonly [{
1383
+ readonly type: "(alexandria_math::i257::i257, alexandria_math::i257::i257)";
1384
+ }];
1385
+ readonly state_mutability: "external";
1386
+ }, {
1387
+ readonly name: "deconstruct_debt_amount_unsafe";
1388
+ readonly type: "function";
1389
+ readonly inputs: readonly [{
1390
+ readonly name: "pool_id";
1391
+ readonly type: "core::felt252";
1392
+ }, {
1393
+ readonly name: "collateral_asset";
1394
+ readonly type: "core::starknet::contract_address::ContractAddress";
1395
+ }, {
1396
+ readonly name: "debt_asset";
1397
+ readonly type: "core::starknet::contract_address::ContractAddress";
1398
+ }, {
1399
+ readonly name: "user";
1400
+ readonly type: "core::starknet::contract_address::ContractAddress";
1401
+ }, {
1402
+ readonly name: "debt";
1403
+ readonly type: "vesu::data_model::Amount";
1404
+ }];
1405
+ readonly outputs: readonly [{
1406
+ readonly type: "(alexandria_math::i257::i257, alexandria_math::i257::i257)";
1407
+ }];
1408
+ readonly state_mutability: "view";
1409
+ }, {
1410
+ readonly name: "deconstruct_debt_amount";
1411
+ readonly type: "function";
1412
+ readonly inputs: readonly [{
1413
+ readonly name: "pool_id";
1414
+ readonly type: "core::felt252";
1415
+ }, {
1416
+ readonly name: "collateral_asset";
1417
+ readonly type: "core::starknet::contract_address::ContractAddress";
1418
+ }, {
1419
+ readonly name: "debt_asset";
1420
+ readonly type: "core::starknet::contract_address::ContractAddress";
1421
+ }, {
1422
+ readonly name: "user";
1423
+ readonly type: "core::starknet::contract_address::ContractAddress";
1424
+ }, {
1425
+ readonly name: "debt";
1426
+ readonly type: "vesu::data_model::Amount";
1427
+ }];
1428
+ readonly outputs: readonly [{
1429
+ readonly type: "(alexandria_math::i257::i257, alexandria_math::i257::i257)";
1430
+ }];
1431
+ readonly state_mutability: "external";
1432
+ }, {
1433
+ readonly name: "context_unsafe";
1434
+ readonly type: "function";
1435
+ readonly inputs: readonly [{
1436
+ readonly name: "pool_id";
1437
+ readonly type: "core::felt252";
1438
+ }, {
1439
+ readonly name: "collateral_asset";
1440
+ readonly type: "core::starknet::contract_address::ContractAddress";
1441
+ }, {
1442
+ readonly name: "debt_asset";
1443
+ readonly type: "core::starknet::contract_address::ContractAddress";
1444
+ }, {
1445
+ readonly name: "user";
1446
+ readonly type: "core::starknet::contract_address::ContractAddress";
1447
+ }];
1448
+ readonly outputs: readonly [{
1449
+ readonly type: "vesu::data_model::Context";
1450
+ }];
1451
+ readonly state_mutability: "view";
1452
+ }, {
1453
+ readonly name: "context";
1454
+ readonly type: "function";
1455
+ readonly inputs: readonly [{
1456
+ readonly name: "pool_id";
1457
+ readonly type: "core::felt252";
1458
+ }, {
1459
+ readonly name: "collateral_asset";
1460
+ readonly type: "core::starknet::contract_address::ContractAddress";
1461
+ }, {
1462
+ readonly name: "debt_asset";
1463
+ readonly type: "core::starknet::contract_address::ContractAddress";
1464
+ }, {
1465
+ readonly name: "user";
1466
+ readonly type: "core::starknet::contract_address::ContractAddress";
1467
+ }];
1468
+ readonly outputs: readonly [{
1469
+ readonly type: "vesu::data_model::Context";
1470
+ }];
1471
+ readonly state_mutability: "external";
1472
+ }, {
1473
+ readonly name: "create_pool";
1474
+ readonly type: "function";
1475
+ readonly inputs: readonly [{
1476
+ readonly name: "asset_params";
1477
+ readonly type: "core::array::Span::<vesu::data_model::AssetParams>";
1478
+ }, {
1479
+ readonly name: "ltv_params";
1480
+ readonly type: "core::array::Span::<vesu::data_model::LTVParams>";
1481
+ }, {
1482
+ readonly name: "extension";
1483
+ readonly type: "core::starknet::contract_address::ContractAddress";
1484
+ }];
1485
+ readonly outputs: readonly [{
1486
+ readonly type: "core::felt252";
1487
+ }];
1488
+ readonly state_mutability: "external";
1489
+ }, {
1490
+ readonly name: "modify_position";
1491
+ readonly type: "function";
1492
+ readonly inputs: readonly [{
1493
+ readonly name: "params";
1494
+ readonly type: "vesu::data_model::ModifyPositionParams";
1495
+ }];
1496
+ readonly outputs: readonly [{
1497
+ readonly type: "vesu::data_model::UpdatePositionResponse";
1498
+ }];
1499
+ readonly state_mutability: "external";
1500
+ }, {
1501
+ readonly name: "transfer_position";
1502
+ readonly type: "function";
1503
+ readonly inputs: readonly [{
1504
+ readonly name: "params";
1505
+ readonly type: "vesu::data_model::TransferPositionParams";
1506
+ }];
1507
+ readonly outputs: readonly [];
1508
+ readonly state_mutability: "external";
1509
+ }, {
1510
+ readonly name: "liquidate_position";
1511
+ readonly type: "function";
1512
+ readonly inputs: readonly [{
1513
+ readonly name: "params";
1514
+ readonly type: "vesu::data_model::LiquidatePositionParams";
1515
+ }];
1516
+ readonly outputs: readonly [{
1517
+ readonly type: "vesu::data_model::UpdatePositionResponse";
1518
+ }];
1519
+ readonly state_mutability: "external";
1520
+ }, {
1521
+ readonly name: "flash_loan";
1522
+ readonly type: "function";
1523
+ readonly inputs: readonly [{
1524
+ readonly name: "receiver";
1525
+ readonly type: "core::starknet::contract_address::ContractAddress";
1526
+ }, {
1527
+ readonly name: "asset";
1528
+ readonly type: "core::starknet::contract_address::ContractAddress";
1529
+ }, {
1530
+ readonly name: "amount";
1531
+ readonly type: "core::integer::u256";
1532
+ }, {
1533
+ readonly name: "is_legacy";
1534
+ readonly type: "core::bool";
1535
+ }, {
1536
+ readonly name: "data";
1537
+ readonly type: "core::array::Span::<core::felt252>";
1538
+ }];
1539
+ readonly outputs: readonly [];
1540
+ readonly state_mutability: "external";
1541
+ }, {
1542
+ readonly name: "modify_delegation";
1543
+ readonly type: "function";
1544
+ readonly inputs: readonly [{
1545
+ readonly name: "pool_id";
1546
+ readonly type: "core::felt252";
1547
+ }, {
1548
+ readonly name: "delegatee";
1549
+ readonly type: "core::starknet::contract_address::ContractAddress";
1550
+ }, {
1551
+ readonly name: "delegation";
1552
+ readonly type: "core::bool";
1553
+ }];
1554
+ readonly outputs: readonly [];
1555
+ readonly state_mutability: "external";
1556
+ }, {
1557
+ readonly name: "donate_to_reserve";
1558
+ readonly type: "function";
1559
+ readonly inputs: readonly [{
1560
+ readonly name: "pool_id";
1561
+ readonly type: "core::felt252";
1562
+ }, {
1563
+ readonly name: "asset";
1564
+ readonly type: "core::starknet::contract_address::ContractAddress";
1565
+ }, {
1566
+ readonly name: "amount";
1567
+ readonly type: "core::integer::u256";
1568
+ }];
1569
+ readonly outputs: readonly [];
1570
+ readonly state_mutability: "external";
1571
+ }, {
1572
+ readonly name: "retrieve_from_reserve";
1573
+ readonly type: "function";
1574
+ readonly inputs: readonly [{
1575
+ readonly name: "pool_id";
1576
+ readonly type: "core::felt252";
1577
+ }, {
1578
+ readonly name: "asset";
1579
+ readonly type: "core::starknet::contract_address::ContractAddress";
1580
+ }, {
1581
+ readonly name: "receiver";
1582
+ readonly type: "core::starknet::contract_address::ContractAddress";
1583
+ }, {
1584
+ readonly name: "amount";
1585
+ readonly type: "core::integer::u256";
1586
+ }];
1587
+ readonly outputs: readonly [];
1588
+ readonly state_mutability: "external";
1589
+ }, {
1590
+ readonly name: "set_asset_config";
1591
+ readonly type: "function";
1592
+ readonly inputs: readonly [{
1593
+ readonly name: "pool_id";
1594
+ readonly type: "core::felt252";
1595
+ }, {
1596
+ readonly name: "params";
1597
+ readonly type: "vesu::data_model::AssetParams";
1598
+ }];
1599
+ readonly outputs: readonly [];
1600
+ readonly state_mutability: "external";
1601
+ }, {
1602
+ readonly name: "set_ltv_config";
1603
+ readonly type: "function";
1604
+ readonly inputs: readonly [{
1605
+ readonly name: "pool_id";
1606
+ readonly type: "core::felt252";
1607
+ }, {
1608
+ readonly name: "collateral_asset";
1609
+ readonly type: "core::starknet::contract_address::ContractAddress";
1610
+ }, {
1611
+ readonly name: "debt_asset";
1612
+ readonly type: "core::starknet::contract_address::ContractAddress";
1613
+ }, {
1614
+ readonly name: "ltv_config";
1615
+ readonly type: "vesu::data_model::LTVConfig";
1616
+ }];
1617
+ readonly outputs: readonly [];
1618
+ readonly state_mutability: "external";
1619
+ }, {
1620
+ readonly name: "set_asset_parameter";
1621
+ readonly type: "function";
1622
+ readonly inputs: readonly [{
1623
+ readonly name: "pool_id";
1624
+ readonly type: "core::felt252";
1625
+ }, {
1626
+ readonly name: "asset";
1627
+ readonly type: "core::starknet::contract_address::ContractAddress";
1628
+ }, {
1629
+ readonly name: "parameter";
1630
+ readonly type: "core::felt252";
1631
+ }, {
1632
+ readonly name: "value";
1633
+ readonly type: "core::integer::u256";
1634
+ }];
1635
+ readonly outputs: readonly [];
1636
+ readonly state_mutability: "external";
1637
+ }, {
1638
+ readonly name: "set_extension";
1639
+ readonly type: "function";
1640
+ readonly inputs: readonly [{
1641
+ readonly name: "pool_id";
1642
+ readonly type: "core::felt252";
1643
+ }, {
1644
+ readonly name: "extension";
1645
+ readonly type: "core::starknet::contract_address::ContractAddress";
1646
+ }];
1647
+ readonly outputs: readonly [];
1648
+ readonly state_mutability: "external";
1649
+ }, {
1650
+ readonly name: "claim_fee_shares";
1651
+ readonly type: "function";
1652
+ readonly inputs: readonly [{
1653
+ readonly name: "pool_id";
1654
+ readonly type: "core::felt252";
1655
+ }, {
1656
+ readonly name: "asset";
1657
+ readonly type: "core::starknet::contract_address::ContractAddress";
1658
+ }];
1659
+ readonly outputs: readonly [];
1660
+ readonly state_mutability: "external";
1661
+ }];
1662
+ }, {
1663
+ readonly kind: "struct";
1664
+ readonly name: "vesu::singleton::Singleton::CreatePool";
1665
+ readonly type: "event";
1666
+ readonly members: readonly [{
1667
+ readonly kind: "key";
1668
+ readonly name: "pool_id";
1669
+ readonly type: "core::felt252";
1670
+ }, {
1671
+ readonly kind: "key";
1672
+ readonly name: "extension";
1673
+ readonly type: "core::starknet::contract_address::ContractAddress";
1674
+ }, {
1675
+ readonly kind: "key";
1676
+ readonly name: "creator";
1677
+ readonly type: "core::starknet::contract_address::ContractAddress";
1678
+ }];
1679
+ }, {
1680
+ readonly kind: "struct";
1681
+ readonly name: "vesu::singleton::Singleton::ModifyPosition";
1682
+ readonly type: "event";
1683
+ readonly members: readonly [{
1684
+ readonly kind: "key";
1685
+ readonly name: "pool_id";
1686
+ readonly type: "core::felt252";
1687
+ }, {
1688
+ readonly kind: "key";
1689
+ readonly name: "collateral_asset";
1690
+ readonly type: "core::starknet::contract_address::ContractAddress";
1691
+ }, {
1692
+ readonly kind: "key";
1693
+ readonly name: "debt_asset";
1694
+ readonly type: "core::starknet::contract_address::ContractAddress";
1695
+ }, {
1696
+ readonly kind: "key";
1697
+ readonly name: "user";
1698
+ readonly type: "core::starknet::contract_address::ContractAddress";
1699
+ }, {
1700
+ readonly kind: "data";
1701
+ readonly name: "collateral_delta";
1702
+ readonly type: "alexandria_math::i257::i257";
1703
+ }, {
1704
+ readonly kind: "data";
1705
+ readonly name: "collateral_shares_delta";
1706
+ readonly type: "alexandria_math::i257::i257";
1707
+ }, {
1708
+ readonly kind: "data";
1709
+ readonly name: "debt_delta";
1710
+ readonly type: "alexandria_math::i257::i257";
1711
+ }, {
1712
+ readonly kind: "data";
1713
+ readonly name: "nominal_debt_delta";
1714
+ readonly type: "alexandria_math::i257::i257";
1715
+ }];
1716
+ }, {
1717
+ readonly kind: "struct";
1718
+ readonly name: "vesu::singleton::Singleton::TransferPosition";
1719
+ readonly type: "event";
1720
+ readonly members: readonly [{
1721
+ readonly kind: "key";
1722
+ readonly name: "pool_id";
1723
+ readonly type: "core::felt252";
1724
+ }, {
1725
+ readonly kind: "key";
1726
+ readonly name: "from_collateral_asset";
1727
+ readonly type: "core::starknet::contract_address::ContractAddress";
1728
+ }, {
1729
+ readonly kind: "key";
1730
+ readonly name: "from_debt_asset";
1731
+ readonly type: "core::starknet::contract_address::ContractAddress";
1732
+ }, {
1733
+ readonly kind: "key";
1734
+ readonly name: "to_collateral_asset";
1735
+ readonly type: "core::starknet::contract_address::ContractAddress";
1736
+ }, {
1737
+ readonly kind: "key";
1738
+ readonly name: "to_debt_asset";
1739
+ readonly type: "core::starknet::contract_address::ContractAddress";
1740
+ }, {
1741
+ readonly kind: "key";
1742
+ readonly name: "from_user";
1743
+ readonly type: "core::starknet::contract_address::ContractAddress";
1744
+ }, {
1745
+ readonly kind: "key";
1746
+ readonly name: "to_user";
1747
+ readonly type: "core::starknet::contract_address::ContractAddress";
1748
+ }];
1749
+ }, {
1750
+ readonly kind: "struct";
1751
+ readonly name: "vesu::singleton::Singleton::LiquidatePosition";
1752
+ readonly type: "event";
1753
+ readonly members: readonly [{
1754
+ readonly kind: "key";
1755
+ readonly name: "pool_id";
1756
+ readonly type: "core::felt252";
1757
+ }, {
1758
+ readonly kind: "key";
1759
+ readonly name: "collateral_asset";
1760
+ readonly type: "core::starknet::contract_address::ContractAddress";
1761
+ }, {
1762
+ readonly kind: "key";
1763
+ readonly name: "debt_asset";
1764
+ readonly type: "core::starknet::contract_address::ContractAddress";
1765
+ }, {
1766
+ readonly kind: "key";
1767
+ readonly name: "user";
1768
+ readonly type: "core::starknet::contract_address::ContractAddress";
1769
+ }, {
1770
+ readonly kind: "key";
1771
+ readonly name: "liquidator";
1772
+ readonly type: "core::starknet::contract_address::ContractAddress";
1773
+ }, {
1774
+ readonly kind: "data";
1775
+ readonly name: "collateral_delta";
1776
+ readonly type: "alexandria_math::i257::i257";
1777
+ }, {
1778
+ readonly kind: "data";
1779
+ readonly name: "collateral_shares_delta";
1780
+ readonly type: "alexandria_math::i257::i257";
1781
+ }, {
1782
+ readonly kind: "data";
1783
+ readonly name: "debt_delta";
1784
+ readonly type: "alexandria_math::i257::i257";
1785
+ }, {
1786
+ readonly kind: "data";
1787
+ readonly name: "nominal_debt_delta";
1788
+ readonly type: "alexandria_math::i257::i257";
1789
+ }, {
1790
+ readonly kind: "data";
1791
+ readonly name: "bad_debt";
1792
+ readonly type: "core::integer::u256";
1793
+ }];
1794
+ }, {
1795
+ readonly kind: "struct";
1796
+ readonly name: "vesu::singleton::Singleton::AccrueFees";
1797
+ readonly type: "event";
1798
+ readonly members: readonly [{
1799
+ readonly kind: "key";
1800
+ readonly name: "pool_id";
1801
+ readonly type: "core::felt252";
1802
+ }, {
1803
+ readonly kind: "key";
1804
+ readonly name: "collateral_asset";
1805
+ readonly type: "core::starknet::contract_address::ContractAddress";
1806
+ }, {
1807
+ readonly kind: "key";
1808
+ readonly name: "debt_asset";
1809
+ readonly type: "core::starknet::contract_address::ContractAddress";
1810
+ }, {
1811
+ readonly kind: "key";
1812
+ readonly name: "recipient";
1813
+ readonly type: "core::starknet::contract_address::ContractAddress";
1814
+ }, {
1815
+ readonly kind: "data";
1816
+ readonly name: "collateral_asset_fee_shares";
1817
+ readonly type: "core::integer::u256";
1818
+ }, {
1819
+ readonly kind: "data";
1820
+ readonly name: "debt_asset_fee_shares";
1821
+ readonly type: "core::integer::u256";
1822
+ }];
1823
+ }, {
1824
+ readonly kind: "struct";
1825
+ readonly name: "vesu::singleton::Singleton::UpdateContext";
1826
+ readonly type: "event";
1827
+ readonly members: readonly [{
1828
+ readonly kind: "key";
1829
+ readonly name: "pool_id";
1830
+ readonly type: "core::felt252";
1831
+ }, {
1832
+ readonly kind: "key";
1833
+ readonly name: "collateral_asset";
1834
+ readonly type: "core::starknet::contract_address::ContractAddress";
1835
+ }, {
1836
+ readonly kind: "key";
1837
+ readonly name: "debt_asset";
1838
+ readonly type: "core::starknet::contract_address::ContractAddress";
1839
+ }, {
1840
+ readonly kind: "data";
1841
+ readonly name: "collateral_asset_config";
1842
+ readonly type: "vesu::data_model::AssetConfig";
1843
+ }, {
1844
+ readonly kind: "data";
1845
+ readonly name: "debt_asset_config";
1846
+ readonly type: "vesu::data_model::AssetConfig";
1847
+ }, {
1848
+ readonly kind: "data";
1849
+ readonly name: "collateral_asset_price";
1850
+ readonly type: "vesu::data_model::AssetPrice";
1851
+ }, {
1852
+ readonly kind: "data";
1853
+ readonly name: "debt_asset_price";
1854
+ readonly type: "vesu::data_model::AssetPrice";
1855
+ }];
1856
+ }, {
1857
+ readonly kind: "struct";
1858
+ readonly name: "vesu::singleton::Singleton::Flashloan";
1859
+ readonly type: "event";
1860
+ readonly members: readonly [{
1861
+ readonly kind: "key";
1862
+ readonly name: "sender";
1863
+ readonly type: "core::starknet::contract_address::ContractAddress";
1864
+ }, {
1865
+ readonly kind: "key";
1866
+ readonly name: "receiver";
1867
+ readonly type: "core::starknet::contract_address::ContractAddress";
1868
+ }, {
1869
+ readonly kind: "key";
1870
+ readonly name: "asset";
1871
+ readonly type: "core::starknet::contract_address::ContractAddress";
1872
+ }, {
1873
+ readonly kind: "data";
1874
+ readonly name: "amount";
1875
+ readonly type: "core::integer::u256";
1876
+ }];
1877
+ }, {
1878
+ readonly kind: "struct";
1879
+ readonly name: "vesu::singleton::Singleton::ModifyDelegation";
1880
+ readonly type: "event";
1881
+ readonly members: readonly [{
1882
+ readonly kind: "key";
1883
+ readonly name: "pool_id";
1884
+ readonly type: "core::felt252";
1885
+ }, {
1886
+ readonly kind: "key";
1887
+ readonly name: "delegator";
1888
+ readonly type: "core::starknet::contract_address::ContractAddress";
1889
+ }, {
1890
+ readonly kind: "key";
1891
+ readonly name: "delegatee";
1892
+ readonly type: "core::starknet::contract_address::ContractAddress";
1893
+ }, {
1894
+ readonly kind: "data";
1895
+ readonly name: "delegation";
1896
+ readonly type: "core::bool";
1897
+ }];
1898
+ }, {
1899
+ readonly kind: "struct";
1900
+ readonly name: "vesu::singleton::Singleton::Donate";
1901
+ readonly type: "event";
1902
+ readonly members: readonly [{
1903
+ readonly kind: "key";
1904
+ readonly name: "pool_id";
1905
+ readonly type: "core::felt252";
1906
+ }, {
1907
+ readonly kind: "key";
1908
+ readonly name: "asset";
1909
+ readonly type: "core::starknet::contract_address::ContractAddress";
1910
+ }, {
1911
+ readonly kind: "data";
1912
+ readonly name: "amount";
1913
+ readonly type: "core::integer::u256";
1914
+ }];
1915
+ }, {
1916
+ readonly kind: "struct";
1917
+ readonly name: "vesu::singleton::Singleton::RetrieveReserve";
1918
+ readonly type: "event";
1919
+ readonly members: readonly [{
1920
+ readonly kind: "key";
1921
+ readonly name: "pool_id";
1922
+ readonly type: "core::felt252";
1923
+ }, {
1924
+ readonly kind: "key";
1925
+ readonly name: "asset";
1926
+ readonly type: "core::starknet::contract_address::ContractAddress";
1927
+ }, {
1928
+ readonly kind: "key";
1929
+ readonly name: "receiver";
1930
+ readonly type: "core::starknet::contract_address::ContractAddress";
1931
+ }];
1932
+ }, {
1933
+ readonly kind: "struct";
1934
+ readonly name: "vesu::singleton::Singleton::SetLTVConfig";
1935
+ readonly type: "event";
1936
+ readonly members: readonly [{
1937
+ readonly kind: "key";
1938
+ readonly name: "pool_id";
1939
+ readonly type: "core::felt252";
1940
+ }, {
1941
+ readonly kind: "key";
1942
+ readonly name: "collateral_asset";
1943
+ readonly type: "core::starknet::contract_address::ContractAddress";
1944
+ }, {
1945
+ readonly kind: "key";
1946
+ readonly name: "debt_asset";
1947
+ readonly type: "core::starknet::contract_address::ContractAddress";
1948
+ }, {
1949
+ readonly kind: "data";
1950
+ readonly name: "ltv_config";
1951
+ readonly type: "vesu::data_model::LTVConfig";
1952
+ }];
1953
+ }, {
1954
+ readonly kind: "struct";
1955
+ readonly name: "vesu::singleton::Singleton::SetAssetConfig";
1956
+ readonly type: "event";
1957
+ readonly members: readonly [{
1958
+ readonly kind: "key";
1959
+ readonly name: "pool_id";
1960
+ readonly type: "core::felt252";
1961
+ }, {
1962
+ readonly kind: "key";
1963
+ readonly name: "asset";
1964
+ readonly type: "core::starknet::contract_address::ContractAddress";
1965
+ }];
1966
+ }, {
1967
+ readonly kind: "struct";
1968
+ readonly name: "vesu::singleton::Singleton::SetAssetParameter";
1969
+ readonly type: "event";
1970
+ readonly members: readonly [{
1971
+ readonly kind: "key";
1972
+ readonly name: "pool_id";
1973
+ readonly type: "core::felt252";
1974
+ }, {
1975
+ readonly kind: "key";
1976
+ readonly name: "asset";
1977
+ readonly type: "core::starknet::contract_address::ContractAddress";
1978
+ }, {
1979
+ readonly kind: "key";
1980
+ readonly name: "parameter";
1981
+ readonly type: "core::felt252";
1982
+ }, {
1983
+ readonly kind: "data";
1984
+ readonly name: "value";
1985
+ readonly type: "core::integer::u256";
1986
+ }];
1987
+ }, {
1988
+ readonly kind: "struct";
1989
+ readonly name: "vesu::singleton::Singleton::SetExtension";
1990
+ readonly type: "event";
1991
+ readonly members: readonly [{
1992
+ readonly kind: "key";
1993
+ readonly name: "pool_id";
1994
+ readonly type: "core::felt252";
1995
+ }, {
1996
+ readonly kind: "key";
1997
+ readonly name: "extension";
1998
+ readonly type: "core::starknet::contract_address::ContractAddress";
1999
+ }];
2000
+ }, {
2001
+ readonly kind: "enum";
2002
+ readonly name: "vesu::singleton::Singleton::Event";
2003
+ readonly type: "event";
2004
+ readonly variants: readonly [{
2005
+ readonly kind: "nested";
2006
+ readonly name: "CreatePool";
2007
+ readonly type: "vesu::singleton::Singleton::CreatePool";
2008
+ }, {
2009
+ readonly kind: "nested";
2010
+ readonly name: "ModifyPosition";
2011
+ readonly type: "vesu::singleton::Singleton::ModifyPosition";
2012
+ }, {
2013
+ readonly kind: "nested";
2014
+ readonly name: "TransferPosition";
2015
+ readonly type: "vesu::singleton::Singleton::TransferPosition";
2016
+ }, {
2017
+ readonly kind: "nested";
2018
+ readonly name: "LiquidatePosition";
2019
+ readonly type: "vesu::singleton::Singleton::LiquidatePosition";
2020
+ }, {
2021
+ readonly kind: "nested";
2022
+ readonly name: "AccrueFees";
2023
+ readonly type: "vesu::singleton::Singleton::AccrueFees";
2024
+ }, {
2025
+ readonly kind: "nested";
2026
+ readonly name: "UpdateContext";
2027
+ readonly type: "vesu::singleton::Singleton::UpdateContext";
2028
+ }, {
2029
+ readonly kind: "nested";
2030
+ readonly name: "Flashloan";
2031
+ readonly type: "vesu::singleton::Singleton::Flashloan";
2032
+ }, {
2033
+ readonly kind: "nested";
2034
+ readonly name: "ModifyDelegation";
2035
+ readonly type: "vesu::singleton::Singleton::ModifyDelegation";
2036
+ }, {
2037
+ readonly kind: "nested";
2038
+ readonly name: "Donate";
2039
+ readonly type: "vesu::singleton::Singleton::Donate";
2040
+ }, {
2041
+ readonly kind: "nested";
2042
+ readonly name: "RetrieveReserve";
2043
+ readonly type: "vesu::singleton::Singleton::RetrieveReserve";
2044
+ }, {
2045
+ readonly kind: "nested";
2046
+ readonly name: "SetLTVConfig";
2047
+ readonly type: "vesu::singleton::Singleton::SetLTVConfig";
2048
+ }, {
2049
+ readonly kind: "nested";
2050
+ readonly name: "SetAssetConfig";
2051
+ readonly type: "vesu::singleton::Singleton::SetAssetConfig";
2052
+ }, {
2053
+ readonly kind: "nested";
2054
+ readonly name: "SetAssetParameter";
2055
+ readonly type: "vesu::singleton::Singleton::SetAssetParameter";
2056
+ }, {
2057
+ readonly kind: "nested";
2058
+ readonly name: "SetExtension";
2059
+ readonly type: "vesu::singleton::Singleton::SetExtension";
2060
+ }];
2061
+ }]>;
2062
+ export declare const getExtensionContract: (address: Address) => import("starknet").TypedContractV2<readonly [{
2063
+ readonly name: "DefaultExtensionImpl";
2064
+ readonly type: "impl";
2065
+ readonly interface_name: "vesu::extension::default_extension::IDefaultExtension";
2066
+ }, {
2067
+ readonly name: "vesu::extension::components::pragma_oracle::OracleConfig";
2068
+ readonly type: "struct";
2069
+ readonly members: readonly [{
2070
+ readonly name: "pragma_key";
2071
+ readonly type: "core::felt252";
2072
+ }, {
2073
+ readonly name: "timeout";
2074
+ readonly type: "core::integer::u64";
2075
+ }, {
2076
+ readonly name: "number_of_sources";
2077
+ readonly type: "core::integer::u32";
2078
+ }];
2079
+ }, {
2080
+ readonly name: "vesu::extension::components::fee_model::FeeConfig";
2081
+ readonly type: "struct";
2082
+ readonly members: readonly [{
2083
+ readonly name: "fee_recipient";
2084
+ readonly type: "core::starknet::contract_address::ContractAddress";
2085
+ }];
2086
+ }, {
2087
+ readonly name: "core::integer::u256";
2088
+ readonly type: "struct";
2089
+ readonly members: readonly [{
2090
+ readonly name: "low";
2091
+ readonly type: "core::integer::u128";
2092
+ }, {
2093
+ readonly name: "high";
2094
+ readonly type: "core::integer::u128";
2095
+ }];
2096
+ }, {
2097
+ readonly name: "vesu::extension::components::interest_rate_model::InterestRateConfig";
2098
+ readonly type: "struct";
2099
+ readonly members: readonly [{
2100
+ readonly name: "min_target_utilization";
2101
+ readonly type: "core::integer::u256";
2102
+ }, {
2103
+ readonly name: "max_target_utilization";
2104
+ readonly type: "core::integer::u256";
2105
+ }, {
2106
+ readonly name: "target_utilization";
2107
+ readonly type: "core::integer::u256";
2108
+ }, {
2109
+ readonly name: "min_full_utilization_rate";
2110
+ readonly type: "core::integer::u256";
2111
+ }, {
2112
+ readonly name: "max_full_utilization_rate";
2113
+ readonly type: "core::integer::u256";
2114
+ }, {
2115
+ readonly name: "zero_utilization_rate";
2116
+ readonly type: "core::integer::u256";
2117
+ }, {
2118
+ readonly name: "rate_half_life";
2119
+ readonly type: "core::integer::u256";
2120
+ }, {
2121
+ readonly name: "target_rate_percent";
2122
+ readonly type: "core::integer::u256";
2123
+ }];
2124
+ }, {
2125
+ readonly name: "vesu::extension::components::position_hooks::LiquidationConfig";
2126
+ readonly type: "struct";
2127
+ readonly members: readonly [{
2128
+ readonly name: "liquidation_discount";
2129
+ readonly type: "core::integer::u64";
2130
+ }];
2131
+ }, {
2132
+ readonly name: "vesu::extension::components::position_hooks::ShutdownConfig";
2133
+ readonly type: "struct";
2134
+ readonly members: readonly [{
2135
+ readonly name: "recovery_period";
2136
+ readonly type: "core::integer::u64";
2137
+ }, {
2138
+ readonly name: "subscription_period";
2139
+ readonly type: "core::integer::u64";
2140
+ }];
2141
+ }, {
2142
+ readonly name: "vesu::data_model::LTVConfig";
2143
+ readonly type: "struct";
2144
+ readonly members: readonly [{
2145
+ readonly name: "max_ltv";
2146
+ readonly type: "core::integer::u64";
2147
+ }];
2148
+ }, {
2149
+ readonly name: "vesu::extension::components::position_hooks::ShutdownMode";
2150
+ readonly type: "enum";
2151
+ readonly variants: readonly [{
2152
+ readonly name: "None";
2153
+ readonly type: "()";
2154
+ }, {
2155
+ readonly name: "Recovery";
2156
+ readonly type: "()";
2157
+ }, {
2158
+ readonly name: "Subscription";
2159
+ readonly type: "()";
2160
+ }, {
2161
+ readonly name: "Redemption";
2162
+ readonly type: "()";
2163
+ }];
2164
+ }, {
2165
+ readonly name: "core::bool";
2166
+ readonly type: "enum";
2167
+ readonly variants: readonly [{
2168
+ readonly name: "False";
2169
+ readonly type: "()";
2170
+ }, {
2171
+ readonly name: "True";
2172
+ readonly type: "()";
2173
+ }];
2174
+ }, {
2175
+ readonly name: "vesu::extension::components::position_hooks::ShutdownStatus";
2176
+ readonly type: "struct";
2177
+ readonly members: readonly [{
2178
+ readonly name: "shutdown_mode";
2179
+ readonly type: "vesu::extension::components::position_hooks::ShutdownMode";
2180
+ }, {
2181
+ readonly name: "violating";
2182
+ readonly type: "core::bool";
2183
+ }, {
2184
+ readonly name: "previous_violation_timestamp";
2185
+ readonly type: "core::integer::u64";
2186
+ }, {
2187
+ readonly name: "count_at_violation_timestamp";
2188
+ readonly type: "core::integer::u128";
2189
+ }];
2190
+ }, {
2191
+ readonly name: "vesu::data_model::AssetParams";
2192
+ readonly type: "struct";
2193
+ readonly members: readonly [{
2194
+ readonly name: "asset";
2195
+ readonly type: "core::starknet::contract_address::ContractAddress";
2196
+ }, {
2197
+ readonly name: "floor";
2198
+ readonly type: "core::integer::u256";
2199
+ }, {
2200
+ readonly name: "initial_rate_accumulator";
2201
+ readonly type: "core::integer::u256";
2202
+ }, {
2203
+ readonly name: "initial_full_utilization_rate";
2204
+ readonly type: "core::integer::u256";
2205
+ }, {
2206
+ readonly name: "max_utilization";
2207
+ readonly type: "core::integer::u256";
2208
+ }, {
2209
+ readonly name: "is_legacy";
2210
+ readonly type: "core::bool";
2211
+ }, {
2212
+ readonly name: "fee_rate";
2213
+ readonly type: "core::integer::u256";
2214
+ }];
2215
+ }, {
2216
+ readonly name: "core::array::Span::<vesu::data_model::AssetParams>";
2217
+ readonly type: "struct";
2218
+ readonly members: readonly [{
2219
+ readonly name: "snapshot";
2220
+ readonly type: "@core::array::Array::<vesu::data_model::AssetParams>";
2221
+ }];
2222
+ }, {
2223
+ readonly name: "vesu::extension::default_extension::VTokenParams";
2224
+ readonly type: "struct";
2225
+ readonly members: readonly [{
2226
+ readonly name: "v_token_name";
2227
+ readonly type: "core::felt252";
2228
+ }, {
2229
+ readonly name: "v_token_symbol";
2230
+ readonly type: "core::felt252";
2231
+ }];
2232
+ }, {
2233
+ readonly name: "core::array::Span::<vesu::extension::default_extension::VTokenParams>";
2234
+ readonly type: "struct";
2235
+ readonly members: readonly [{
2236
+ readonly name: "snapshot";
2237
+ readonly type: "@core::array::Array::<vesu::extension::default_extension::VTokenParams>";
2238
+ }];
2239
+ }, {
2240
+ readonly name: "vesu::data_model::LTVParams";
2241
+ readonly type: "struct";
2242
+ readonly members: readonly [{
2243
+ readonly name: "collateral_asset_index";
2244
+ readonly type: "core::integer::u32";
2245
+ }, {
2246
+ readonly name: "debt_asset_index";
2247
+ readonly type: "core::integer::u32";
2248
+ }, {
2249
+ readonly name: "max_ltv";
2250
+ readonly type: "core::integer::u64";
2251
+ }];
2252
+ }, {
2253
+ readonly name: "core::array::Span::<vesu::data_model::LTVParams>";
2254
+ readonly type: "struct";
2255
+ readonly members: readonly [{
2256
+ readonly name: "snapshot";
2257
+ readonly type: "@core::array::Array::<vesu::data_model::LTVParams>";
2258
+ }];
2259
+ }, {
2260
+ readonly name: "core::array::Span::<vesu::extension::components::interest_rate_model::InterestRateConfig>";
2261
+ readonly type: "struct";
2262
+ readonly members: readonly [{
2263
+ readonly name: "snapshot";
2264
+ readonly type: "@core::array::Array::<vesu::extension::components::interest_rate_model::InterestRateConfig>";
2265
+ }];
2266
+ }, {
2267
+ readonly name: "vesu::extension::default_extension::PragmaOracleParams";
2268
+ readonly type: "struct";
2269
+ readonly members: readonly [{
2270
+ readonly name: "pragma_key";
2271
+ readonly type: "core::felt252";
2272
+ }, {
2273
+ readonly name: "timeout";
2274
+ readonly type: "core::integer::u64";
2275
+ }, {
2276
+ readonly name: "number_of_sources";
2277
+ readonly type: "core::integer::u32";
2278
+ }];
2279
+ }, {
2280
+ readonly name: "core::array::Span::<vesu::extension::default_extension::PragmaOracleParams>";
2281
+ readonly type: "struct";
2282
+ readonly members: readonly [{
2283
+ readonly name: "snapshot";
2284
+ readonly type: "@core::array::Array::<vesu::extension::default_extension::PragmaOracleParams>";
2285
+ }];
2286
+ }, {
2287
+ readonly name: "vesu::extension::default_extension::LiquidationParams";
2288
+ readonly type: "struct";
2289
+ readonly members: readonly [{
2290
+ readonly name: "collateral_asset_index";
2291
+ readonly type: "core::integer::u32";
2292
+ }, {
2293
+ readonly name: "debt_asset_index";
2294
+ readonly type: "core::integer::u32";
2295
+ }, {
2296
+ readonly name: "liquidation_discount";
2297
+ readonly type: "core::integer::u64";
2298
+ }];
2299
+ }, {
2300
+ readonly name: "core::array::Span::<vesu::extension::default_extension::LiquidationParams>";
2301
+ readonly type: "struct";
2302
+ readonly members: readonly [{
2303
+ readonly name: "snapshot";
2304
+ readonly type: "@core::array::Array::<vesu::extension::default_extension::LiquidationParams>";
2305
+ }];
2306
+ }, {
2307
+ readonly name: "vesu::extension::default_extension::ShutdownParams";
2308
+ readonly type: "struct";
2309
+ readonly members: readonly [{
2310
+ readonly name: "recovery_period";
2311
+ readonly type: "core::integer::u64";
2312
+ }, {
2313
+ readonly name: "subscription_period";
2314
+ readonly type: "core::integer::u64";
2315
+ }, {
2316
+ readonly name: "ltv_params";
2317
+ readonly type: "core::array::Span::<vesu::data_model::LTVParams>";
2318
+ }];
2319
+ }, {
2320
+ readonly name: "vesu::extension::default_extension::FeeParams";
2321
+ readonly type: "struct";
2322
+ readonly members: readonly [{
2323
+ readonly name: "fee_recipient";
2324
+ readonly type: "core::starknet::contract_address::ContractAddress";
2325
+ }];
2326
+ }, {
2327
+ readonly name: "vesu::extension::default_extension::IDefaultExtension";
2328
+ readonly type: "interface";
2329
+ readonly items: readonly [{
2330
+ readonly name: "pool_owner";
2331
+ readonly type: "function";
2332
+ readonly inputs: readonly [{
2333
+ readonly name: "pool_id";
2334
+ readonly type: "core::felt252";
2335
+ }];
2336
+ readonly outputs: readonly [{
2337
+ readonly type: "core::starknet::contract_address::ContractAddress";
2338
+ }];
2339
+ readonly state_mutability: "view";
2340
+ }, {
2341
+ readonly name: "pragma_oracle";
2342
+ readonly type: "function";
2343
+ readonly inputs: readonly [];
2344
+ readonly outputs: readonly [{
2345
+ readonly type: "core::starknet::contract_address::ContractAddress";
2346
+ }];
2347
+ readonly state_mutability: "view";
2348
+ }, {
2349
+ readonly name: "oracle_config";
2350
+ readonly type: "function";
2351
+ readonly inputs: readonly [{
2352
+ readonly name: "pool_id";
2353
+ readonly type: "core::felt252";
2354
+ }, {
2355
+ readonly name: "asset";
2356
+ readonly type: "core::starknet::contract_address::ContractAddress";
2357
+ }];
2358
+ readonly outputs: readonly [{
2359
+ readonly type: "vesu::extension::components::pragma_oracle::OracleConfig";
2360
+ }];
2361
+ readonly state_mutability: "view";
2362
+ }, {
2363
+ readonly name: "fee_config";
2364
+ readonly type: "function";
2365
+ readonly inputs: readonly [{
2366
+ readonly name: "pool_id";
2367
+ readonly type: "core::felt252";
2368
+ }];
2369
+ readonly outputs: readonly [{
2370
+ readonly type: "vesu::extension::components::fee_model::FeeConfig";
2371
+ }];
2372
+ readonly state_mutability: "view";
2373
+ }, {
2374
+ readonly name: "interest_rate_config";
2375
+ readonly type: "function";
2376
+ readonly inputs: readonly [{
2377
+ readonly name: "pool_id";
2378
+ readonly type: "core::felt252";
2379
+ }, {
2380
+ readonly name: "asset";
2381
+ readonly type: "core::starknet::contract_address::ContractAddress";
2382
+ }];
2383
+ readonly outputs: readonly [{
2384
+ readonly type: "vesu::extension::components::interest_rate_model::InterestRateConfig";
2385
+ }];
2386
+ readonly state_mutability: "view";
2387
+ }, {
2388
+ readonly name: "liquidation_config";
2389
+ readonly type: "function";
2390
+ readonly inputs: readonly [{
2391
+ readonly name: "pool_id";
2392
+ readonly type: "core::felt252";
2393
+ }, {
2394
+ readonly name: "collateral_asset";
2395
+ readonly type: "core::starknet::contract_address::ContractAddress";
2396
+ }, {
2397
+ readonly name: "debt_asset";
2398
+ readonly type: "core::starknet::contract_address::ContractAddress";
2399
+ }];
2400
+ readonly outputs: readonly [{
2401
+ readonly type: "vesu::extension::components::position_hooks::LiquidationConfig";
2402
+ }];
2403
+ readonly state_mutability: "view";
2404
+ }, {
2405
+ readonly name: "shutdown_config";
2406
+ readonly type: "function";
2407
+ readonly inputs: readonly [{
2408
+ readonly name: "pool_id";
2409
+ readonly type: "core::felt252";
2410
+ }];
2411
+ readonly outputs: readonly [{
2412
+ readonly type: "vesu::extension::components::position_hooks::ShutdownConfig";
2413
+ }];
2414
+ readonly state_mutability: "view";
2415
+ }, {
2416
+ readonly name: "shutdown_ltv_config";
2417
+ readonly type: "function";
2418
+ readonly inputs: readonly [{
2419
+ readonly name: "pool_id";
2420
+ readonly type: "core::felt252";
2421
+ }, {
2422
+ readonly name: "collateral_asset";
2423
+ readonly type: "core::starknet::contract_address::ContractAddress";
2424
+ }, {
2425
+ readonly name: "debt_asset";
2426
+ readonly type: "core::starknet::contract_address::ContractAddress";
2427
+ }];
2428
+ readonly outputs: readonly [{
2429
+ readonly type: "vesu::data_model::LTVConfig";
2430
+ }];
2431
+ readonly state_mutability: "view";
2432
+ }, {
2433
+ readonly name: "shutdown_status";
2434
+ readonly type: "function";
2435
+ readonly inputs: readonly [{
2436
+ readonly name: "pool_id";
2437
+ readonly type: "core::felt252";
2438
+ }, {
2439
+ readonly name: "collateral_asset";
2440
+ readonly type: "core::starknet::contract_address::ContractAddress";
2441
+ }, {
2442
+ readonly name: "debt_asset";
2443
+ readonly type: "core::starknet::contract_address::ContractAddress";
2444
+ }];
2445
+ readonly outputs: readonly [{
2446
+ readonly type: "vesu::extension::components::position_hooks::ShutdownStatus";
2447
+ }];
2448
+ readonly state_mutability: "view";
2449
+ }, {
2450
+ readonly name: "violation_timestamp_for_pair";
2451
+ readonly type: "function";
2452
+ readonly inputs: readonly [{
2453
+ readonly name: "pool_id";
2454
+ readonly type: "core::felt252";
2455
+ }, {
2456
+ readonly name: "collateral_asset";
2457
+ readonly type: "core::starknet::contract_address::ContractAddress";
2458
+ }, {
2459
+ readonly name: "debt_asset";
2460
+ readonly type: "core::starknet::contract_address::ContractAddress";
2461
+ }];
2462
+ readonly outputs: readonly [{
2463
+ readonly type: "core::integer::u64";
2464
+ }];
2465
+ readonly state_mutability: "view";
2466
+ }, {
2467
+ readonly name: "violation_timestamp_count";
2468
+ readonly type: "function";
2469
+ readonly inputs: readonly [{
2470
+ readonly name: "pool_id";
2471
+ readonly type: "core::felt252";
2472
+ }, {
2473
+ readonly name: "violation_timestamp";
2474
+ readonly type: "core::integer::u64";
2475
+ }];
2476
+ readonly outputs: readonly [{
2477
+ readonly type: "core::integer::u128";
2478
+ }];
2479
+ readonly state_mutability: "view";
2480
+ }, {
2481
+ readonly name: "oldest_violation_timestamp";
2482
+ readonly type: "function";
2483
+ readonly inputs: readonly [{
2484
+ readonly name: "pool_id";
2485
+ readonly type: "core::felt252";
2486
+ }];
2487
+ readonly outputs: readonly [{
2488
+ readonly type: "core::integer::u64";
2489
+ }];
2490
+ readonly state_mutability: "view";
2491
+ }, {
2492
+ readonly name: "next_violation_timestamp";
2493
+ readonly type: "function";
2494
+ readonly inputs: readonly [{
2495
+ readonly name: "pool_id";
2496
+ readonly type: "core::felt252";
2497
+ }, {
2498
+ readonly name: "violation_timestamp";
2499
+ readonly type: "core::integer::u64";
2500
+ }];
2501
+ readonly outputs: readonly [{
2502
+ readonly type: "core::integer::u64";
2503
+ }];
2504
+ readonly state_mutability: "view";
2505
+ }, {
2506
+ readonly name: "v_token_for_collateral_asset";
2507
+ readonly type: "function";
2508
+ readonly inputs: readonly [{
2509
+ readonly name: "pool_id";
2510
+ readonly type: "core::felt252";
2511
+ }, {
2512
+ readonly name: "collateral_asset";
2513
+ readonly type: "core::starknet::contract_address::ContractAddress";
2514
+ }];
2515
+ readonly outputs: readonly [{
2516
+ readonly type: "core::starknet::contract_address::ContractAddress";
2517
+ }];
2518
+ readonly state_mutability: "view";
2519
+ }, {
2520
+ readonly name: "collateral_asset_for_v_token";
2521
+ readonly type: "function";
2522
+ readonly inputs: readonly [{
2523
+ readonly name: "pool_id";
2524
+ readonly type: "core::felt252";
2525
+ }, {
2526
+ readonly name: "v_token";
2527
+ readonly type: "core::starknet::contract_address::ContractAddress";
2528
+ }];
2529
+ readonly outputs: readonly [{
2530
+ readonly type: "core::starknet::contract_address::ContractAddress";
2531
+ }];
2532
+ readonly state_mutability: "view";
2533
+ }, {
2534
+ readonly name: "create_pool";
2535
+ readonly type: "function";
2536
+ readonly inputs: readonly [{
2537
+ readonly name: "asset_params";
2538
+ readonly type: "core::array::Span::<vesu::data_model::AssetParams>";
2539
+ }, {
2540
+ readonly name: "v_token_params";
2541
+ readonly type: "core::array::Span::<vesu::extension::default_extension::VTokenParams>";
2542
+ }, {
2543
+ readonly name: "ltv_params";
2544
+ readonly type: "core::array::Span::<vesu::data_model::LTVParams>";
2545
+ }, {
2546
+ readonly name: "interest_rate_configs";
2547
+ readonly type: "core::array::Span::<vesu::extension::components::interest_rate_model::InterestRateConfig>";
2548
+ }, {
2549
+ readonly name: "pragma_oracle_params";
2550
+ readonly type: "core::array::Span::<vesu::extension::default_extension::PragmaOracleParams>";
2551
+ }, {
2552
+ readonly name: "liquidation_params";
2553
+ readonly type: "core::array::Span::<vesu::extension::default_extension::LiquidationParams>";
2554
+ }, {
2555
+ readonly name: "shutdown_params";
2556
+ readonly type: "vesu::extension::default_extension::ShutdownParams";
2557
+ }, {
2558
+ readonly name: "fee_params";
2559
+ readonly type: "vesu::extension::default_extension::FeeParams";
2560
+ }, {
2561
+ readonly name: "owner";
2562
+ readonly type: "core::starknet::contract_address::ContractAddress";
2563
+ }];
2564
+ readonly outputs: readonly [{
2565
+ readonly type: "core::felt252";
2566
+ }];
2567
+ readonly state_mutability: "external";
2568
+ }, {
2569
+ readonly name: "add_asset";
2570
+ readonly type: "function";
2571
+ readonly inputs: readonly [{
2572
+ readonly name: "pool_id";
2573
+ readonly type: "core::felt252";
2574
+ }, {
2575
+ readonly name: "asset_params";
2576
+ readonly type: "vesu::data_model::AssetParams";
2577
+ }, {
2578
+ readonly name: "v_token_params";
2579
+ readonly type: "vesu::extension::default_extension::VTokenParams";
2580
+ }, {
2581
+ readonly name: "interest_rate_config";
2582
+ readonly type: "vesu::extension::components::interest_rate_model::InterestRateConfig";
2583
+ }, {
2584
+ readonly name: "pragma_oracle_params";
2585
+ readonly type: "vesu::extension::default_extension::PragmaOracleParams";
2586
+ }];
2587
+ readonly outputs: readonly [];
2588
+ readonly state_mutability: "external";
2589
+ }, {
2590
+ readonly name: "set_asset_parameter";
2591
+ readonly type: "function";
2592
+ readonly inputs: readonly [{
2593
+ readonly name: "pool_id";
2594
+ readonly type: "core::felt252";
2595
+ }, {
2596
+ readonly name: "asset";
2597
+ readonly type: "core::starknet::contract_address::ContractAddress";
2598
+ }, {
2599
+ readonly name: "parameter";
2600
+ readonly type: "core::felt252";
2601
+ }, {
2602
+ readonly name: "value";
2603
+ readonly type: "core::integer::u256";
2604
+ }];
2605
+ readonly outputs: readonly [];
2606
+ readonly state_mutability: "external";
2607
+ }, {
2608
+ readonly name: "set_interest_rate_parameter";
2609
+ readonly type: "function";
2610
+ readonly inputs: readonly [{
2611
+ readonly name: "pool_id";
2612
+ readonly type: "core::felt252";
2613
+ }, {
2614
+ readonly name: "asset";
2615
+ readonly type: "core::starknet::contract_address::ContractAddress";
2616
+ }, {
2617
+ readonly name: "parameter";
2618
+ readonly type: "core::felt252";
2619
+ }, {
2620
+ readonly name: "value";
2621
+ readonly type: "core::integer::u256";
2622
+ }];
2623
+ readonly outputs: readonly [];
2624
+ readonly state_mutability: "external";
2625
+ }, {
2626
+ readonly name: "set_oracle_parameter";
2627
+ readonly type: "function";
2628
+ readonly inputs: readonly [{
2629
+ readonly name: "pool_id";
2630
+ readonly type: "core::felt252";
2631
+ }, {
2632
+ readonly name: "asset";
2633
+ readonly type: "core::starknet::contract_address::ContractAddress";
2634
+ }, {
2635
+ readonly name: "parameter";
2636
+ readonly type: "core::felt252";
2637
+ }, {
2638
+ readonly name: "value";
2639
+ readonly type: "core::integer::u64";
2640
+ }];
2641
+ readonly outputs: readonly [];
2642
+ readonly state_mutability: "external";
2643
+ }, {
2644
+ readonly name: "set_liquidation_config";
2645
+ readonly type: "function";
2646
+ readonly inputs: readonly [{
2647
+ readonly name: "pool_id";
2648
+ readonly type: "core::felt252";
2649
+ }, {
2650
+ readonly name: "collateral_asset";
2651
+ readonly type: "core::starknet::contract_address::ContractAddress";
2652
+ }, {
2653
+ readonly name: "debt_asset";
2654
+ readonly type: "core::starknet::contract_address::ContractAddress";
2655
+ }, {
2656
+ readonly name: "liquidation_config";
2657
+ readonly type: "vesu::extension::components::position_hooks::LiquidationConfig";
2658
+ }];
2659
+ readonly outputs: readonly [];
2660
+ readonly state_mutability: "external";
2661
+ }, {
2662
+ readonly name: "set_ltv_config";
2663
+ readonly type: "function";
2664
+ readonly inputs: readonly [{
2665
+ readonly name: "pool_id";
2666
+ readonly type: "core::felt252";
2667
+ }, {
2668
+ readonly name: "collateral_asset";
2669
+ readonly type: "core::starknet::contract_address::ContractAddress";
2670
+ }, {
2671
+ readonly name: "debt_asset";
2672
+ readonly type: "core::starknet::contract_address::ContractAddress";
2673
+ }, {
2674
+ readonly name: "ltv_config";
2675
+ readonly type: "vesu::data_model::LTVConfig";
2676
+ }];
2677
+ readonly outputs: readonly [];
2678
+ readonly state_mutability: "external";
2679
+ }, {
2680
+ readonly name: "set_shutdown_config";
2681
+ readonly type: "function";
2682
+ readonly inputs: readonly [{
2683
+ readonly name: "pool_id";
2684
+ readonly type: "core::felt252";
2685
+ }, {
2686
+ readonly name: "shutdown_config";
2687
+ readonly type: "vesu::extension::components::position_hooks::ShutdownConfig";
2688
+ }];
2689
+ readonly outputs: readonly [];
2690
+ readonly state_mutability: "external";
2691
+ }, {
2692
+ readonly name: "set_shutdown_ltv_config";
2693
+ readonly type: "function";
2694
+ readonly inputs: readonly [{
2695
+ readonly name: "pool_id";
2696
+ readonly type: "core::felt252";
2697
+ }, {
2698
+ readonly name: "collateral_asset";
2699
+ readonly type: "core::starknet::contract_address::ContractAddress";
2700
+ }, {
2701
+ readonly name: "debt_asset";
2702
+ readonly type: "core::starknet::contract_address::ContractAddress";
2703
+ }, {
2704
+ readonly name: "shutdown_ltv_config";
2705
+ readonly type: "vesu::data_model::LTVConfig";
2706
+ }];
2707
+ readonly outputs: readonly [];
2708
+ readonly state_mutability: "external";
2709
+ }, {
2710
+ readonly name: "set_extension";
2711
+ readonly type: "function";
2712
+ readonly inputs: readonly [{
2713
+ readonly name: "pool_id";
2714
+ readonly type: "core::felt252";
2715
+ }, {
2716
+ readonly name: "extension";
2717
+ readonly type: "core::starknet::contract_address::ContractAddress";
2718
+ }];
2719
+ readonly outputs: readonly [];
2720
+ readonly state_mutability: "external";
2721
+ }, {
2722
+ readonly name: "set_pool_owner";
2723
+ readonly type: "function";
2724
+ readonly inputs: readonly [{
2725
+ readonly name: "pool_id";
2726
+ readonly type: "core::felt252";
2727
+ }, {
2728
+ readonly name: "owner";
2729
+ readonly type: "core::starknet::contract_address::ContractAddress";
2730
+ }];
2731
+ readonly outputs: readonly [];
2732
+ readonly state_mutability: "external";
2733
+ }, {
2734
+ readonly name: "update_shutdown_status";
2735
+ readonly type: "function";
2736
+ readonly inputs: readonly [{
2737
+ readonly name: "pool_id";
2738
+ readonly type: "core::felt252";
2739
+ }, {
2740
+ readonly name: "collateral_asset";
2741
+ readonly type: "core::starknet::contract_address::ContractAddress";
2742
+ }, {
2743
+ readonly name: "debt_asset";
2744
+ readonly type: "core::starknet::contract_address::ContractAddress";
2745
+ }];
2746
+ readonly outputs: readonly [{
2747
+ readonly type: "vesu::extension::components::position_hooks::ShutdownMode";
2748
+ }];
2749
+ readonly state_mutability: "external";
2750
+ }, {
2751
+ readonly name: "claim_fees";
2752
+ readonly type: "function";
2753
+ readonly inputs: readonly [{
2754
+ readonly name: "pool_id";
2755
+ readonly type: "core::felt252";
2756
+ }, {
2757
+ readonly name: "collateral_asset";
2758
+ readonly type: "core::starknet::contract_address::ContractAddress";
2759
+ }];
2760
+ readonly outputs: readonly [];
2761
+ readonly state_mutability: "external";
2762
+ }];
2763
+ }, {
2764
+ readonly name: "ExtensionImpl";
2765
+ readonly type: "impl";
2766
+ readonly interface_name: "vesu::extension::interface::IExtension";
2767
+ }, {
2768
+ readonly name: "vesu::data_model::AssetPrice";
2769
+ readonly type: "struct";
2770
+ readonly members: readonly [{
2771
+ readonly name: "value";
2772
+ readonly type: "core::integer::u256";
2773
+ }, {
2774
+ readonly name: "is_valid";
2775
+ readonly type: "core::bool";
2776
+ }];
2777
+ }, {
2778
+ readonly name: "vesu::data_model::AssetConfig";
2779
+ readonly type: "struct";
2780
+ readonly members: readonly [{
2781
+ readonly name: "total_collateral_shares";
2782
+ readonly type: "core::integer::u256";
2783
+ }, {
2784
+ readonly name: "total_nominal_debt";
2785
+ readonly type: "core::integer::u256";
2786
+ }, {
2787
+ readonly name: "reserve";
2788
+ readonly type: "core::integer::u256";
2789
+ }, {
2790
+ readonly name: "max_utilization";
2791
+ readonly type: "core::integer::u256";
2792
+ }, {
2793
+ readonly name: "floor";
2794
+ readonly type: "core::integer::u256";
2795
+ }, {
2796
+ readonly name: "scale";
2797
+ readonly type: "core::integer::u256";
2798
+ }, {
2799
+ readonly name: "is_legacy";
2800
+ readonly type: "core::bool";
2801
+ }, {
2802
+ readonly name: "last_updated";
2803
+ readonly type: "core::integer::u64";
2804
+ }, {
2805
+ readonly name: "last_rate_accumulator";
2806
+ readonly type: "core::integer::u256";
2807
+ }, {
2808
+ readonly name: "last_full_utilization_rate";
2809
+ readonly type: "core::integer::u256";
2810
+ }, {
2811
+ readonly name: "fee_rate";
2812
+ readonly type: "core::integer::u256";
2813
+ }];
2814
+ }, {
2815
+ readonly name: "vesu::data_model::Position";
2816
+ readonly type: "struct";
2817
+ readonly members: readonly [{
2818
+ readonly name: "collateral_shares";
2819
+ readonly type: "core::integer::u256";
2820
+ }, {
2821
+ readonly name: "nominal_debt";
2822
+ readonly type: "core::integer::u256";
2823
+ }];
2824
+ }, {
2825
+ readonly name: "vesu::data_model::Context";
2826
+ readonly type: "struct";
2827
+ readonly members: readonly [{
2828
+ readonly name: "pool_id";
2829
+ readonly type: "core::felt252";
2830
+ }, {
2831
+ readonly name: "extension";
2832
+ readonly type: "core::starknet::contract_address::ContractAddress";
2833
+ }, {
2834
+ readonly name: "collateral_asset";
2835
+ readonly type: "core::starknet::contract_address::ContractAddress";
2836
+ }, {
2837
+ readonly name: "debt_asset";
2838
+ readonly type: "core::starknet::contract_address::ContractAddress";
2839
+ }, {
2840
+ readonly name: "collateral_asset_config";
2841
+ readonly type: "vesu::data_model::AssetConfig";
2842
+ }, {
2843
+ readonly name: "debt_asset_config";
2844
+ readonly type: "vesu::data_model::AssetConfig";
2845
+ }, {
2846
+ readonly name: "collateral_asset_price";
2847
+ readonly type: "vesu::data_model::AssetPrice";
2848
+ }, {
2849
+ readonly name: "debt_asset_price";
2850
+ readonly type: "vesu::data_model::AssetPrice";
2851
+ }, {
2852
+ readonly name: "collateral_asset_fee_shares";
2853
+ readonly type: "core::integer::u256";
2854
+ }, {
2855
+ readonly name: "debt_asset_fee_shares";
2856
+ readonly type: "core::integer::u256";
2857
+ }, {
2858
+ readonly name: "max_ltv";
2859
+ readonly type: "core::integer::u64";
2860
+ }, {
2861
+ readonly name: "user";
2862
+ readonly type: "core::starknet::contract_address::ContractAddress";
2863
+ }, {
2864
+ readonly name: "position";
2865
+ readonly type: "vesu::data_model::Position";
2866
+ }];
2867
+ }, {
2868
+ readonly name: "vesu::data_model::AmountType";
2869
+ readonly type: "enum";
2870
+ readonly variants: readonly [{
2871
+ readonly name: "Delta";
2872
+ readonly type: "()";
2873
+ }, {
2874
+ readonly name: "Target";
2875
+ readonly type: "()";
2876
+ }];
2877
+ }, {
2878
+ readonly name: "vesu::data_model::AmountDenomination";
2879
+ readonly type: "enum";
2880
+ readonly variants: readonly [{
2881
+ readonly name: "Native";
2882
+ readonly type: "()";
2883
+ }, {
2884
+ readonly name: "Assets";
2885
+ readonly type: "()";
2886
+ }];
2887
+ }, {
2888
+ readonly name: "alexandria_math::i257::i257";
2889
+ readonly type: "struct";
2890
+ readonly members: readonly [{
2891
+ readonly name: "abs";
2892
+ readonly type: "core::integer::u256";
2893
+ }, {
2894
+ readonly name: "is_negative";
2895
+ readonly type: "core::bool";
2896
+ }];
2897
+ }, {
2898
+ readonly name: "vesu::data_model::Amount";
2899
+ readonly type: "struct";
2900
+ readonly members: readonly [{
2901
+ readonly name: "amount_type";
2902
+ readonly type: "vesu::data_model::AmountType";
2903
+ }, {
2904
+ readonly name: "denomination";
2905
+ readonly type: "vesu::data_model::AmountDenomination";
2906
+ }, {
2907
+ readonly name: "value";
2908
+ readonly type: "alexandria_math::i257::i257";
2909
+ }];
2910
+ }, {
2911
+ readonly name: "core::array::Span::<core::felt252>";
2912
+ readonly type: "struct";
2913
+ readonly members: readonly [{
2914
+ readonly name: "snapshot";
2915
+ readonly type: "@core::array::Array::<core::felt252>";
2916
+ }];
2917
+ }, {
2918
+ readonly name: "vesu::data_model::UnsignedAmount";
2919
+ readonly type: "struct";
2920
+ readonly members: readonly [{
2921
+ readonly name: "amount_type";
2922
+ readonly type: "vesu::data_model::AmountType";
2923
+ }, {
2924
+ readonly name: "denomination";
2925
+ readonly type: "vesu::data_model::AmountDenomination";
2926
+ }, {
2927
+ readonly name: "value";
2928
+ readonly type: "core::integer::u256";
2929
+ }];
2930
+ }, {
2931
+ readonly name: "vesu::extension::interface::IExtension";
2932
+ readonly type: "interface";
2933
+ readonly items: readonly [{
2934
+ readonly name: "singleton";
2935
+ readonly type: "function";
2936
+ readonly inputs: readonly [];
2937
+ readonly outputs: readonly [{
2938
+ readonly type: "core::starknet::contract_address::ContractAddress";
2939
+ }];
2940
+ readonly state_mutability: "view";
2941
+ }, {
2942
+ readonly name: "price";
2943
+ readonly type: "function";
2944
+ readonly inputs: readonly [{
2945
+ readonly name: "pool_id";
2946
+ readonly type: "core::felt252";
2947
+ }, {
2948
+ readonly name: "asset";
2949
+ readonly type: "core::starknet::contract_address::ContractAddress";
2950
+ }];
2951
+ readonly outputs: readonly [{
2952
+ readonly type: "vesu::data_model::AssetPrice";
2953
+ }];
2954
+ readonly state_mutability: "view";
2955
+ }, {
2956
+ readonly name: "interest_rate";
2957
+ readonly type: "function";
2958
+ readonly inputs: readonly [{
2959
+ readonly name: "pool_id";
2960
+ readonly type: "core::felt252";
2961
+ }, {
2962
+ readonly name: "asset";
2963
+ readonly type: "core::starknet::contract_address::ContractAddress";
2964
+ }, {
2965
+ readonly name: "utilization";
2966
+ readonly type: "core::integer::u256";
2967
+ }, {
2968
+ readonly name: "last_updated";
2969
+ readonly type: "core::integer::u64";
2970
+ }, {
2971
+ readonly name: "last_full_utilization_rate";
2972
+ readonly type: "core::integer::u256";
2973
+ }];
2974
+ readonly outputs: readonly [{
2975
+ readonly type: "core::integer::u256";
2976
+ }];
2977
+ readonly state_mutability: "view";
2978
+ }, {
2979
+ readonly name: "rate_accumulator";
2980
+ readonly type: "function";
2981
+ readonly inputs: readonly [{
2982
+ readonly name: "pool_id";
2983
+ readonly type: "core::felt252";
2984
+ }, {
2985
+ readonly name: "asset";
2986
+ readonly type: "core::starknet::contract_address::ContractAddress";
2987
+ }, {
2988
+ readonly name: "utilization";
2989
+ readonly type: "core::integer::u256";
2990
+ }, {
2991
+ readonly name: "last_updated";
2992
+ readonly type: "core::integer::u64";
2993
+ }, {
2994
+ readonly name: "last_rate_accumulator";
2995
+ readonly type: "core::integer::u256";
2996
+ }, {
2997
+ readonly name: "last_full_utilization_rate";
2998
+ readonly type: "core::integer::u256";
2999
+ }];
3000
+ readonly outputs: readonly [{
3001
+ readonly type: "(core::integer::u256, core::integer::u256)";
3002
+ }];
3003
+ readonly state_mutability: "view";
3004
+ }, {
3005
+ readonly name: "before_modify_position";
3006
+ readonly type: "function";
3007
+ readonly inputs: readonly [{
3008
+ readonly name: "context";
3009
+ readonly type: "vesu::data_model::Context";
3010
+ }, {
3011
+ readonly name: "collateral";
3012
+ readonly type: "vesu::data_model::Amount";
3013
+ }, {
3014
+ readonly name: "debt";
3015
+ readonly type: "vesu::data_model::Amount";
3016
+ }, {
3017
+ readonly name: "data";
3018
+ readonly type: "core::array::Span::<core::felt252>";
3019
+ }, {
3020
+ readonly name: "caller";
3021
+ readonly type: "core::starknet::contract_address::ContractAddress";
3022
+ }];
3023
+ readonly outputs: readonly [{
3024
+ readonly type: "(vesu::data_model::Amount, vesu::data_model::Amount)";
3025
+ }];
3026
+ readonly state_mutability: "external";
3027
+ }, {
3028
+ readonly name: "after_modify_position";
3029
+ readonly type: "function";
3030
+ readonly inputs: readonly [{
3031
+ readonly name: "context";
3032
+ readonly type: "vesu::data_model::Context";
3033
+ }, {
3034
+ readonly name: "collateral_delta";
3035
+ readonly type: "alexandria_math::i257::i257";
3036
+ }, {
3037
+ readonly name: "collateral_shares_delta";
3038
+ readonly type: "alexandria_math::i257::i257";
3039
+ }, {
3040
+ readonly name: "debt_delta";
3041
+ readonly type: "alexandria_math::i257::i257";
3042
+ }, {
3043
+ readonly name: "nominal_debt_delta";
3044
+ readonly type: "alexandria_math::i257::i257";
3045
+ }, {
3046
+ readonly name: "data";
3047
+ readonly type: "core::array::Span::<core::felt252>";
3048
+ }, {
3049
+ readonly name: "caller";
3050
+ readonly type: "core::starknet::contract_address::ContractAddress";
3051
+ }];
3052
+ readonly outputs: readonly [{
3053
+ readonly type: "core::bool";
3054
+ }];
3055
+ readonly state_mutability: "external";
3056
+ }, {
3057
+ readonly name: "before_transfer_position";
3058
+ readonly type: "function";
3059
+ readonly inputs: readonly [{
3060
+ readonly name: "from_context";
3061
+ readonly type: "vesu::data_model::Context";
3062
+ }, {
3063
+ readonly name: "to_context";
3064
+ readonly type: "vesu::data_model::Context";
3065
+ }, {
3066
+ readonly name: "collateral";
3067
+ readonly type: "vesu::data_model::UnsignedAmount";
3068
+ }, {
3069
+ readonly name: "debt";
3070
+ readonly type: "vesu::data_model::UnsignedAmount";
3071
+ }, {
3072
+ readonly name: "data";
3073
+ readonly type: "core::array::Span::<core::felt252>";
3074
+ }, {
3075
+ readonly name: "caller";
3076
+ readonly type: "core::starknet::contract_address::ContractAddress";
3077
+ }];
3078
+ readonly outputs: readonly [{
3079
+ readonly type: "(vesu::data_model::UnsignedAmount, vesu::data_model::UnsignedAmount)";
3080
+ }];
3081
+ readonly state_mutability: "external";
3082
+ }, {
3083
+ readonly name: "after_transfer_position";
3084
+ readonly type: "function";
3085
+ readonly inputs: readonly [{
3086
+ readonly name: "from_context";
3087
+ readonly type: "vesu::data_model::Context";
3088
+ }, {
3089
+ readonly name: "to_context";
3090
+ readonly type: "vesu::data_model::Context";
3091
+ }, {
3092
+ readonly name: "collateral_delta";
3093
+ readonly type: "core::integer::u256";
3094
+ }, {
3095
+ readonly name: "collateral_shares_delta";
3096
+ readonly type: "core::integer::u256";
3097
+ }, {
3098
+ readonly name: "debt_delta";
3099
+ readonly type: "core::integer::u256";
3100
+ }, {
3101
+ readonly name: "nominal_debt_delta";
3102
+ readonly type: "core::integer::u256";
3103
+ }, {
3104
+ readonly name: "data";
3105
+ readonly type: "core::array::Span::<core::felt252>";
3106
+ }, {
3107
+ readonly name: "caller";
3108
+ readonly type: "core::starknet::contract_address::ContractAddress";
3109
+ }];
3110
+ readonly outputs: readonly [{
3111
+ readonly type: "core::bool";
3112
+ }];
3113
+ readonly state_mutability: "external";
3114
+ }, {
3115
+ readonly name: "before_liquidate_position";
3116
+ readonly type: "function";
3117
+ readonly inputs: readonly [{
3118
+ readonly name: "context";
3119
+ readonly type: "vesu::data_model::Context";
3120
+ }, {
3121
+ readonly name: "data";
3122
+ readonly type: "core::array::Span::<core::felt252>";
3123
+ }, {
3124
+ readonly name: "caller";
3125
+ readonly type: "core::starknet::contract_address::ContractAddress";
3126
+ }];
3127
+ readonly outputs: readonly [{
3128
+ readonly type: "(core::integer::u256, core::integer::u256, core::integer::u256)";
3129
+ }];
3130
+ readonly state_mutability: "external";
3131
+ }, {
3132
+ readonly name: "after_liquidate_position";
3133
+ readonly type: "function";
3134
+ readonly inputs: readonly [{
3135
+ readonly name: "context";
3136
+ readonly type: "vesu::data_model::Context";
3137
+ }, {
3138
+ readonly name: "collateral_delta";
3139
+ readonly type: "alexandria_math::i257::i257";
3140
+ }, {
3141
+ readonly name: "collateral_shares_delta";
3142
+ readonly type: "alexandria_math::i257::i257";
3143
+ }, {
3144
+ readonly name: "debt_delta";
3145
+ readonly type: "alexandria_math::i257::i257";
3146
+ }, {
3147
+ readonly name: "nominal_debt_delta";
3148
+ readonly type: "alexandria_math::i257::i257";
3149
+ }, {
3150
+ readonly name: "bad_debt";
3151
+ readonly type: "core::integer::u256";
3152
+ }, {
3153
+ readonly name: "data";
3154
+ readonly type: "core::array::Span::<core::felt252>";
3155
+ }, {
3156
+ readonly name: "caller";
3157
+ readonly type: "core::starknet::contract_address::ContractAddress";
3158
+ }];
3159
+ readonly outputs: readonly [{
3160
+ readonly type: "core::bool";
3161
+ }];
3162
+ readonly state_mutability: "external";
3163
+ }];
3164
+ }, {
3165
+ readonly name: "constructor";
3166
+ readonly type: "constructor";
3167
+ readonly inputs: readonly [{
3168
+ readonly name: "singleton";
3169
+ readonly type: "core::starknet::contract_address::ContractAddress";
3170
+ }, {
3171
+ readonly name: "oracle_address";
3172
+ readonly type: "core::starknet::contract_address::ContractAddress";
3173
+ }, {
3174
+ readonly name: "v_token_class_hash";
3175
+ readonly type: "core::felt252";
3176
+ }];
3177
+ }, {
3178
+ readonly kind: "struct";
3179
+ readonly name: "vesu::extension::components::position_hooks::position_hooks_component::SetLiquidationConfig";
3180
+ readonly type: "event";
3181
+ readonly members: readonly [{
3182
+ readonly kind: "data";
3183
+ readonly name: "pool_id";
3184
+ readonly type: "core::felt252";
3185
+ }, {
3186
+ readonly kind: "data";
3187
+ readonly name: "collateral_asset";
3188
+ readonly type: "core::starknet::contract_address::ContractAddress";
3189
+ }, {
3190
+ readonly kind: "data";
3191
+ readonly name: "debt_asset";
3192
+ readonly type: "core::starknet::contract_address::ContractAddress";
3193
+ }, {
3194
+ readonly kind: "data";
3195
+ readonly name: "liquidation_config";
3196
+ readonly type: "vesu::extension::components::position_hooks::LiquidationConfig";
3197
+ }];
3198
+ }, {
3199
+ readonly kind: "struct";
3200
+ readonly name: "vesu::extension::components::position_hooks::position_hooks_component::SetShutdownConfig";
3201
+ readonly type: "event";
3202
+ readonly members: readonly [{
3203
+ readonly kind: "data";
3204
+ readonly name: "pool_id";
3205
+ readonly type: "core::felt252";
3206
+ }, {
3207
+ readonly kind: "data";
3208
+ readonly name: "shutdown_config";
3209
+ readonly type: "vesu::extension::components::position_hooks::ShutdownConfig";
3210
+ }];
3211
+ }, {
3212
+ readonly kind: "struct";
3213
+ readonly name: "vesu::extension::components::position_hooks::position_hooks_component::SetShutdownLTVConfig";
3214
+ readonly type: "event";
3215
+ readonly members: readonly [{
3216
+ readonly kind: "data";
3217
+ readonly name: "pool_id";
3218
+ readonly type: "core::felt252";
3219
+ }, {
3220
+ readonly kind: "data";
3221
+ readonly name: "collateral_asset";
3222
+ readonly type: "core::starknet::contract_address::ContractAddress";
3223
+ }, {
3224
+ readonly kind: "data";
3225
+ readonly name: "debt_asset";
3226
+ readonly type: "core::starknet::contract_address::ContractAddress";
3227
+ }, {
3228
+ readonly kind: "data";
3229
+ readonly name: "shutdown_ltv_config";
3230
+ readonly type: "vesu::data_model::LTVConfig";
3231
+ }];
3232
+ }, {
3233
+ readonly kind: "enum";
3234
+ readonly name: "vesu::extension::components::position_hooks::position_hooks_component::Event";
3235
+ readonly type: "event";
3236
+ readonly variants: readonly [{
3237
+ readonly kind: "nested";
3238
+ readonly name: "SetLiquidationConfig";
3239
+ readonly type: "vesu::extension::components::position_hooks::position_hooks_component::SetLiquidationConfig";
3240
+ }, {
3241
+ readonly kind: "nested";
3242
+ readonly name: "SetShutdownConfig";
3243
+ readonly type: "vesu::extension::components::position_hooks::position_hooks_component::SetShutdownConfig";
3244
+ }, {
3245
+ readonly kind: "nested";
3246
+ readonly name: "SetShutdownLTVConfig";
3247
+ readonly type: "vesu::extension::components::position_hooks::position_hooks_component::SetShutdownLTVConfig";
3248
+ }];
3249
+ }, {
3250
+ readonly kind: "struct";
3251
+ readonly name: "vesu::extension::components::interest_rate_model::interest_rate_model_component::SetInterestRateConfig";
3252
+ readonly type: "event";
3253
+ readonly members: readonly [{
3254
+ readonly kind: "data";
3255
+ readonly name: "pool_id";
3256
+ readonly type: "core::felt252";
3257
+ }, {
3258
+ readonly kind: "data";
3259
+ readonly name: "asset";
3260
+ readonly type: "core::starknet::contract_address::ContractAddress";
3261
+ }, {
3262
+ readonly kind: "data";
3263
+ readonly name: "interest_rate_config";
3264
+ readonly type: "vesu::extension::components::interest_rate_model::InterestRateConfig";
3265
+ }];
3266
+ }, {
3267
+ readonly kind: "enum";
3268
+ readonly name: "vesu::extension::components::interest_rate_model::interest_rate_model_component::Event";
3269
+ readonly type: "event";
3270
+ readonly variants: readonly [{
3271
+ readonly kind: "nested";
3272
+ readonly name: "SetInterestRateConfig";
3273
+ readonly type: "vesu::extension::components::interest_rate_model::interest_rate_model_component::SetInterestRateConfig";
3274
+ }];
3275
+ }, {
3276
+ readonly kind: "struct";
3277
+ readonly name: "vesu::extension::components::pragma_oracle::pragma_oracle_component::SetOracleConfig";
3278
+ readonly type: "event";
3279
+ readonly members: readonly [{
3280
+ readonly kind: "data";
3281
+ readonly name: "pool_id";
3282
+ readonly type: "core::felt252";
3283
+ }, {
3284
+ readonly kind: "data";
3285
+ readonly name: "asset";
3286
+ readonly type: "core::starknet::contract_address::ContractAddress";
3287
+ }, {
3288
+ readonly kind: "data";
3289
+ readonly name: "oracle_config";
3290
+ readonly type: "vesu::extension::components::pragma_oracle::OracleConfig";
3291
+ }];
3292
+ }, {
3293
+ readonly kind: "struct";
3294
+ readonly name: "vesu::extension::components::pragma_oracle::pragma_oracle_component::SetOracleParameter";
3295
+ readonly type: "event";
3296
+ readonly members: readonly [{
3297
+ readonly kind: "data";
3298
+ readonly name: "pool_id";
3299
+ readonly type: "core::felt252";
3300
+ }, {
3301
+ readonly kind: "data";
3302
+ readonly name: "asset";
3303
+ readonly type: "core::starknet::contract_address::ContractAddress";
3304
+ }, {
3305
+ readonly kind: "data";
3306
+ readonly name: "parameter";
3307
+ readonly type: "core::felt252";
3308
+ }, {
3309
+ readonly kind: "data";
3310
+ readonly name: "value";
3311
+ readonly type: "core::integer::u64";
3312
+ }];
3313
+ }, {
3314
+ readonly kind: "enum";
3315
+ readonly name: "vesu::extension::components::pragma_oracle::pragma_oracle_component::Event";
3316
+ readonly type: "event";
3317
+ readonly variants: readonly [{
3318
+ readonly kind: "nested";
3319
+ readonly name: "SetOracleConfig";
3320
+ readonly type: "vesu::extension::components::pragma_oracle::pragma_oracle_component::SetOracleConfig";
3321
+ }, {
3322
+ readonly kind: "nested";
3323
+ readonly name: "SetOracleParameter";
3324
+ readonly type: "vesu::extension::components::pragma_oracle::pragma_oracle_component::SetOracleParameter";
3325
+ }];
3326
+ }, {
3327
+ readonly kind: "enum";
3328
+ readonly name: "vesu::map_list::map_list_component::Event";
3329
+ readonly type: "event";
3330
+ readonly variants: readonly [];
3331
+ }, {
3332
+ readonly kind: "struct";
3333
+ readonly name: "vesu::extension::components::fee_model::fee_model_component::SetFeeConfig";
3334
+ readonly type: "event";
3335
+ readonly members: readonly [{
3336
+ readonly kind: "key";
3337
+ readonly name: "pool_id";
3338
+ readonly type: "core::felt252";
3339
+ }, {
3340
+ readonly kind: "key";
3341
+ readonly name: "fee_config";
3342
+ readonly type: "vesu::extension::components::fee_model::FeeConfig";
3343
+ }];
3344
+ }, {
3345
+ readonly kind: "struct";
3346
+ readonly name: "vesu::extension::components::fee_model::fee_model_component::ClaimFees";
3347
+ readonly type: "event";
3348
+ readonly members: readonly [{
3349
+ readonly kind: "key";
3350
+ readonly name: "pool_id";
3351
+ readonly type: "core::felt252";
3352
+ }, {
3353
+ readonly kind: "data";
3354
+ readonly name: "collateral_asset";
3355
+ readonly type: "core::starknet::contract_address::ContractAddress";
3356
+ }, {
3357
+ readonly kind: "data";
3358
+ readonly name: "debt_asset";
3359
+ readonly type: "core::starknet::contract_address::ContractAddress";
3360
+ }, {
3361
+ readonly kind: "data";
3362
+ readonly name: "recipient";
3363
+ readonly type: "core::starknet::contract_address::ContractAddress";
3364
+ }, {
3365
+ readonly kind: "data";
3366
+ readonly name: "amount";
3367
+ readonly type: "core::integer::u256";
3368
+ }];
3369
+ }, {
3370
+ readonly kind: "enum";
3371
+ readonly name: "vesu::extension::components::fee_model::fee_model_component::Event";
3372
+ readonly type: "event";
3373
+ readonly variants: readonly [{
3374
+ readonly kind: "nested";
3375
+ readonly name: "SetFeeConfig";
3376
+ readonly type: "vesu::extension::components::fee_model::fee_model_component::SetFeeConfig";
3377
+ }, {
3378
+ readonly kind: "nested";
3379
+ readonly name: "ClaimFees";
3380
+ readonly type: "vesu::extension::components::fee_model::fee_model_component::ClaimFees";
3381
+ }];
3382
+ }, {
3383
+ readonly kind: "enum";
3384
+ readonly name: "vesu::extension::components::tokenization::tokenization_component::Event";
3385
+ readonly type: "event";
3386
+ readonly variants: readonly [];
3387
+ }, {
3388
+ readonly kind: "struct";
3389
+ readonly name: "vesu::extension::default_extension::DefaultExtension::SetAssetParameter";
3390
+ readonly type: "event";
3391
+ readonly members: readonly [{
3392
+ readonly kind: "key";
3393
+ readonly name: "pool_id";
3394
+ readonly type: "core::felt252";
3395
+ }, {
3396
+ readonly kind: "key";
3397
+ readonly name: "asset";
3398
+ readonly type: "core::starknet::contract_address::ContractAddress";
3399
+ }, {
3400
+ readonly kind: "key";
3401
+ readonly name: "parameter";
3402
+ readonly type: "core::felt252";
3403
+ }, {
3404
+ readonly kind: "data";
3405
+ readonly name: "value";
3406
+ readonly type: "core::integer::u256";
3407
+ }];
3408
+ }, {
3409
+ readonly kind: "struct";
3410
+ readonly name: "vesu::extension::default_extension::DefaultExtension::SetPoolOwner";
3411
+ readonly type: "event";
3412
+ readonly members: readonly [{
3413
+ readonly kind: "key";
3414
+ readonly name: "pool_id";
3415
+ readonly type: "core::felt252";
3416
+ }, {
3417
+ readonly kind: "key";
3418
+ readonly name: "owner";
3419
+ readonly type: "core::starknet::contract_address::ContractAddress";
3420
+ }];
3421
+ }, {
3422
+ readonly kind: "enum";
3423
+ readonly name: "vesu::extension::default_extension::DefaultExtension::Event";
3424
+ readonly type: "event";
3425
+ readonly variants: readonly [{
3426
+ readonly kind: "nested";
3427
+ readonly name: "PositionHooksEvents";
3428
+ readonly type: "vesu::extension::components::position_hooks::position_hooks_component::Event";
3429
+ }, {
3430
+ readonly kind: "nested";
3431
+ readonly name: "InterestRateModelEvents";
3432
+ readonly type: "vesu::extension::components::interest_rate_model::interest_rate_model_component::Event";
3433
+ }, {
3434
+ readonly kind: "nested";
3435
+ readonly name: "PragmaOracleEvents";
3436
+ readonly type: "vesu::extension::components::pragma_oracle::pragma_oracle_component::Event";
3437
+ }, {
3438
+ readonly kind: "nested";
3439
+ readonly name: "MapListEvents";
3440
+ readonly type: "vesu::map_list::map_list_component::Event";
3441
+ }, {
3442
+ readonly kind: "nested";
3443
+ readonly name: "FeeModelEvents";
3444
+ readonly type: "vesu::extension::components::fee_model::fee_model_component::Event";
3445
+ }, {
3446
+ readonly kind: "nested";
3447
+ readonly name: "TokenizationEvents";
3448
+ readonly type: "vesu::extension::components::tokenization::tokenization_component::Event";
3449
+ }, {
3450
+ readonly kind: "nested";
3451
+ readonly name: "SetAssetParameter";
3452
+ readonly type: "vesu::extension::default_extension::DefaultExtension::SetAssetParameter";
3453
+ }, {
3454
+ readonly kind: "nested";
3455
+ readonly name: "SetPoolOwner";
3456
+ readonly type: "vesu::extension::default_extension::DefaultExtension::SetPoolOwner";
3457
+ }];
3458
+ }]>;