@merkl/api 0.10.362 → 0.10.377

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 (84) hide show
  1. package/README.md +78 -14
  2. package/dist/database/api/.generated/edge.js +21 -6
  3. package/dist/database/api/.generated/index-browser.js +18 -3
  4. package/dist/database/api/.generated/index.d.ts +1746 -256
  5. package/dist/database/api/.generated/index.js +21 -6
  6. package/dist/database/api/.generated/package.json +1 -1
  7. package/dist/database/api/.generated/schema.prisma +12 -2
  8. package/dist/database/api/.generated/wasm.js +18 -3
  9. package/dist/src/eden/index.d.ts +1041 -140
  10. package/dist/src/entities/campaign.js +2 -1
  11. package/dist/src/entities/opportunity.js +169 -3
  12. package/dist/src/index.d.ts +340 -9
  13. package/dist/src/libs/campaigns/campaignTypes/ERC20DynamicData.js +45 -54
  14. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +3 -1
  15. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +4 -0
  16. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/ERC4626Processor.d.ts +34 -0
  17. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/ERC4626Processor.js +36 -0
  18. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +3 -0
  19. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.js +4 -1
  20. package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.d.ts +5 -0
  21. package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.js +76 -0
  22. package/dist/src/libs/campaigns/campaignsDynamicData.js +8 -0
  23. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +2 -0
  24. package/dist/src/modules/v4/campaign/campaign.model.d.ts +1 -0
  25. package/dist/src/modules/v4/campaign/campaign.model.js +1 -0
  26. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +63 -1
  27. package/dist/src/modules/v4/campaign/campaign.repository.js +15 -10
  28. package/dist/src/modules/v4/computedValue/computedValue.controller.d.ts +7 -4
  29. package/dist/src/modules/v4/computedValue/computedValue.controller.js +7 -5
  30. package/dist/src/modules/v4/computedValue/computedValue.model.js +12 -4
  31. package/dist/src/modules/v4/computedValue/computedValue.repository.d.ts +8 -5
  32. package/dist/src/modules/v4/computedValue/computedValue.repository.js +7 -3
  33. package/dist/src/modules/v4/computedValue/computedValue.service.d.ts +7 -4
  34. package/dist/src/modules/v4/computedValue/computedValue.service.js +10 -0
  35. package/dist/src/modules/v4/creator/creator.controller.d.ts +118 -0
  36. package/dist/src/modules/v4/creator/creator.controller.js +30 -0
  37. package/dist/src/modules/v4/creator/creator.model.d.ts +29 -0
  38. package/dist/src/modules/v4/creator/creator.model.js +18 -0
  39. package/dist/src/modules/v4/creator/creator.repository.d.ts +40 -0
  40. package/dist/src/modules/v4/creator/creator.repository.js +63 -0
  41. package/dist/src/modules/v4/creator/creator.service.d.ts +61 -0
  42. package/dist/src/modules/v4/creator/creator.service.js +44 -0
  43. package/dist/src/modules/v4/creator/index.d.ts +3 -0
  44. package/dist/src/modules/v4/creator/index.js +3 -0
  45. package/dist/src/modules/v4/dynamicData/dynamicData.controller.d.ts +3 -4
  46. package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +1 -1
  47. package/dist/src/modules/v4/dynamicData/dynamicData.model.d.ts +1 -0
  48. package/dist/src/modules/v4/dynamicData/dynamicData.model.js +1 -0
  49. package/dist/src/modules/v4/dynamicData/dynamicData.service.d.ts +6 -3
  50. package/dist/src/modules/v4/dynamicData/dynamicData.service.js +50 -9
  51. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +171 -1
  52. package/dist/src/modules/v4/opportunity/opportunity.controller.js +14 -0
  53. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +0 -1
  54. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +185 -0
  55. package/dist/src/modules/v4/opportunity/opportunity.repository.js +41 -0
  56. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +151 -1
  57. package/dist/src/modules/v4/opportunity/opportunity.service.js +45 -2
  58. package/dist/src/modules/v4/opportunity/subservices/getHyperdriveMetadata.service.d.ts +1 -1
  59. package/dist/src/modules/v4/opportunity/subservices/getHyperdriveMetadata.service.js +2 -2
  60. package/dist/src/modules/v4/programPayload/programPayload.controller.d.ts +30 -0
  61. package/dist/src/modules/v4/programPayload/programPayload.controller.js +12 -1
  62. package/dist/src/modules/v4/programPayload/programPayload.model.d.ts +21 -1
  63. package/dist/src/modules/v4/programPayload/programPayload.model.js +12 -0
  64. package/dist/src/modules/v4/programPayload/programPayload.repository.d.ts +3 -2
  65. package/dist/src/modules/v4/programPayload/programPayload.repository.js +28 -2
  66. package/dist/src/modules/v4/programPayload/programPayload.service.d.ts +2 -1
  67. package/dist/src/modules/v4/programPayload/programPayload.service.js +42 -2
  68. package/dist/src/modules/v4/protocol/protocol.controller.d.ts +1 -0
  69. package/dist/src/modules/v4/protocol/protocol.model.d.ts +1 -0
  70. package/dist/src/modules/v4/protocol/protocol.model.js +1 -0
  71. package/dist/src/modules/v4/reward/reward.repository.d.ts +2 -1
  72. package/dist/src/modules/v4/reward/reward.repository.js +12 -1
  73. package/dist/src/modules/v4/reward/reward.service.js +5 -2
  74. package/dist/src/modules/v4/router.d.ts +340 -9
  75. package/dist/src/modules/v4/router.js +3 -1
  76. package/dist/src/modules/v4/user/user.controller.d.ts +28 -0
  77. package/dist/src/modules/v4/user/user.controller.js +5 -0
  78. package/dist/src/modules/v4/user/user.repository.d.ts +5 -0
  79. package/dist/src/modules/v4/user/user.service.d.ts +5 -0
  80. package/dist/src/utils/decodeCalls.js +7 -1
  81. package/dist/src/utils/encodeCalls.js +19 -1
  82. package/dist/src/utils/generateCardName.js +3 -0
  83. package/dist/tsconfig.package.tsbuildinfo +1 -1
  84. package/package.json +6 -2
@@ -38,7 +38,7 @@ export declare const v4: Elysia<"/v4", false, {
38
38
  status: "NONE" | "PAST" | "LIVE" | "SOON";
39
39
  identifier: string;
40
40
  chainId: number;
41
- action: "INVALID" | "POOL" | "HOLD" | "DROP" | "LEND" | "BORROW" | "LP" | "LONG" | "SHORT";
41
+ action: "INVALID" | "POOL" | "HOLD" | "DROP" | "LEND" | "BORROW" | "LONG" | "SHORT";
42
42
  };
43
43
  params: {};
44
44
  query: unknown;
@@ -363,6 +363,176 @@ export declare const v4: Elysia<"/v4", false, {
363
363
  };
364
364
  };
365
365
  };
366
+ } & {
367
+ opportunities: {
368
+ campaigns: {
369
+ get: {
370
+ body: unknown;
371
+ params: {};
372
+ query: {
373
+ type?: "INVALID" | "ERC20" | "CLAMM" | "ERC20_SNAPSHOT" | "JSON_AIRDROP" | "SILO" | "RADIANT" | "MORPHO" | "DOLOMITE" | "BADGER" | "COMPOUND" | "AJNA" | "EULER" | "UNISWAP_V4" | "ION" | "EIGENLAYER" | "ERC20TRANSFERS" | "ERC20LOGPROCESSOR" | "ERC20REBASELOGPROCESSOR" | "VEST" | "ERC20_FIX_APR" | "HYPERDRIVELOGPROCESSOR" | "HYPERDRIVELOGFIXPROCESSOR" | undefined;
374
+ items?: number | undefined;
375
+ subType?: number | undefined;
376
+ page?: number | undefined;
377
+ chainId?: number | undefined;
378
+ startTimestamp?: string | undefined;
379
+ endTimestamp?: string | undefined;
380
+ tokenAddress?: string | undefined;
381
+ mainParameter?: string | undefined;
382
+ campaignId?: string | undefined;
383
+ opportunityId?: string | undefined;
384
+ creatorId?: string | undefined;
385
+ test?: boolean | undefined;
386
+ creatorTag?: string | undefined;
387
+ tokenSymbol?: string | undefined;
388
+ };
389
+ headers: unknown;
390
+ response: {
391
+ 200: ({
392
+ protocol?: {
393
+ name: string;
394
+ url: string;
395
+ description: string;
396
+ id: string;
397
+ tags: string[];
398
+ icon: string;
399
+ } | null | undefined;
400
+ depositUrl?: string | undefined;
401
+ aprRecord?: {
402
+ timestamp: string | bigint;
403
+ cumulated: number;
404
+ breakdowns: {
405
+ type: "CAMPAIGN" | "TOKEN" | "PROTOCOL";
406
+ id: number;
407
+ identifier: string;
408
+ value: number;
409
+ aprRecordId: string;
410
+ }[];
411
+ } | undefined;
412
+ tvlRecord?: {
413
+ total: number;
414
+ timestamp: string | bigint;
415
+ breakdowns: {
416
+ type: "TOKEN" | "PROTOCOL";
417
+ id: number;
418
+ identifier: string;
419
+ value: number;
420
+ tvlRecordId: string;
421
+ }[];
422
+ } | undefined;
423
+ rewardsRecord?: {
424
+ total: number;
425
+ id: string;
426
+ timestamp: string | bigint;
427
+ breakdowns: {
428
+ token: {
429
+ price?: number | null | undefined;
430
+ symbol: string;
431
+ name: string | null;
432
+ id: string;
433
+ icon: string;
434
+ chainId: number;
435
+ address: string;
436
+ decimals: number;
437
+ verified: boolean;
438
+ isTest: boolean;
439
+ };
440
+ id: number;
441
+ value: number;
442
+ campaignId: string;
443
+ amount: string | bigint;
444
+ dailyRewardsRecordId: string;
445
+ }[];
446
+ } | undefined;
447
+ name: string;
448
+ type: string;
449
+ tokens: {
450
+ price?: number | null | undefined;
451
+ symbol: string;
452
+ name: string | null;
453
+ id: string;
454
+ icon: string;
455
+ chainId: number;
456
+ address: string;
457
+ decimals: number;
458
+ verified: boolean;
459
+ isTest: boolean;
460
+ }[];
461
+ id: string;
462
+ status: string;
463
+ tags: string[];
464
+ identifier: string;
465
+ chain: {
466
+ name: string;
467
+ id: number;
468
+ icon: string;
469
+ };
470
+ chainId: number;
471
+ action: string;
472
+ tvl: number;
473
+ apr: number;
474
+ dailyRewards: number;
475
+ } & {
476
+ campaigns: {
477
+ params: any;
478
+ chain: {
479
+ name: string;
480
+ id: number;
481
+ icon: string;
482
+ };
483
+ rewardToken: {
484
+ symbol: string;
485
+ name: string | null;
486
+ id: string;
487
+ icon: string;
488
+ chainId: number;
489
+ address: string;
490
+ decimals: number;
491
+ verified: boolean;
492
+ isTest: boolean;
493
+ } & {
494
+ price?: number | null | undefined;
495
+ };
496
+ distributionChain: {
497
+ name: string;
498
+ id: number;
499
+ icon: string;
500
+ } | undefined;
501
+ campaignStatus: {
502
+ error: string;
503
+ details: import("database/api/.generated/runtime/library").JsonValue;
504
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
505
+ campaignId: string;
506
+ computedUntil: bigint;
507
+ processingStarted: bigint;
508
+ };
509
+ type: import("../../../database/api/.generated").$Enums.CampaignType;
510
+ id: string;
511
+ subType: number | null;
512
+ startTimestamp: bigint;
513
+ endTimestamp: bigint;
514
+ computeChainId: number;
515
+ distributionChainId: number;
516
+ campaignId: string;
517
+ rewardTokenId: string;
518
+ amount: string;
519
+ opportunityId: string;
520
+ creatorAddress: string;
521
+ }[];
522
+ })[];
523
+ readonly 404: {
524
+ message: string;
525
+ name: string;
526
+ };
527
+ readonly 500: {
528
+ code: string;
529
+ info: string;
530
+ httpCode: number;
531
+ };
532
+ };
533
+ };
534
+ };
535
+ };
366
536
  } & {
367
537
  opportunities: {
368
538
  ":id": {
@@ -779,6 +949,7 @@ export declare const v4: Elysia<"/v4", false, {
779
949
  mainParameter?: string | undefined;
780
950
  campaignId?: string | undefined;
781
951
  opportunityId?: string | undefined;
952
+ creatorId?: string | undefined;
782
953
  test?: boolean | undefined;
783
954
  creatorTag?: string | undefined;
784
955
  tokenSymbol?: string | undefined;
@@ -851,6 +1022,7 @@ export declare const v4: Elysia<"/v4", false, {
851
1022
  mainParameter?: string | undefined;
852
1023
  campaignId?: string | undefined;
853
1024
  opportunityId?: string | undefined;
1025
+ creatorId?: string | undefined;
854
1026
  test?: boolean | undefined;
855
1027
  creatorTag?: string | undefined;
856
1028
  tokenSymbol?: string | undefined;
@@ -990,6 +1162,7 @@ export declare const v4: Elysia<"/v4", false, {
990
1162
  ":id": {
991
1163
  patch: {
992
1164
  body: {
1165
+ name?: string | undefined;
993
1166
  url?: string | undefined;
994
1167
  description?: string | undefined;
995
1168
  icon?: string | undefined;
@@ -1978,6 +2151,7 @@ export declare const v4: Elysia<"/v4", false, {
1978
2151
  200: {
1979
2152
  tags: string[];
1980
2153
  address: string;
2154
+ creatorId: string | null;
1981
2155
  }[];
1982
2156
  };
1983
2157
  };
@@ -1997,6 +2171,7 @@ export declare const v4: Elysia<"/v4", false, {
1997
2171
  200: {
1998
2172
  tags: string[];
1999
2173
  address: string;
2174
+ creatorId: string | null;
2000
2175
  }[];
2001
2176
  };
2002
2177
  };
@@ -2016,11 +2191,35 @@ export declare const v4: Elysia<"/v4", false, {
2016
2191
  200: {
2017
2192
  tags: string[];
2018
2193
  address: string;
2194
+ creatorId: string | null;
2019
2195
  } | null;
2020
2196
  };
2021
2197
  };
2022
2198
  };
2023
2199
  };
2200
+ } & {
2201
+ users: {
2202
+ ":address": {
2203
+ creator: {
2204
+ get: {
2205
+ body: unknown;
2206
+ params: {
2207
+ address: string;
2208
+ };
2209
+ query: unknown;
2210
+ headers: unknown;
2211
+ response: {
2212
+ 200: {
2213
+ name: string;
2214
+ id: string;
2215
+ addresses: string[];
2216
+ icon?: string | undefined;
2217
+ } | null;
2218
+ };
2219
+ };
2220
+ };
2221
+ };
2222
+ };
2024
2223
  } & {
2025
2224
  users: {
2026
2225
  ":address": {
@@ -2272,6 +2471,7 @@ export declare const v4: Elysia<"/v4", false, {
2272
2471
  200: {
2273
2472
  tags: string[];
2274
2473
  address: string;
2474
+ creatorId: string | null;
2275
2475
  };
2276
2476
  };
2277
2477
  };
@@ -2312,6 +2512,7 @@ export declare const v4: Elysia<"/v4", false, {
2312
2512
  200: {
2313
2513
  tags: string[];
2314
2514
  address: string;
2515
+ creatorId: string | null;
2315
2516
  };
2316
2517
  };
2317
2518
  };
@@ -2710,8 +2911,7 @@ export declare const v4: Elysia<"/v4", false, {
2710
2911
  authorization: string;
2711
2912
  };
2712
2913
  response: {
2713
- [x: string]: any;
2714
- 200: any;
2914
+ 200: any[];
2715
2915
  };
2716
2916
  };
2717
2917
  };
@@ -2734,6 +2934,7 @@ export declare const v4: Elysia<"/v4", false, {
2734
2934
  mainParameter?: string | undefined;
2735
2935
  campaignId?: string | undefined;
2736
2936
  opportunityId?: string | undefined;
2937
+ creatorId?: string | undefined;
2737
2938
  test?: boolean | undefined;
2738
2939
  creatorTag?: string | undefined;
2739
2940
  tokenSymbol?: string | undefined;
@@ -2742,8 +2943,7 @@ export declare const v4: Elysia<"/v4", false, {
2742
2943
  authorization: string;
2743
2944
  };
2744
2945
  response: {
2745
- [x: string]: any;
2746
- 200: any;
2946
+ 200: any[];
2747
2947
  };
2748
2948
  };
2749
2949
  };
@@ -3163,6 +3363,36 @@ export declare const v4: Elysia<"/v4", false, {
3163
3363
  };
3164
3364
  };
3165
3365
  };
3366
+ } & {
3367
+ "program-payload": {
3368
+ parse: {
3369
+ "from-campaign-data": {
3370
+ post: {
3371
+ body: {
3372
+ chainId: number;
3373
+ startTimestamp: number;
3374
+ endTimestamp: number;
3375
+ computeChainId: number;
3376
+ amount: string;
3377
+ rewardToken: string;
3378
+ campaignType: number;
3379
+ campaignData: string;
3380
+ symbolRewardToken: string;
3381
+ decimalsRewardToken: number;
3382
+ };
3383
+ params: {};
3384
+ query: unknown;
3385
+ headers: {
3386
+ authorization: string;
3387
+ };
3388
+ response: {
3389
+ [x: string]: any;
3390
+ 200: any;
3391
+ };
3392
+ };
3393
+ };
3394
+ };
3395
+ };
3166
3396
  };
3167
3397
  } & {
3168
3398
  v4: {
@@ -3221,8 +3451,9 @@ export declare const v4: Elysia<"/v4", false, {
3221
3451
  headers: unknown;
3222
3452
  response: {
3223
3453
  200: {
3224
- [x: string]: File;
3225
- [x: number]: File;
3454
+ averageBoost: number | null;
3455
+ totalDistributedInUSD: number | null;
3456
+ forfeitingBoost: number | null;
3226
3457
  } | null;
3227
3458
  };
3228
3459
  };
@@ -3245,8 +3476,10 @@ export declare const v4: Elysia<"/v4", false, {
3245
3476
  headers: unknown;
3246
3477
  response: {
3247
3478
  200: {
3248
- [x: string]: never;
3249
- [x: number]: never;
3479
+ reason: string;
3480
+ id: number;
3481
+ campaignId: string;
3482
+ boost: number | null;
3250
3483
  }[];
3251
3484
  };
3252
3485
  };
@@ -3301,6 +3534,104 @@ export declare const v4: Elysia<"/v4", false, {
3301
3534
  };
3302
3535
  };
3303
3536
  };
3537
+ } & {
3538
+ v4: {
3539
+ creators: {
3540
+ index: {
3541
+ get: {
3542
+ body: unknown;
3543
+ params: {};
3544
+ query: {
3545
+ items?: number | undefined;
3546
+ page?: number | undefined;
3547
+ address?: string | undefined;
3548
+ };
3549
+ headers: unknown;
3550
+ response: {
3551
+ 200: ({
3552
+ name: string;
3553
+ id: string;
3554
+ addresses: string[];
3555
+ } & {
3556
+ icon?: string | undefined;
3557
+ })[];
3558
+ };
3559
+ };
3560
+ };
3561
+ };
3562
+ } & {
3563
+ creators: {
3564
+ ":id": {
3565
+ get: {
3566
+ body: unknown;
3567
+ params: {
3568
+ id: string;
3569
+ };
3570
+ query: unknown;
3571
+ headers: unknown;
3572
+ response: {
3573
+ 200: {
3574
+ name: string;
3575
+ id: string;
3576
+ addresses: string[];
3577
+ icon?: string | undefined;
3578
+ };
3579
+ };
3580
+ };
3581
+ };
3582
+ };
3583
+ } & {
3584
+ creators: {
3585
+ index: {
3586
+ post: {
3587
+ body: {
3588
+ icon?: string | undefined;
3589
+ name: string;
3590
+ id: string;
3591
+ addresses: string[];
3592
+ };
3593
+ params: {};
3594
+ query: unknown;
3595
+ headers: {
3596
+ authorization: string;
3597
+ };
3598
+ response: {
3599
+ 200: {
3600
+ name: string;
3601
+ id: string;
3602
+ icon: string | null;
3603
+ };
3604
+ };
3605
+ };
3606
+ };
3607
+ };
3608
+ } & {
3609
+ creators: {
3610
+ ":id": {
3611
+ patch: {
3612
+ body: {
3613
+ icon?: string | undefined;
3614
+ name: string;
3615
+ addresses: string[];
3616
+ };
3617
+ params: {
3618
+ id: string;
3619
+ };
3620
+ query: unknown;
3621
+ headers: {
3622
+ authorization: string;
3623
+ };
3624
+ response: {
3625
+ 200: {
3626
+ name: string;
3627
+ id: string;
3628
+ icon: string | null;
3629
+ };
3630
+ };
3631
+ };
3632
+ };
3633
+ };
3634
+ };
3304
3635
  }, {
3305
3636
  derive: {};
3306
3637
  resolve: {};
@@ -18,6 +18,7 @@ import Elysia from "elysia";
18
18
  import { BoostController } from "./boost";
19
19
  import { ClaimController } from "./claims";
20
20
  import { ComputedValueController } from "./computedValue";
21
+ import { CreatorController } from "./creator";
21
22
  import { DynamicDataController } from "./dynamicData";
22
23
  import { ExplorerController } from "./explorer/explorer.controller";
23
24
  import { InteractionController } from "./interaction/interaction.controller";
@@ -69,4 +70,5 @@ export const v4 = new Elysia({ tags: ["v4"], prefix: "/v4" })
69
70
  .use(ClaimController)
70
71
  .use(ProgramPayloadController)
71
72
  .use(BoostController)
72
- .use(ComputedValueController);
73
+ .use(ComputedValueController)
74
+ .use(CreatorController);
@@ -29,6 +29,7 @@ export declare const UserController: Elysia<"/users", false, {
29
29
  200: {
30
30
  tags: string[];
31
31
  address: string;
32
+ creatorId: string | null;
32
33
  }[];
33
34
  };
34
35
  };
@@ -48,6 +49,7 @@ export declare const UserController: Elysia<"/users", false, {
48
49
  200: {
49
50
  tags: string[];
50
51
  address: string;
52
+ creatorId: string | null;
51
53
  }[];
52
54
  };
53
55
  };
@@ -67,11 +69,35 @@ export declare const UserController: Elysia<"/users", false, {
67
69
  200: {
68
70
  tags: string[];
69
71
  address: string;
72
+ creatorId: string | null;
70
73
  } | null;
71
74
  };
72
75
  };
73
76
  };
74
77
  };
78
+ } & {
79
+ users: {
80
+ ":address": {
81
+ creator: {
82
+ get: {
83
+ body: unknown;
84
+ params: {
85
+ address: string;
86
+ };
87
+ query: unknown;
88
+ headers: unknown;
89
+ response: {
90
+ 200: {
91
+ name: string;
92
+ id: string;
93
+ addresses: string[];
94
+ icon?: string | undefined;
95
+ } | null;
96
+ };
97
+ };
98
+ };
99
+ };
100
+ };
75
101
  } & {
76
102
  users: {
77
103
  ":address": {
@@ -323,6 +349,7 @@ export declare const UserController: Elysia<"/users", false, {
323
349
  200: {
324
350
  tags: string[];
325
351
  address: string;
352
+ creatorId: string | null;
326
353
  };
327
354
  };
328
355
  };
@@ -363,6 +390,7 @@ export declare const UserController: Elysia<"/users", false, {
363
390
  200: {
364
391
  tags: string[];
365
392
  address: string;
393
+ creatorId: string | null;
366
394
  };
367
395
  };
368
396
  };
@@ -1,6 +1,7 @@
1
1
  import { AuthorizationHeadersDto, BackOfficeGuard } from "../../../guards/BackOffice.guard";
2
2
  import { throwOnInvalidRequiredAddress, throwOnUnsupportedChainId } from "../../../utils/throw";
3
3
  import { Elysia, t } from "elysia";
4
+ import { CreatorService } from "../creator";
4
5
  import { RewardService } from "../reward";
5
6
  import { GetManyUserQuery, OptionalChainIdDto, UpdateUserTagsDto, UserDto, UserRewardRouteDto, UserRewardsResourceDto, UserUniqueDto, } from "./user.model";
6
7
  import { UserService } from "./user.service";
@@ -15,6 +16,10 @@ export const UserController = new Elysia({ prefix: "/users", detail: { tags: ["U
15
16
  // ─── Get A User By Address ───────────────────────────────────────────
16
17
  .get("/:address", async ({ params }) => await UserService.findUnique(params.address), {
17
18
  detail: { hide: true },
19
+ })
20
+ .get("/:address/creator", async ({ params: { address } }) => {
21
+ const [creator] = await CreatorService.findMany({ address });
22
+ return creator ? CreatorService.format(creator) : null;
18
23
  })
19
24
  // ─── Get User's Rewards With Breakdown And Details for our FE ────────
20
25
  .get("/:address/rewards/breakdowns", async ({ params, query }) => {
@@ -3,22 +3,27 @@ export declare abstract class UserRepository {
3
3
  static findUnique(address: string): Promise<{
4
4
  tags: string[];
5
5
  address: string;
6
+ creatorId: string | null;
6
7
  } | null>;
7
8
  static findMany(query: GetManyUserModel): Promise<{
8
9
  tags: string[];
9
10
  address: string;
11
+ creatorId: string | null;
10
12
  }[]>;
11
13
  static findManyWithTags(): Promise<{
12
14
  tags: string[];
13
15
  address: string;
16
+ creatorId: string | null;
14
17
  }[]>;
15
18
  static create(user: UserModel): Promise<{
16
19
  tags: string[];
17
20
  address: string;
21
+ creatorId: string | null;
18
22
  }>;
19
23
  static createMany(users: UserModel[]): Promise<import("../../../../database/api/.generated").Prisma.BatchPayload>;
20
24
  static updateTags(address: string, tags: string[]): Promise<{
21
25
  tags: string[];
22
26
  address: string;
27
+ creatorId: string | null;
23
28
  }>;
24
29
  }
@@ -3,23 +3,28 @@ export declare abstract class UserService {
3
3
  static findUnique(address: string): Promise<{
4
4
  tags: string[];
5
5
  address: string;
6
+ creatorId: string | null;
6
7
  } | null>;
7
8
  static findMany(query: GetManyUserModel): Promise<{
8
9
  tags: string[];
9
10
  address: string;
11
+ creatorId: string | null;
10
12
  }[]>;
11
13
  static findManyWithTags(): Promise<{
12
14
  tags: string[];
13
15
  address: string;
16
+ creatorId: string | null;
14
17
  }[]>;
15
18
  static create(user: UserModel): Promise<{
16
19
  tags: string[];
17
20
  address: string;
21
+ creatorId: string | null;
18
22
  }>;
19
23
  static createMany(users: UserModel[]): Promise<import("../../../../database/api/.generated").Prisma.BatchPayload>;
20
24
  static updateTags(user: string, tags: string[]): Promise<{
21
25
  tags: string[];
22
26
  address: string;
27
+ creatorId: string | null;
23
28
  }>;
24
29
  static syncTags(): Promise<void>;
25
30
  static syncOpportunityTags(): Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import { AaveInterface, AccountantWithRateProvidersInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CPMMGammaPoolMainInterface, CompoundInterface, CurveInterface, CurveStableSwapNGInterface, DefutureVaultInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, PendleYTInterface, RadiantInterface, RfxInterface, RswEthStrategyInterface, SturdyInterface, SymetricAmbientStrategyInterface, TorosInterface, UniswapV2PoolInterface, VePufferInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
2
- import { LayerBankERC20Interface, SyncSwapClassicPoolInterface } from "libs/sdk/src/merkl/interface";
2
+ import { ERC4626Interface, LayerBankERC20Interface, SyncSwapClassicPoolInterface } from "libs/sdk/src/merkl/interface";
3
3
  import { tokenType } from "../libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType";
4
4
  export function decodeCall(calls, index, key, type) {
5
5
  const returnData = calls[index];
@@ -178,6 +178,10 @@ export function decodeReturnValue(returnData, key, type) {
178
178
  return AuraOperatorInterface.decodeFunctionResult("staker", returnData)[0];
179
179
  case "totalAssets":
180
180
  switch (type) {
181
+ case tokenType.cian:
182
+ return ERC4626Interface.decodeFunctionResult("totalAssets", returnData)[0];
183
+ case tokenType.concrete:
184
+ return ERC4626Interface.decodeFunctionResult("totalAssets", returnData)[0];
181
185
  case tokenType.gearbox:
182
186
  return GearboxVaultInterface.decodeFunctionResult("totalAssets", returnData)[0];
183
187
  case tokenType.euler_lend:
@@ -245,6 +249,8 @@ export function decodeReturnValue(returnData, key, type) {
245
249
  return SyncSwapClassicPoolInterface.decodeFunctionResult("reserve0", returnData)[0];
246
250
  case "reserve1":
247
251
  return SyncSwapClassicPoolInterface.decodeFunctionResult("reserve1", returnData)[0];
252
+ case "asset":
253
+ return ERC4626Interface.decodeFunctionResult("asset", returnData)[0];
248
254
  default:
249
255
  throw new Error(`Key not recognized for ${key}`);
250
256
  }