@strkfarm/sdk 1.2.1 → 2.0.0-dca.0.3

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 (42) hide show
  1. package/dist/cli.js +9 -5
  2. package/dist/cli.mjs +9 -5
  3. package/dist/index.browser.global.js +67052 -40451
  4. package/dist/index.browser.mjs +5241 -1907
  5. package/dist/index.d.ts +483 -33
  6. package/dist/index.js +5523 -2155
  7. package/dist/index.mjs +5460 -2124
  8. package/package.json +4 -1
  9. package/src/data/ekubo-price-fethcer.abi.json +265 -0
  10. package/src/data/yoloVault.abi.json +777 -0
  11. package/src/dataTypes/_bignumber.ts +5 -0
  12. package/src/dataTypes/bignumber.browser.ts +5 -0
  13. package/src/dataTypes/bignumber.node.ts +5 -0
  14. package/src/dataTypes/index.ts +3 -2
  15. package/src/dataTypes/mynumber.ts +141 -0
  16. package/src/global.ts +42 -0
  17. package/src/index.browser.ts +2 -1
  18. package/src/interfaces/common.tsx +168 -2
  19. package/src/modules/apollo-client-config.ts +28 -0
  20. package/src/modules/avnu.ts +1 -1
  21. package/src/modules/ekubo-pricer.ts +79 -0
  22. package/src/modules/erc20.ts +18 -2
  23. package/src/modules/pragma.ts +23 -8
  24. package/src/modules/pricer-from-api.ts +150 -14
  25. package/src/modules/pricer.ts +2 -1
  26. package/src/modules/pricerBase.ts +2 -1
  27. package/src/node/pricer-redis.ts +2 -1
  28. package/src/strategies/base-strategy.ts +81 -2
  29. package/src/strategies/ekubo-cl-vault.tsx +684 -316
  30. package/src/strategies/factory.ts +179 -0
  31. package/src/strategies/index.ts +5 -1
  32. package/src/strategies/registry.ts +240 -0
  33. package/src/strategies/sensei.ts +335 -7
  34. package/src/strategies/types.ts +4 -0
  35. package/src/strategies/universal-adapters/vesu-adapter.ts +48 -27
  36. package/src/strategies/universal-lst-muliplier-strategy.tsx +1405 -463
  37. package/src/strategies/universal-strategy.tsx +287 -129
  38. package/src/strategies/vesu-rebalance.tsx +242 -146
  39. package/src/strategies/yoloVault.ts +499 -0
  40. package/src/utils/index.ts +1 -1
  41. package/src/utils/logger.node.ts +11 -4
  42. package/src/utils/strategy-utils.ts +61 -0
@@ -0,0 +1,777 @@
1
+ [
2
+ {
3
+ "type": "impl",
4
+ "name": "YoloERC20Impl",
5
+ "interface_name": "openzeppelin_token::erc20::interface::IERC20Mixin"
6
+ },
7
+ {
8
+ "type": "struct",
9
+ "name": "core::integer::u256",
10
+ "members": [
11
+ { "name": "low", "type": "core::integer::u128" },
12
+ { "name": "high", "type": "core::integer::u128" }
13
+ ]
14
+ },
15
+ {
16
+ "type": "enum",
17
+ "name": "core::bool",
18
+ "variants": [
19
+ { "name": "False", "type": "()" },
20
+ { "name": "True", "type": "()" }
21
+ ]
22
+ },
23
+ {
24
+ "type": "struct",
25
+ "name": "core::byte_array::ByteArray",
26
+ "members": [
27
+ {
28
+ "name": "data",
29
+ "type": "core::array::Array::<core::bytes_31::bytes31>"
30
+ },
31
+ { "name": "pending_word", "type": "core::felt252" },
32
+ {
33
+ "name": "pending_word_len",
34
+ "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "type": "interface",
40
+ "name": "openzeppelin_token::erc20::interface::IERC20Mixin",
41
+ "items": [
42
+ {
43
+ "type": "function",
44
+ "name": "total_supply",
45
+ "inputs": [],
46
+ "outputs": [{ "type": "core::integer::u256" }],
47
+ "state_mutability": "view"
48
+ },
49
+ {
50
+ "type": "function",
51
+ "name": "balance_of",
52
+ "inputs": [
53
+ {
54
+ "name": "account",
55
+ "type": "core::starknet::contract_address::ContractAddress"
56
+ }
57
+ ],
58
+ "outputs": [{ "type": "core::integer::u256" }],
59
+ "state_mutability": "view"
60
+ },
61
+ {
62
+ "type": "function",
63
+ "name": "allowance",
64
+ "inputs": [
65
+ {
66
+ "name": "owner",
67
+ "type": "core::starknet::contract_address::ContractAddress"
68
+ },
69
+ {
70
+ "name": "spender",
71
+ "type": "core::starknet::contract_address::ContractAddress"
72
+ }
73
+ ],
74
+ "outputs": [{ "type": "core::integer::u256" }],
75
+ "state_mutability": "view"
76
+ },
77
+ {
78
+ "type": "function",
79
+ "name": "transfer",
80
+ "inputs": [
81
+ {
82
+ "name": "recipient",
83
+ "type": "core::starknet::contract_address::ContractAddress"
84
+ },
85
+ { "name": "amount", "type": "core::integer::u256" }
86
+ ],
87
+ "outputs": [{ "type": "core::bool" }],
88
+ "state_mutability": "external"
89
+ },
90
+ {
91
+ "type": "function",
92
+ "name": "transfer_from",
93
+ "inputs": [
94
+ {
95
+ "name": "sender",
96
+ "type": "core::starknet::contract_address::ContractAddress"
97
+ },
98
+ {
99
+ "name": "recipient",
100
+ "type": "core::starknet::contract_address::ContractAddress"
101
+ },
102
+ { "name": "amount", "type": "core::integer::u256" }
103
+ ],
104
+ "outputs": [{ "type": "core::bool" }],
105
+ "state_mutability": "external"
106
+ },
107
+ {
108
+ "type": "function",
109
+ "name": "approve",
110
+ "inputs": [
111
+ {
112
+ "name": "spender",
113
+ "type": "core::starknet::contract_address::ContractAddress"
114
+ },
115
+ { "name": "amount", "type": "core::integer::u256" }
116
+ ],
117
+ "outputs": [{ "type": "core::bool" }],
118
+ "state_mutability": "external"
119
+ },
120
+ {
121
+ "type": "function",
122
+ "name": "name",
123
+ "inputs": [],
124
+ "outputs": [{ "type": "core::byte_array::ByteArray" }],
125
+ "state_mutability": "view"
126
+ },
127
+ {
128
+ "type": "function",
129
+ "name": "symbol",
130
+ "inputs": [],
131
+ "outputs": [{ "type": "core::byte_array::ByteArray" }],
132
+ "state_mutability": "view"
133
+ },
134
+ {
135
+ "type": "function",
136
+ "name": "decimals",
137
+ "inputs": [],
138
+ "outputs": [{ "type": "core::integer::u8" }],
139
+ "state_mutability": "view"
140
+ },
141
+ {
142
+ "type": "function",
143
+ "name": "totalSupply",
144
+ "inputs": [],
145
+ "outputs": [{ "type": "core::integer::u256" }],
146
+ "state_mutability": "view"
147
+ },
148
+ {
149
+ "type": "function",
150
+ "name": "balanceOf",
151
+ "inputs": [
152
+ {
153
+ "name": "account",
154
+ "type": "core::starknet::contract_address::ContractAddress"
155
+ }
156
+ ],
157
+ "outputs": [{ "type": "core::integer::u256" }],
158
+ "state_mutability": "view"
159
+ },
160
+ {
161
+ "type": "function",
162
+ "name": "transferFrom",
163
+ "inputs": [
164
+ {
165
+ "name": "sender",
166
+ "type": "core::starknet::contract_address::ContractAddress"
167
+ },
168
+ {
169
+ "name": "recipient",
170
+ "type": "core::starknet::contract_address::ContractAddress"
171
+ },
172
+ { "name": "amount", "type": "core::integer::u256" }
173
+ ],
174
+ "outputs": [{ "type": "core::bool" }],
175
+ "state_mutability": "external"
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "type": "impl",
181
+ "name": "YoloVaultImpl",
182
+ "interface_name": "contracts_private::strategies::yolo_vault::interface::IYoloVault"
183
+ },
184
+ {
185
+ "type": "struct",
186
+ "name": "strkfarm_contracts::components::swap::Route",
187
+ "members": [
188
+ {
189
+ "name": "token_from",
190
+ "type": "core::starknet::contract_address::ContractAddress"
191
+ },
192
+ {
193
+ "name": "token_to",
194
+ "type": "core::starknet::contract_address::ContractAddress"
195
+ },
196
+ {
197
+ "name": "exchange_address",
198
+ "type": "core::starknet::contract_address::ContractAddress"
199
+ },
200
+ { "name": "percent", "type": "core::integer::u128" },
201
+ {
202
+ "name": "additional_swap_params",
203
+ "type": "core::array::Array::<core::felt252>"
204
+ }
205
+ ]
206
+ },
207
+ {
208
+ "type": "struct",
209
+ "name": "strkfarm_contracts::components::swap::AvnuMultiRouteSwap",
210
+ "members": [
211
+ {
212
+ "name": "token_from_address",
213
+ "type": "core::starknet::contract_address::ContractAddress"
214
+ },
215
+ { "name": "token_from_amount", "type": "core::integer::u256" },
216
+ {
217
+ "name": "token_to_address",
218
+ "type": "core::starknet::contract_address::ContractAddress"
219
+ },
220
+ { "name": "token_to_amount", "type": "core::integer::u256" },
221
+ { "name": "token_to_min_amount", "type": "core::integer::u256" },
222
+ {
223
+ "name": "beneficiary",
224
+ "type": "core::starknet::contract_address::ContractAddress"
225
+ },
226
+ { "name": "integrator_fee_amount_bps", "type": "core::integer::u128" },
227
+ {
228
+ "name": "integrator_fee_recipient",
229
+ "type": "core::starknet::contract_address::ContractAddress"
230
+ },
231
+ {
232
+ "name": "routes",
233
+ "type": "core::array::Array::<strkfarm_contracts::components::swap::Route>"
234
+ }
235
+ ]
236
+ },
237
+ {
238
+ "type": "struct",
239
+ "name": "contracts_private::strategies::yolo_vault::interface::YoloFeeSettings",
240
+ "members": [
241
+ { "name": "swap_fee_bps", "type": "core::integer::u256" },
242
+ { "name": "performance_fee_bps", "type": "core::integer::u256" },
243
+ {
244
+ "name": "fee_receiver",
245
+ "type": "core::starknet::contract_address::ContractAddress"
246
+ }
247
+ ]
248
+ },
249
+ {
250
+ "type": "struct",
251
+ "name": "contracts_private::strategies::yolo_vault::interface::YoloVaultStatus",
252
+ "members": [
253
+ { "name": "current_epoch", "type": "core::integer::u256" },
254
+ { "name": "total_epochs", "type": "core::integer::u256" },
255
+ { "name": "remaining_base", "type": "core::integer::u256" },
256
+ { "name": "total_second_tokens", "type": "core::integer::u256" },
257
+ { "name": "global_second_token_index", "type": "core::integer::u256" },
258
+ { "name": "total_shares", "type": "core::integer::u256" },
259
+ { "name": "base_token_assets_per_share", "type": "core::integer::u256" }
260
+ ]
261
+ },
262
+ {
263
+ "type": "struct",
264
+ "name": "contracts_private::strategies::yolo_vault::interface::UserYoloInfo",
265
+ "members": [
266
+ { "name": "shares", "type": "core::integer::u256" },
267
+ { "name": "claimable_second_tokens", "type": "core::integer::u256" },
268
+ { "name": "base_token_balance", "type": "core::integer::u256" },
269
+ { "name": "second_token_last_index", "type": "core::integer::u256" },
270
+ { "name": "second_token_balance", "type": "core::integer::u256" }
271
+ ]
272
+ },
273
+ {
274
+ "type": "struct",
275
+ "name": "contracts_private::strategies::yolo_vault::interface::YoloSettings",
276
+ "members": [
277
+ {
278
+ "name": "base_token",
279
+ "type": "core::starknet::contract_address::ContractAddress"
280
+ },
281
+ {
282
+ "name": "second_token",
283
+ "type": "core::starknet::contract_address::ContractAddress"
284
+ },
285
+ { "name": "total_epochs", "type": "core::integer::u256" },
286
+ { "name": "min_time_per_epoch", "type": "core::integer::u64" },
287
+ { "name": "max_spend_units_per_epoch", "type": "core::integer::u256" },
288
+ {
289
+ "name": "oracle",
290
+ "type": "core::starknet::contract_address::ContractAddress"
291
+ }
292
+ ]
293
+ },
294
+ {
295
+ "type": "interface",
296
+ "name": "contracts_private::strategies::yolo_vault::interface::IYoloVault",
297
+ "items": [
298
+ {
299
+ "type": "function",
300
+ "name": "deposit",
301
+ "inputs": [
302
+ { "name": "base_token_amount", "type": "core::integer::u256" }
303
+ ],
304
+ "outputs": [],
305
+ "state_mutability": "external"
306
+ },
307
+ {
308
+ "type": "function",
309
+ "name": "redeem",
310
+ "inputs": [{ "name": "shares", "type": "core::integer::u256" }],
311
+ "outputs": [],
312
+ "state_mutability": "external"
313
+ },
314
+ {
315
+ "type": "function",
316
+ "name": "execute_swap",
317
+ "inputs": [
318
+ { "name": "spend_units", "type": "core::integer::u256" },
319
+ {
320
+ "name": "swap_params",
321
+ "type": "strkfarm_contracts::components::swap::AvnuMultiRouteSwap"
322
+ }
323
+ ],
324
+ "outputs": [],
325
+ "state_mutability": "external"
326
+ },
327
+ {
328
+ "type": "function",
329
+ "name": "update_fee_settings",
330
+ "inputs": [
331
+ {
332
+ "name": "new_settings",
333
+ "type": "contracts_private::strategies::yolo_vault::interface::YoloFeeSettings"
334
+ }
335
+ ],
336
+ "outputs": [],
337
+ "state_mutability": "external"
338
+ },
339
+ {
340
+ "type": "function",
341
+ "name": "get_user_claimable_second_tokens",
342
+ "inputs": [
343
+ {
344
+ "name": "user",
345
+ "type": "core::starknet::contract_address::ContractAddress"
346
+ }
347
+ ],
348
+ "outputs": [{ "type": "core::integer::u256" }],
349
+ "state_mutability": "view"
350
+ },
351
+ {
352
+ "type": "function",
353
+ "name": "get_user_base_token_balance",
354
+ "inputs": [
355
+ {
356
+ "name": "user",
357
+ "type": "core::starknet::contract_address::ContractAddress"
358
+ }
359
+ ],
360
+ "outputs": [{ "type": "core::integer::u256" }],
361
+ "state_mutability": "view"
362
+ },
363
+ {
364
+ "type": "function",
365
+ "name": "get_vault_status",
366
+ "inputs": [],
367
+ "outputs": [
368
+ {
369
+ "type": "contracts_private::strategies::yolo_vault::interface::YoloVaultStatus"
370
+ }
371
+ ],
372
+ "state_mutability": "view"
373
+ },
374
+ {
375
+ "type": "function",
376
+ "name": "get_user_info",
377
+ "inputs": [
378
+ {
379
+ "name": "user",
380
+ "type": "core::starknet::contract_address::ContractAddress"
381
+ }
382
+ ],
383
+ "outputs": [
384
+ {
385
+ "type": "contracts_private::strategies::yolo_vault::interface::UserYoloInfo"
386
+ }
387
+ ],
388
+ "state_mutability": "view"
389
+ },
390
+ {
391
+ "type": "function",
392
+ "name": "get_settings",
393
+ "inputs": [],
394
+ "outputs": [
395
+ {
396
+ "type": "contracts_private::strategies::yolo_vault::interface::YoloSettings"
397
+ }
398
+ ],
399
+ "state_mutability": "view"
400
+ },
401
+ {
402
+ "type": "function",
403
+ "name": "get_fee_settings",
404
+ "inputs": [],
405
+ "outputs": [
406
+ {
407
+ "type": "contracts_private::strategies::yolo_vault::interface::YoloFeeSettings"
408
+ }
409
+ ],
410
+ "state_mutability": "view"
411
+ },
412
+ {
413
+ "type": "function",
414
+ "name": "get_shares_on_deposit",
415
+ "inputs": [
416
+ { "name": "base_token_amount", "type": "core::integer::u256" }
417
+ ],
418
+ "outputs": [{ "type": "core::integer::u256" }],
419
+ "state_mutability": "view"
420
+ }
421
+ ]
422
+ },
423
+ {
424
+ "type": "impl",
425
+ "name": "CommonCompImpl",
426
+ "interface_name": "strkfarm_contracts::interfaces::common::ICommon"
427
+ },
428
+ {
429
+ "type": "interface",
430
+ "name": "strkfarm_contracts::interfaces::common::ICommon",
431
+ "items": [
432
+ {
433
+ "type": "function",
434
+ "name": "upgrade",
435
+ "inputs": [
436
+ {
437
+ "name": "new_class",
438
+ "type": "core::starknet::class_hash::ClassHash"
439
+ }
440
+ ],
441
+ "outputs": [],
442
+ "state_mutability": "external"
443
+ },
444
+ {
445
+ "type": "function",
446
+ "name": "pause",
447
+ "inputs": [],
448
+ "outputs": [],
449
+ "state_mutability": "external"
450
+ },
451
+ {
452
+ "type": "function",
453
+ "name": "unpause",
454
+ "inputs": [],
455
+ "outputs": [],
456
+ "state_mutability": "external"
457
+ },
458
+ {
459
+ "type": "function",
460
+ "name": "is_paused",
461
+ "inputs": [],
462
+ "outputs": [{ "type": "core::bool" }],
463
+ "state_mutability": "view"
464
+ },
465
+ {
466
+ "type": "function",
467
+ "name": "access_control",
468
+ "inputs": [],
469
+ "outputs": [
470
+ { "type": "core::starknet::contract_address::ContractAddress" }
471
+ ],
472
+ "state_mutability": "view"
473
+ }
474
+ ]
475
+ },
476
+ {
477
+ "type": "constructor",
478
+ "name": "constructor",
479
+ "inputs": [
480
+ { "name": "name", "type": "core::byte_array::ByteArray" },
481
+ { "name": "symbol", "type": "core::byte_array::ByteArray" },
482
+ {
483
+ "name": "access_control",
484
+ "type": "core::starknet::contract_address::ContractAddress"
485
+ },
486
+ {
487
+ "name": "base_token",
488
+ "type": "core::starknet::contract_address::ContractAddress"
489
+ },
490
+ {
491
+ "name": "second_token",
492
+ "type": "core::starknet::contract_address::ContractAddress"
493
+ },
494
+ { "name": "total_epochs", "type": "core::integer::u256" },
495
+ { "name": "min_time_per_epoch", "type": "core::integer::u64" },
496
+ { "name": "max_spend_units_per_epoch", "type": "core::integer::u256" },
497
+ { "name": "base_token_assets_per_share", "type": "core::integer::u256" },
498
+ {
499
+ "name": "oracle",
500
+ "type": "core::starknet::contract_address::ContractAddress"
501
+ },
502
+ { "name": "swap_fee_bps", "type": "core::integer::u256" },
503
+ { "name": "performance_fee_bps", "type": "core::integer::u256" },
504
+ {
505
+ "name": "fee_receiver",
506
+ "type": "core::starknet::contract_address::ContractAddress"
507
+ }
508
+ ]
509
+ },
510
+ {
511
+ "type": "event",
512
+ "name": "openzeppelin_security::reentrancyguard::ReentrancyGuardComponent::Event",
513
+ "kind": "enum",
514
+ "variants": []
515
+ },
516
+ {
517
+ "type": "event",
518
+ "name": "openzeppelin_token::erc20::erc20::ERC20Component::Transfer",
519
+ "kind": "struct",
520
+ "members": [
521
+ {
522
+ "name": "from",
523
+ "type": "core::starknet::contract_address::ContractAddress",
524
+ "kind": "key"
525
+ },
526
+ {
527
+ "name": "to",
528
+ "type": "core::starknet::contract_address::ContractAddress",
529
+ "kind": "key"
530
+ },
531
+ { "name": "value", "type": "core::integer::u256", "kind": "data" }
532
+ ]
533
+ },
534
+ {
535
+ "type": "event",
536
+ "name": "openzeppelin_token::erc20::erc20::ERC20Component::Approval",
537
+ "kind": "struct",
538
+ "members": [
539
+ {
540
+ "name": "owner",
541
+ "type": "core::starknet::contract_address::ContractAddress",
542
+ "kind": "key"
543
+ },
544
+ {
545
+ "name": "spender",
546
+ "type": "core::starknet::contract_address::ContractAddress",
547
+ "kind": "key"
548
+ },
549
+ { "name": "value", "type": "core::integer::u256", "kind": "data" }
550
+ ]
551
+ },
552
+ {
553
+ "type": "event",
554
+ "name": "openzeppelin_token::erc20::erc20::ERC20Component::Event",
555
+ "kind": "enum",
556
+ "variants": [
557
+ {
558
+ "name": "Transfer",
559
+ "type": "openzeppelin_token::erc20::erc20::ERC20Component::Transfer",
560
+ "kind": "nested"
561
+ },
562
+ {
563
+ "name": "Approval",
564
+ "type": "openzeppelin_token::erc20::erc20::ERC20Component::Approval",
565
+ "kind": "nested"
566
+ }
567
+ ]
568
+ },
569
+ {
570
+ "type": "event",
571
+ "name": "openzeppelin_introspection::src5::SRC5Component::Event",
572
+ "kind": "enum",
573
+ "variants": []
574
+ },
575
+ {
576
+ "type": "event",
577
+ "name": "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Upgraded",
578
+ "kind": "struct",
579
+ "members": [
580
+ {
581
+ "name": "class_hash",
582
+ "type": "core::starknet::class_hash::ClassHash",
583
+ "kind": "data"
584
+ }
585
+ ]
586
+ },
587
+ {
588
+ "type": "event",
589
+ "name": "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Event",
590
+ "kind": "enum",
591
+ "variants": [
592
+ {
593
+ "name": "Upgraded",
594
+ "type": "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Upgraded",
595
+ "kind": "nested"
596
+ }
597
+ ]
598
+ },
599
+ {
600
+ "type": "event",
601
+ "name": "openzeppelin_security::pausable::PausableComponent::Paused",
602
+ "kind": "struct",
603
+ "members": [
604
+ {
605
+ "name": "account",
606
+ "type": "core::starknet::contract_address::ContractAddress",
607
+ "kind": "data"
608
+ }
609
+ ]
610
+ },
611
+ {
612
+ "type": "event",
613
+ "name": "openzeppelin_security::pausable::PausableComponent::Unpaused",
614
+ "kind": "struct",
615
+ "members": [
616
+ {
617
+ "name": "account",
618
+ "type": "core::starknet::contract_address::ContractAddress",
619
+ "kind": "data"
620
+ }
621
+ ]
622
+ },
623
+ {
624
+ "type": "event",
625
+ "name": "openzeppelin_security::pausable::PausableComponent::Event",
626
+ "kind": "enum",
627
+ "variants": [
628
+ {
629
+ "name": "Paused",
630
+ "type": "openzeppelin_security::pausable::PausableComponent::Paused",
631
+ "kind": "nested"
632
+ },
633
+ {
634
+ "name": "Unpaused",
635
+ "type": "openzeppelin_security::pausable::PausableComponent::Unpaused",
636
+ "kind": "nested"
637
+ }
638
+ ]
639
+ },
640
+ {
641
+ "type": "event",
642
+ "name": "strkfarm_contracts::components::common::CommonComp::Event",
643
+ "kind": "enum",
644
+ "variants": []
645
+ },
646
+ {
647
+ "type": "event",
648
+ "name": "contracts_private::strategies::yolo_vault::interface::Deposit",
649
+ "kind": "struct",
650
+ "members": [
651
+ {
652
+ "name": "user",
653
+ "type": "core::starknet::contract_address::ContractAddress",
654
+ "kind": "key"
655
+ },
656
+ { "name": "base_amount", "type": "core::integer::u256", "kind": "data" },
657
+ { "name": "shares", "type": "core::integer::u256", "kind": "data" }
658
+ ]
659
+ },
660
+ {
661
+ "type": "event",
662
+ "name": "contracts_private::strategies::yolo_vault::interface::Redeem",
663
+ "kind": "struct",
664
+ "members": [
665
+ {
666
+ "name": "user",
667
+ "type": "core::starknet::contract_address::ContractAddress",
668
+ "kind": "key"
669
+ },
670
+ { "name": "shares", "type": "core::integer::u256", "kind": "data" },
671
+ { "name": "base_out", "type": "core::integer::u256", "kind": "data" },
672
+ { "name": "second_out", "type": "core::integer::u256", "kind": "data" },
673
+ {
674
+ "name": "performance_fee",
675
+ "type": "core::integer::u256",
676
+ "kind": "data"
677
+ }
678
+ ]
679
+ },
680
+ {
681
+ "type": "event",
682
+ "name": "contracts_private::strategies::yolo_vault::interface::SwapExecuted",
683
+ "kind": "struct",
684
+ "members": [
685
+ { "name": "epoch", "type": "core::integer::u256", "kind": "data" },
686
+ { "name": "spend_units", "type": "core::integer::u256", "kind": "data" },
687
+ { "name": "gross_spend", "type": "core::integer::u256", "kind": "data" },
688
+ { "name": "swap_fee", "type": "core::integer::u256", "kind": "data" },
689
+ { "name": "net_spend", "type": "core::integer::u256", "kind": "data" },
690
+ {
691
+ "name": "second_tokens_acquired",
692
+ "type": "core::integer::u256",
693
+ "kind": "data"
694
+ },
695
+ {
696
+ "name": "new_global_index",
697
+ "type": "core::integer::u256",
698
+ "kind": "data"
699
+ }
700
+ ]
701
+ },
702
+ {
703
+ "type": "event",
704
+ "name": "contracts_private::strategies::yolo_vault::interface::FeeSettingsUpdated",
705
+ "kind": "struct",
706
+ "members": [
707
+ { "name": "swap_fee_bps", "type": "core::integer::u256", "kind": "data" },
708
+ {
709
+ "name": "performance_fee_bps",
710
+ "type": "core::integer::u256",
711
+ "kind": "data"
712
+ },
713
+ {
714
+ "name": "fee_receiver",
715
+ "type": "core::starknet::contract_address::ContractAddress",
716
+ "kind": "data"
717
+ }
718
+ ]
719
+ },
720
+ {
721
+ "type": "event",
722
+ "name": "contracts_private::strategies::yolo_vault::yolo_vault::YoloVault::Event",
723
+ "kind": "enum",
724
+ "variants": [
725
+ {
726
+ "name": "ReentrancyGuardEvent",
727
+ "type": "openzeppelin_security::reentrancyguard::ReentrancyGuardComponent::Event",
728
+ "kind": "flat"
729
+ },
730
+ {
731
+ "name": "ERC20Event",
732
+ "type": "openzeppelin_token::erc20::erc20::ERC20Component::Event",
733
+ "kind": "flat"
734
+ },
735
+ {
736
+ "name": "SRC5Event",
737
+ "type": "openzeppelin_introspection::src5::SRC5Component::Event",
738
+ "kind": "flat"
739
+ },
740
+ {
741
+ "name": "UpgradeableEvent",
742
+ "type": "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Event",
743
+ "kind": "flat"
744
+ },
745
+ {
746
+ "name": "PausableEvent",
747
+ "type": "openzeppelin_security::pausable::PausableComponent::Event",
748
+ "kind": "flat"
749
+ },
750
+ {
751
+ "name": "CommonCompEvent",
752
+ "type": "strkfarm_contracts::components::common::CommonComp::Event",
753
+ "kind": "flat"
754
+ },
755
+ {
756
+ "name": "Deposit",
757
+ "type": "contracts_private::strategies::yolo_vault::interface::Deposit",
758
+ "kind": "nested"
759
+ },
760
+ {
761
+ "name": "Redeem",
762
+ "type": "contracts_private::strategies::yolo_vault::interface::Redeem",
763
+ "kind": "nested"
764
+ },
765
+ {
766
+ "name": "SwapExecuted",
767
+ "type": "contracts_private::strategies::yolo_vault::interface::SwapExecuted",
768
+ "kind": "nested"
769
+ },
770
+ {
771
+ "name": "FeeSettingsUpdated",
772
+ "type": "contracts_private::strategies::yolo_vault::interface::FeeSettingsUpdated",
773
+ "kind": "nested"
774
+ }
775
+ ]
776
+ }
777
+ ]