@merkl/api 0.18.9 → 0.18.11

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 (113) hide show
  1. package/dist/src/backgroundJobs/index.js +1 -1
  2. package/dist/src/backgroundJobs/jobs/campaignsCacheUpdater.js +1 -1
  3. package/dist/src/eden/index.d.ts +521 -518
  4. package/dist/src/factories/opportunityMetadata/implementations/Clamm.js +1 -1
  5. package/dist/src/index.d.ts +111 -110
  6. package/dist/src/index.js +1 -1
  7. package/dist/src/jobs/etl/pendings.js +1 -1
  8. package/dist/src/jobs/etl/reward-breakdowns.js +1 -1
  9. package/dist/src/jobs/etl/rewards.js +1 -1
  10. package/dist/src/jobs/etl/update-euler-vaults.js +1 -1
  11. package/dist/src/libs/campaigns/campaignTypes/EventBasedDynamicData.js +1 -1
  12. package/dist/src/libs/campaigns/campaignTypes/RadiantDynamicData.js +1 -1
  13. package/dist/src/libs/campaigns/campaignTypes/UniswapV4DynamicData.js +1 -1
  14. package/dist/src/libs/campaigns/utils/getEulerV2Vaults.js +1 -1
  15. package/dist/src/libs/campaigns/utils/getUniswapV4Pools.js +1 -1
  16. package/dist/src/libs/getTokensList.d.ts +3 -0
  17. package/dist/src/libs/positions/EigenLayer/index.js +1 -0
  18. package/dist/src/libs/positions/badger/index.js +1 -0
  19. package/dist/src/libs/positions/clamm/index.js +1 -0
  20. package/dist/src/libs/positions/clamm/thegraph/fetchAlmPositions.js +1 -0
  21. package/dist/src/libs/positions/clamm/thegraph/fetchAmmPositions.js +1 -0
  22. package/dist/src/libs/positions/clamm/thegraph/fetchFarmedPositions.js +1 -0
  23. package/dist/src/libs/positions/clamm/thegraph/index.js +1 -0
  24. package/dist/src/libs/positions/compound/index.js +1 -0
  25. package/dist/src/libs/positions/erc20/index.js +1 -0
  26. package/dist/src/libs/positions/euler/index.js +1 -0
  27. package/dist/src/libs/positions/index.js +1 -0
  28. package/dist/src/libs/positions/prepareFetch.js +1 -0
  29. package/dist/src/libs/positions/silo/index.js +1 -0
  30. package/dist/src/libs/staticCampaigns.js +1 -1
  31. package/dist/src/modules/v4/accounting/accounting.controller.d.ts +6 -6
  32. package/dist/src/modules/v4/accounting/accounting.repository.d.ts +16 -16
  33. package/dist/src/modules/v4/accounting/accounting.repository.js +1 -1
  34. package/dist/src/modules/v4/accounting/accounting.service.d.ts +2 -2
  35. package/dist/src/modules/v4/blacklist/blacklist.repository.js +1 -1
  36. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +20 -20
  37. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +29 -29
  38. package/dist/src/modules/v4/campaign/campaign.repository.js +1 -1
  39. package/dist/src/modules/v4/campaign/campaign.service.d.ts +26 -26
  40. package/dist/src/modules/v4/chain/chain.repository.js +1 -1
  41. package/dist/src/modules/v4/computedValue/computedValue.repository.js +1 -1
  42. package/dist/src/modules/v4/creator/creator.repository.js +1 -1
  43. package/dist/src/modules/v4/enso/enso.service.d.ts +2 -2
  44. package/dist/src/modules/v4/explorer/explorer.repository.js +1 -1
  45. package/dist/src/modules/v4/liquidity/liquidity.controller.d.ts +1 -1
  46. package/dist/src/modules/v4/merklRoot/merklRoot.controller.d.ts +3 -3
  47. package/dist/src/modules/v4/merklRoot/merklRoot.repository.d.ts +3 -3
  48. package/dist/src/modules/v4/merklRoot/merklRoot.repository.js +1 -1
  49. package/dist/src/modules/v4/merklRoot/merklRoot.service.d.ts +3 -3
  50. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +34 -34
  51. package/dist/src/modules/v4/opportunity/opportunity.converter.js +1 -1
  52. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +1 -1
  53. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +57 -57
  54. package/dist/src/modules/v4/opportunity/opportunity.repository.js +1 -1
  55. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +35 -35
  56. package/dist/src/modules/v4/price/price.repository.js +1 -1
  57. package/dist/src/modules/v4/programPayload/programPayload.controller.d.ts +11 -11
  58. package/dist/src/modules/v4/protocol/protocol.repository.d.ts +3 -3
  59. package/dist/src/modules/v4/protocol/protocol.repository.js +1 -1
  60. package/dist/src/modules/v4/referral/referral.controller.d.ts +1 -1
  61. package/dist/src/modules/v4/reward/reward.controller.d.ts +6 -6
  62. package/dist/src/modules/v4/reward/reward.repository.d.ts +3 -3
  63. package/dist/src/modules/v4/reward/reward.repository.js +1 -1
  64. package/dist/src/modules/v4/reward/reward.service.d.ts +17 -17
  65. package/dist/src/modules/v4/router.d.ts +102 -102
  66. package/dist/src/modules/v4/status/status.controller.d.ts +2 -2
  67. package/dist/src/modules/v4/status/status.repository.d.ts +2 -2
  68. package/dist/src/modules/v4/status/status.repository.js +1 -1
  69. package/dist/src/modules/v4/status/status.service.d.ts +2 -2
  70. package/dist/src/modules/v4/token/token.controller.d.ts +12 -12
  71. package/dist/src/modules/v4/token/token.repository.d.ts +4 -9
  72. package/dist/src/modules/v4/token/token.repository.js +3 -9
  73. package/dist/src/modules/v4/token/token.service.d.ts +10 -10
  74. package/dist/src/modules/v4/token/token.service.js +1 -1
  75. package/dist/src/modules/v4/user/user.controller.d.ts +6 -6
  76. package/dist/src/modules/v4/user/user.repository.js +1 -1
  77. package/dist/src/modules/v4/user/user.service.js +1 -1
  78. package/dist/src/routes/v3/campaign/delay.js +1 -1
  79. package/dist/src/routes/v3/campaignClaims.d.ts +1 -1
  80. package/dist/src/routes/v3/campaignClaims.js +1 -1
  81. package/dist/src/routes/v3/campaigns.d.ts +3 -2
  82. package/dist/src/routes/v3/campaigns.js +21 -59
  83. package/dist/src/routes/v3/fetch.js +1 -1
  84. package/dist/src/routes/v3/multiChainPositions.js +1 -0
  85. package/dist/src/routes/v3/opportunity.d.ts +1 -1
  86. package/dist/src/routes/v3/parse.d.ts +1 -1
  87. package/dist/src/routes/v3/positions.js +1 -0
  88. package/dist/src/routes/v3/recipients.d.ts +1 -1
  89. package/dist/src/routes/v3/rewardsReport.d.ts +1 -1
  90. package/dist/src/routes/v3/router.d.ts +9 -8
  91. package/dist/src/routes/v3/token.d.ts +1 -1
  92. package/dist/src/utils/execute.d.ts +3 -13
  93. package/dist/src/utils/execute.js +77 -1
  94. package/dist/src/utils/generic.d.ts +1 -18
  95. package/dist/src/utils/generic.js +2 -76
  96. package/dist/src/utils/hashArray.d.ts +1 -0
  97. package/dist/src/utils/hashArray.js +4 -1
  98. package/dist/src/utils/queries/allCampaigns.d.ts +0 -4
  99. package/dist/src/utils/queries/allCampaigns.js +0 -39
  100. package/dist/tsconfig.package.tsbuildinfo +1 -1
  101. package/package.json +1 -1
  102. package/dist/src/utils/addString.d.ts +0 -2
  103. package/dist/src/utils/addString.js +0 -6
  104. package/dist/src/utils/crypto.d.ts +0 -1
  105. package/dist/src/utils/crypto.js +0 -4
  106. package/dist/src/utils/queries/activeCampaigns.d.ts +0 -3
  107. package/dist/src/utils/queries/activeCampaigns.js +0 -22
  108. package/dist/src/utils/validation.d.ts +0 -5
  109. package/dist/src/utils/validation.js +0 -20
  110. /package/dist/{src/utils/prisma.d.ts → database/index.d.ts} +0 -0
  111. /package/dist/{src/utils/prisma.js → database/index.js} +0 -0
  112. /package/dist/src/utils/{camelToKebabCase.d.ts → caseChanges.d.ts} +0 -0
  113. /package/dist/src/utils/{camelToKebabCase.js → caseChanges.js} +0 -0
@@ -57,8 +57,8 @@ export declare const v3: Elysia<"/v3", false, {
57
57
  params: {};
58
58
  query: {
59
59
  byReason?: boolean | undefined;
60
- chainId: number;
61
60
  campaignId: string;
61
+ chainId: number;
62
62
  };
63
63
  headers: unknown;
64
64
  response: {
@@ -82,8 +82,9 @@ export declare const v3: Elysia<"/v3", false, {
82
82
  };
83
83
  headers: unknown;
84
84
  response: {
85
- [x: string]: any;
86
- 200: any;
85
+ 200: {
86
+ [x: string]: Record<string, any>;
87
+ };
87
88
  };
88
89
  };
89
90
  };
@@ -391,8 +392,8 @@ export declare const v3: Elysia<"/v3", false, {
391
392
  query: {
392
393
  type?: number | undefined;
393
394
  tag?: string | undefined;
394
- chainId?: number | undefined;
395
395
  action?: string | undefined;
396
+ chainId?: number | undefined;
396
397
  campaigns?: boolean | undefined;
397
398
  mainParameter?: string | undefined;
398
399
  testTokens?: boolean | undefined;
@@ -446,8 +447,8 @@ export declare const v3: Elysia<"/v3", false, {
446
447
  params: {};
447
448
  query: {
448
449
  index?: number | undefined;
449
- chainId: number;
450
450
  campaign: any;
451
+ chainId: number;
451
452
  };
452
453
  headers: unknown;
453
454
  response: {
@@ -552,8 +553,8 @@ export declare const v3: Elysia<"/v3", false, {
552
553
  body: unknown;
553
554
  params: {};
554
555
  query: {
555
- chainId: number;
556
556
  campaignId: string;
557
+ chainId: number;
557
558
  };
558
559
  headers: unknown;
559
560
  response: {
@@ -621,8 +622,8 @@ export declare const v3: Elysia<"/v3", false, {
621
622
  from?: number | undefined;
622
623
  mainParameter?: string | undefined;
623
624
  to?: number | undefined;
624
- chainId: number;
625
625
  campaignId: string;
626
+ chainId: number;
626
627
  };
627
628
  headers: unknown;
628
629
  response: {
@@ -661,8 +662,8 @@ export declare const v3: Elysia<"/v3", false, {
661
662
  body: unknown;
662
663
  params: {};
663
664
  query: {
664
- chainId: number;
665
665
  address: string;
666
+ chainId: number;
666
667
  };
667
668
  headers: unknown;
668
669
  response: {
@@ -26,8 +26,8 @@ declare const _default: (app: Elysia) => Elysia<"", false, {
26
26
  body: unknown;
27
27
  params: {};
28
28
  query: {
29
- chainId: number;
30
29
  address: string;
30
+ chainId: number;
31
31
  };
32
32
  headers: unknown;
33
33
  response: {
@@ -1,12 +1,12 @@
1
- import type { TTLType } from "../cache/redis";
2
1
  import type { MultiCallDataType } from "../types";
3
2
  /**
4
3
  * Types
5
4
  */
6
- export type CachedResult<T> = {
5
+ type CachedResult<T> = {
7
6
  cached: true;
8
7
  result: T;
9
8
  };
9
+ type ComponentReturnType<T> = Promise<CachedResult<T> | UncachedResult<T>>;
10
10
  export type UncachedResult<T> = {
11
11
  cached: false;
12
12
  call: {
@@ -15,18 +15,8 @@ export type UncachedResult<T> = {
15
15
  handler: () => void;
16
16
  };
17
17
  };
18
- export type ComponentReturnType<T> = Promise<CachedResult<T> | UncachedResult<T>>;
19
- export type ComponentCallWithFallback<T> = {
20
- call: ComponentReturnType<T>;
21
- fallback: (args: T) => void;
22
- };
23
- export type BatchedMulticallComponentType = {
24
- args: any[];
25
- call: (...args: any[]) => Promise<UncachedResult<any>>;
26
- fallback: (args: any) => void;
27
- ttl: TTLType;
28
- };
29
18
  /**
30
19
  * Functions
31
20
  */
32
21
  export declare function executeSimple<T>(chainId: number, componentCall: ComponentReturnType<T>): Promise<T>;
22
+ export {};
@@ -1,4 +1,7 @@
1
- import { batchMulticallCall, multicallContractCall } from "./generic";
1
+ // @ts-nocheck
2
+ import { MAX_NUM_SUBCALLS } from "@/constants";
3
+ import { withRetry } from "@sdk";
4
+ import { constants } from "ethers";
2
5
  import { log } from "./logger";
3
6
  import { archiveMulticalls, multicalls } from "./providers";
4
7
  /**
@@ -39,3 +42,76 @@ const execute = async (chainId, callList, shouldRetry, blockNumber) => {
39
42
  }
40
43
  return [];
41
44
  };
45
+ async function multicallContractCall(contract, args) {
46
+ let result;
47
+ try {
48
+ // TO SIMULATE - USE CAUTIOUSLY AS IT USES CREDITS
49
+ // console.log(
50
+ // await callTenderly(
51
+ // {
52
+ // chainId: (await contract.provider.getNetwork()).chainId.toString(),
53
+ // data: contract.interface.encodeFunctionData('aggregate', [args.data]),
54
+ // from: !!args.from ? args.from : constants.AddressZero,
55
+ // saveSimulation: true,
56
+ // to: contract.address,
57
+ // value: '0',
58
+ // },
59
+ // undefined,
60
+ // true
61
+ // )
62
+ // );
63
+ result = await contract.provider.call({
64
+ data: contract.interface.encodeFunctionData("aggregate3", [
65
+ args.data.map(c => {
66
+ return {
67
+ allowFailure: !!c.allowFailure,
68
+ callData: c.callData,
69
+ target: c.target,
70
+ };
71
+ }),
72
+ ]),
73
+ from: !!args.from ? args.from : constants.AddressZero,
74
+ to: contract.address,
75
+ }, !!args.blockNumber ? args.blockNumber : undefined);
76
+ }
77
+ catch (e) {
78
+ log.error("multicallContractCall failed", e);
79
+ throw new Error("❌ failed to decode multicall data");
80
+ }
81
+ return contract.interface.decodeFunctionResult("aggregate3", result)[0].map((r) => r?.returnData);
82
+ }
83
+ async function batchMulticallCall(func, contract, args, shouldRetry = true) {
84
+ let callsLeft = args.data.length;
85
+ let lowerIdx = 0;
86
+ let upperIdx = Math.min(args.data.length, MAX_NUM_SUBCALLS);
87
+ const multicallBatch = [];
88
+ while (callsLeft !== 0) {
89
+ multicallBatch.push(shouldRetry
90
+ ? withRetry(func, [
91
+ // TODO: fix typing
92
+ contract,
93
+ {
94
+ blockNumber: args.blockNumber,
95
+ data: args.data.slice(lowerIdx, upperIdx),
96
+ },
97
+ ])
98
+ : func(contract, args));
99
+ callsLeft -= upperIdx - lowerIdx;
100
+ lowerIdx = upperIdx;
101
+ upperIdx = Math.min(args.data.length, upperIdx + MAX_NUM_SUBCALLS);
102
+ }
103
+ /** Executing batched multicall */
104
+ const results = await Promise.allSettled(multicallBatch);
105
+ let fetchedData = [];
106
+ for (let k = 0; k < results.length; k++) {
107
+ const res = results[k];
108
+ if (res.status === "fulfilled") {
109
+ fetchedData = fetchedData.concat(res.value);
110
+ }
111
+ else {
112
+ log.error(`batchMulticallCall failed to ${args.data[k].target}, data: ${args.data[k].callData}`, res);
113
+ fetchedData.concat("0x");
114
+ }
115
+ }
116
+ return fetchedData;
117
+ }
@@ -1,23 +1,6 @@
1
- import { type MerklChainId, type Multicall } from "@sdk";
1
+ import { type MerklChainId } from "@sdk";
2
2
  import { type BigNumberish } from "ethers";
3
3
  import type { Multicall3 } from "libs/sdk/src/generated/Multicall";
4
- import type { MultiCallDataType } from "../types";
5
- export declare function multicallContractCall(contract: Multicall, args: {
6
- data: MultiCallDataType;
7
- blockNumber?: number | undefined;
8
- from?: string;
9
- }): Promise<string[]>;
10
- export declare function batchMulticallCall(func: (contract: Multicall, args: {
11
- data: Multicall3.Call3Struct[];
12
- blockNumber?: number;
13
- }) => Promise<string[]>, contract: Multicall, args: {
14
- data: Multicall3.Call3Struct[];
15
- blockNumber?: number;
16
- }, shouldRetry?: boolean): Promise<string[]>;
17
- export declare function archiveContractMethodCall(contract: Multicall, args: {
18
- calls: Multicall3.Call3Struct[];
19
- blockNumber?: BigNumberish;
20
- }): Promise<Multicall3.ResultStructOutput[]>;
21
4
  export declare function batchMulticallCallWithRetry(chainId: MerklChainId, args: {
22
5
  calls: Multicall3.Call3Struct[];
23
6
  blockNumber?: BigNumberish;
@@ -1,82 +1,8 @@
1
1
  import { withRetry } from "@sdk";
2
- import { constants, BigNumber } from "ethers";
2
+ import { BigNumber } from "ethers";
3
3
  import { MAX_NUM_SUBCALLS } from "../constants";
4
- import { log } from "./logger";
5
4
  import { multicalls } from "./providers";
6
- export async function multicallContractCall(contract, args) {
7
- let result;
8
- try {
9
- // TO SIMULATE - USE CAUTIOUSLY AS IT USES CREDITS
10
- // console.log(
11
- // await callTenderly(
12
- // {
13
- // chainId: (await contract.provider.getNetwork()).chainId.toString(),
14
- // data: contract.interface.encodeFunctionData('aggregate', [args.data]),
15
- // from: !!args.from ? args.from : constants.AddressZero,
16
- // saveSimulation: true,
17
- // to: contract.address,
18
- // value: '0',
19
- // },
20
- // undefined,
21
- // true
22
- // )
23
- // );
24
- result = await contract.provider.call({
25
- data: contract.interface.encodeFunctionData("aggregate3", [
26
- args.data.map(c => {
27
- return {
28
- allowFailure: !!c.allowFailure,
29
- callData: c.callData,
30
- target: c.target,
31
- };
32
- }),
33
- ]),
34
- from: !!args.from ? args.from : constants.AddressZero,
35
- to: contract.address,
36
- }, !!args.blockNumber ? args.blockNumber : undefined);
37
- }
38
- catch (e) {
39
- log.error("multicallContractCall failed", e);
40
- throw new Error("❌ failed to decode multicall data");
41
- }
42
- return contract.interface.decodeFunctionResult("aggregate3", result)[0].map((r) => r?.returnData);
43
- }
44
- export async function batchMulticallCall(func, contract, args, shouldRetry = true) {
45
- let callsLeft = args.data.length;
46
- let lowerIdx = 0;
47
- let upperIdx = Math.min(args.data.length, MAX_NUM_SUBCALLS);
48
- const multicallBatch = [];
49
- while (callsLeft !== 0) {
50
- multicallBatch.push(shouldRetry
51
- ? withRetry(func, [
52
- // TODO: fix typing
53
- contract,
54
- {
55
- blockNumber: args.blockNumber,
56
- data: args.data.slice(lowerIdx, upperIdx),
57
- },
58
- ])
59
- : func(contract, args));
60
- callsLeft -= upperIdx - lowerIdx;
61
- lowerIdx = upperIdx;
62
- upperIdx = Math.min(args.data.length, upperIdx + MAX_NUM_SUBCALLS);
63
- }
64
- /** Executing batched multicall */
65
- const results = await Promise.allSettled(multicallBatch);
66
- let fetchedData = [];
67
- for (let k = 0; k < results.length; k++) {
68
- const res = results[k];
69
- if (res.status === "fulfilled") {
70
- fetchedData = fetchedData.concat(res.value);
71
- }
72
- else {
73
- log.error(`batchMulticallCall failed to ${args.data[k].target}, data: ${args.data[k].callData}`, res);
74
- fetchedData.concat("0x");
75
- }
76
- }
77
- return fetchedData;
78
- }
79
- export async function archiveContractMethodCall(contract, args) {
5
+ async function archiveContractMethodCall(contract, args) {
80
6
  return contract.interface.decodeFunctionResult("aggregate3", !!args.blockNumber
81
7
  ? await contract.provider.call({
82
8
  data: contract.interface.encodeFunctionData("aggregate3", [args.calls]),
@@ -1 +1,2 @@
1
+ export declare function sha256(x: string): string;
1
2
  export declare function hashArray(...args: any[]): string;
@@ -1,4 +1,7 @@
1
- import { sha256 } from "../utils/crypto";
1
+ import crypto from "node:crypto";
2
+ export function sha256(x) {
3
+ return crypto.createHash("sha256").update(x).digest("hex");
4
+ }
2
5
  export function hashArray(...args) {
3
6
  return args.length > 0 ? sha256(JSON.stringify(args.map(a => a.toString()))) : "";
4
7
  }
@@ -1,6 +1,2 @@
1
1
  import { Prisma } from "@db/engine";
2
2
  export declare const ALL_CAMPAIGNS_FOR_CHAIN_AFTER: (chainId: number, after: number) => Prisma.Sql;
3
- export declare const ALL_CAMPAIGNS_FOR_CHAIN_BEFORE: (chainId: number, before: number) => Prisma.Sql;
4
- export declare const ALL_CAMPAIGNS_FOR_CHAIN: (chainId: number) => Prisma.Sql;
5
- export declare const ALL_CAMPAIGNS: () => Prisma.Sql;
6
- export declare const ALL_CAMPAIGNS_FOR_CHAINS_AND_CREATOR_TAG: (chainIds: number[], creatorTag: string) => Prisma.Sql;
@@ -10,42 +10,3 @@ export const ALL_CAMPAIGNS_FOR_CHAIN_AFTER = (chainId, after) => Prisma.sql `
10
10
  ("campaignParameters"->>'shouldIgnore' is null OR "campaignParameters"->>'shouldIgnore'='false')
11
11
 
12
12
  `;
13
- export const ALL_CAMPAIGNS_FOR_CHAIN_BEFORE = (chainId, before) => Prisma.sql `
14
- SELECT
15
- *
16
- FROM "Campaigns"
17
- WHERE
18
- (("chainId" = ${chainId} AND "computeChainId" = 0) OR "computeChainId" = ${chainId}) AND
19
- "campaignType" != 0 AND
20
- "endTimestamp" < ${before} AND
21
- ("campaignParameters"->>'shouldIgnore' is null OR "campaignParameters"->>'shouldIgnore'='false')
22
- `;
23
- export const ALL_CAMPAIGNS_FOR_CHAIN = (chainId) => Prisma.sql `
24
- SELECT
25
- *
26
- FROM "Campaigns"
27
- WHERE
28
- (("chainId" = ${chainId} AND "computeChainId" = 0) OR "computeChainId" = ${chainId}) AND
29
- "campaignType" != 0 AND
30
- ("campaignParameters"->>'shouldIgnore' is null OR "campaignParameters"->>'shouldIgnore'='false')
31
- `;
32
- export const ALL_CAMPAIGNS = () => Prisma.sql `
33
- SELECT
34
- *
35
- FROM "Campaigns"
36
- WHERE
37
- "campaignType" != 0 AND
38
- ("campaignParameters"->>'shouldIgnore' is null OR "campaignParameters"->>'shouldIgnore'='false')
39
- `;
40
- export const ALL_CAMPAIGNS_FOR_CHAINS_AND_CREATOR_TAG = (chainIds, creatorTag) => Prisma.sql `
41
- SELECT
42
- "chainId", "campaignId"
43
- FROM "Campaigns"
44
- WHERE
45
- "campaignType" != 0 AND
46
- (("chainId" IN (${Prisma.join(chainIds)}) AND "computeChainId" = 0) OR "computeChainId" IN (${Prisma.join(chainIds)})) AND
47
- creator IN (
48
- SELECT address from "CampaignCreators" WHERE tags LIKE ${`%${creatorTag}%`}
49
- ) AND
50
- ("campaignParameters"->>'shouldIgnore' is null OR "campaignParameters"->>'shouldIgnore'='false')
51
- `;