@merkl/api 0.20.177 → 0.20.179

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.
@@ -219,6 +219,25 @@ exports.Prisma.StateSaveScalarFieldEnum = {
219
219
  state: 'state'
220
220
  };
221
221
 
222
+ exports.Prisma.NodesScalarFieldEnum = {
223
+ id: 'id',
224
+ chainId: 'chainId',
225
+ nodeType: 'nodeType',
226
+ recipient: 'recipient',
227
+ nodesSourceId: 'nodesSourceId',
228
+ creationBlockNumber: 'creationBlockNumber',
229
+ metadata: 'metadata'
230
+ };
231
+
232
+ exports.Prisma.NodesSourcesScalarFieldEnum = {
233
+ id: 'id',
234
+ lastFetchedBlockNumber: 'lastFetchedBlockNumber',
235
+ nodeType: 'nodeType',
236
+ chainId: 'chainId',
237
+ source: 'source',
238
+ topics: 'topics'
239
+ };
240
+
222
241
  exports.Prisma.CampaignCreatorsScalarFieldEnum = {
223
242
  address: 'address',
224
243
  tags: 'tags'
@@ -233,6 +252,11 @@ exports.Prisma.JsonNullValueInput = {
233
252
  JsonNull: Prisma.JsonNull
234
253
  };
235
254
 
255
+ exports.Prisma.NullableJsonNullValueInput = {
256
+ DbNull: Prisma.DbNull,
257
+ JsonNull: Prisma.JsonNull
258
+ };
259
+
236
260
  exports.Prisma.QueryMode = {
237
261
  default: 'default',
238
262
  insensitive: 'insensitive'
@@ -330,6 +354,25 @@ exports.Prisma.StateSaveOrderByRelevanceFieldEnum = {
330
354
  id: 'id'
331
355
  };
332
356
 
357
+ exports.Prisma.NullsOrder = {
358
+ first: 'first',
359
+ last: 'last'
360
+ };
361
+
362
+ exports.Prisma.NodesOrderByRelevanceFieldEnum = {
363
+ id: 'id',
364
+ nodeType: 'nodeType',
365
+ recipient: 'recipient',
366
+ nodesSourceId: 'nodesSourceId'
367
+ };
368
+
369
+ exports.Prisma.NodesSourcesOrderByRelevanceFieldEnum = {
370
+ id: 'id',
371
+ nodeType: 'nodeType',
372
+ source: 'source',
373
+ topics: 'topics'
374
+ };
375
+
333
376
  exports.Prisma.CampaignCreatorsOrderByRelevanceFieldEnum = {
334
377
  address: 'address',
335
378
  tags: 'tags'
@@ -349,6 +392,8 @@ exports.Prisma.ModelName = {
349
392
  ERC20Holders: 'ERC20Holders',
350
393
  Tokens: 'Tokens',
351
394
  StateSave: 'StateSave',
395
+ Nodes: 'Nodes',
396
+ NodesSources: 'NodesSources',
352
397
  CampaignCreators: 'CampaignCreators'
353
398
  };
354
399
  /**
@@ -414,8 +459,8 @@ const config = {
414
459
  }
415
460
  }
416
461
  },
417
- "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-3.0.x\", \"linux-arm64-openssl-1.1.x\", \"linux-musl-arm64-openssl-3.0.x\"]\n output = \".generated/\"\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_ENGINE_URL\")\n}\n\nmodel TempLeaves {\n chainId Int\n campaignId String\n recipient String @db.Char(42)\n reason String\n rewardToken String @db.Char(42)\n amount String @default(\"0\")\n lastProcessedTimestamp Int\n\n @@id([chainId, campaignId, recipient, reason])\n @@index([chainId])\n @@index([campaignId])\n @@index([recipient])\n @@index([reason])\n @@index([rewardToken])\n}\n\nmodel Leaves {\n chainId Int\n root String\n campaignId String\n recipient String @db.Char(42)\n reason String\n rewardToken String @db.Char(42)\n amount String @default(\"0\")\n lastProcessedTimestamp Int\n\n @@id([chainId, campaignId, recipient, reason, root])\n @@index([campaignId])\n @@index([recipient])\n @@index([reason])\n @@index([rewardToken])\n}\n\nmodel Proofs {\n chainId Int\n root String\n recipient String @db.Char(42)\n rewardToken String @db.Char(42)\n proof String[]\n\n @@id([chainId, root, recipient, rewardToken])\n @@index([chainId])\n @@index([recipient])\n @@index([rewardToken])\n @@index([root])\n}\n\nmodel MerklRoots {\n chainId Int\n epoch Int\n timestamp Int\n root String\n\n @@id([chainId, root])\n @@index([chainId])\n @@index([epoch])\n @@index([root])\n}\n\nmodel Campaigns {\n chainId Int // Chain of the campaign\n computeChainId Int @default(0) // Chain where the compute is done. 0 means it's the same as chainId\n index Int // Index of the campaign\n campaignId String // hash ID of the distrib\n creator String @db.Char(42) // Address of the creator\n campaignType Int // Type of campaign --> univ3, token, univ4\n campaignSubType Int // Subtype of campaign --> UniswapV3, PancakeSwapV3\n rewardToken String // Address of reward token\n amount String\n startTimestamp Int\n endTimestamp Int\n\n // Will be useful for table joins\n mainParameter String @db.Char(42) // TODO: confirm it'll always be an address\n\n // Config of the distrib\n // A JSON with all the configuration specific to the distribution type\n campaignParameters Json\n\n @@id([chainId, campaignId])\n @@index([chainId])\n @@index([rewardToken])\n @@index([startTimestamp])\n @@index([endTimestamp])\n @@index([campaignType])\n @@index([mainParameter])\n}\n\nmodel CampaignsToProcess {\n chainId Int // Chain of the campaign\n computeChainId Int @default(0) // Chain where the compute is done. 0 means it's the same as chainId\n index Int // Index of the campaign\n campaignId String // hash ID of the distrib\n creator String @db.Char(42) // Address of the creator\n campaignType Int // Type of campaign --> univ3, token, univ4\n campaignSubType Int // Subtype of campaign --> UniswapV3, PancakeSwapV3\n rewardToken String // Address of reward token\n amount String\n startTimestamp Int\n endTimestamp Int\n\n // Will be useful for table joins\n mainParameter String @db.Char(42) // TODO: confirm it'll always be an address\n\n // Config of the distrib\n // A JSON with all the configuration specific to the distribution type\n campaignParameters Json\n lastProcessedTimestamp Int\n processUntilTimestamp Int\n jobIndex Int\n\n @@id([chainId, jobIndex])\n @@index([chainId])\n @@index([jobIndex])\n}\n\nmodel Claims {\n chainId Int\n recipient String @db.Char(42)\n campaignId String\n rewardToken String @db.Char(42)\n reason String\n root String\n claimed String @default(\"0\")\n timestamp Int\n\n @@id([chainId, recipient, campaignId, rewardToken, reason])\n @@index([chainId])\n @@index([recipient])\n @@index([campaignId])\n}\n\nmodel ClaimsOverTime {\n chainId Int\n recipient String @db.Char(42)\n campaignId String\n rewardToken String @db.Char(42)\n reason String\n root String\n claimed String @default(\"0\")\n timestamp Int\n\n @@id([chainId, recipient, campaignId, rewardToken, reason, timestamp])\n @@index([chainId])\n @@index([recipient])\n @@index([campaignId])\n @@index([timestamp])\n}\n\nmodel ALMs {\n chainId Int\n campaignId String // hash ID of the distrib\n name String\n type String\n address String @db.Char(42)\n target String @db.Char(42)\n owner String @db.Char(42)\n underlyingPool String @db.Char(42)\n\n @@id([chainId, campaignId, address])\n}\n\nmodel ERC20Holders {\n chainId Int\n token String @db.Char(42)\n holders String[] @db.Char(42)\n blockNumber Int\n\n @@id([chainId, token])\n}\n\nmodel Tokens {\n chainId Int\n address String @db.Char(42)\n symbol String\n decimals Int\n\n @@id([chainId, address])\n}\n\nmodel StateSave {\n id String\n blockNumber Int\n state Json\n\n @@id([id, blockNumber])\n}\n\nmodel CampaignCreators {\n address String @db.Char(42)\n tags String @default(\"\")\n\n @@id([address])\n}\n",
418
- "inlineSchemaHash": "2c0796c9d1180ec6f684ae06e37ce87a5caaa036e24a9fbc215dfbb9caa8abb4",
462
+ "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-3.0.x\", \"linux-arm64-openssl-1.1.x\", \"linux-musl-arm64-openssl-3.0.x\"]\n output = \".generated/\"\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_ENGINE_URL\")\n}\n\nmodel TempLeaves {\n chainId Int\n campaignId String\n recipient String @db.Char(42)\n reason String\n rewardToken String @db.Char(42)\n amount String @default(\"0\")\n lastProcessedTimestamp Int\n\n @@id([chainId, campaignId, recipient, reason])\n @@index([chainId])\n @@index([campaignId])\n @@index([recipient])\n @@index([reason])\n @@index([rewardToken])\n}\n\nmodel Leaves {\n chainId Int\n root String\n campaignId String\n recipient String @db.Char(42)\n reason String\n rewardToken String @db.Char(42)\n amount String @default(\"0\")\n lastProcessedTimestamp Int\n\n @@id([chainId, campaignId, recipient, reason, root])\n @@index([campaignId])\n @@index([recipient])\n @@index([reason])\n @@index([rewardToken])\n}\n\nmodel Proofs {\n chainId Int\n root String\n recipient String @db.Char(42)\n rewardToken String @db.Char(42)\n proof String[]\n\n @@id([chainId, root, recipient, rewardToken])\n @@index([chainId])\n @@index([recipient])\n @@index([rewardToken])\n @@index([root])\n}\n\nmodel MerklRoots {\n chainId Int\n epoch Int\n timestamp Int\n root String\n\n @@id([chainId, root])\n @@index([chainId])\n @@index([epoch])\n @@index([root])\n}\n\nmodel Campaigns {\n chainId Int // Chain of the campaign\n computeChainId Int @default(0) // Chain where the compute is done. 0 means it's the same as chainId\n index Int // Index of the campaign\n campaignId String // hash ID of the distrib\n creator String @db.Char(42) // Address of the creator\n campaignType Int // Type of campaign --> univ3, token, univ4\n campaignSubType Int // Subtype of campaign --> UniswapV3, PancakeSwapV3\n rewardToken String // Address of reward token\n amount String\n startTimestamp Int\n endTimestamp Int\n\n // Will be useful for table joins\n mainParameter String @db.Char(42) // TODO: confirm it'll always be an address\n\n // Config of the distrib\n // A JSON with all the configuration specific to the distribution type\n campaignParameters Json\n\n @@id([chainId, campaignId])\n @@index([chainId])\n @@index([rewardToken])\n @@index([startTimestamp])\n @@index([endTimestamp])\n @@index([campaignType])\n @@index([mainParameter])\n}\n\nmodel CampaignsToProcess {\n chainId Int // Chain of the campaign\n computeChainId Int @default(0) // Chain where the compute is done. 0 means it's the same as chainId\n index Int // Index of the campaign\n campaignId String // hash ID of the distrib\n creator String @db.Char(42) // Address of the creator\n campaignType Int // Type of campaign --> univ3, token, univ4\n campaignSubType Int // Subtype of campaign --> UniswapV3, PancakeSwapV3\n rewardToken String // Address of reward token\n amount String\n startTimestamp Int\n endTimestamp Int\n\n // Will be useful for table joins\n mainParameter String @db.Char(42) // TODO: confirm it'll always be an address\n\n // Config of the distrib\n // A JSON with all the configuration specific to the distribution type\n campaignParameters Json\n lastProcessedTimestamp Int\n processUntilTimestamp Int\n jobIndex Int\n\n @@id([chainId, jobIndex])\n @@index([chainId])\n @@index([jobIndex])\n}\n\nmodel Claims {\n chainId Int\n recipient String @db.Char(42)\n campaignId String\n rewardToken String @db.Char(42)\n reason String\n root String\n claimed String @default(\"0\")\n timestamp Int\n\n @@id([chainId, recipient, campaignId, rewardToken, reason])\n @@index([chainId])\n @@index([recipient])\n @@index([campaignId])\n}\n\nmodel ClaimsOverTime {\n chainId Int\n recipient String @db.Char(42)\n campaignId String\n rewardToken String @db.Char(42)\n reason String\n root String\n claimed String @default(\"0\")\n timestamp Int\n\n @@id([chainId, recipient, campaignId, rewardToken, reason, timestamp])\n @@index([chainId])\n @@index([recipient])\n @@index([campaignId])\n @@index([timestamp])\n}\n\nmodel ALMs {\n chainId Int\n campaignId String // hash ID of the distrib\n name String\n type String\n address String @db.Char(42)\n target String @db.Char(42)\n owner String @db.Char(42)\n underlyingPool String @db.Char(42)\n\n @@id([chainId, campaignId, address])\n}\n\nmodel ERC20Holders {\n chainId Int\n token String @db.Char(42)\n holders String[] @db.Char(42)\n blockNumber Int\n\n @@id([chainId, token])\n}\n\nmodel Tokens {\n chainId Int\n address String @db.Char(42)\n symbol String\n decimals Int\n\n @@id([chainId, address])\n}\n\nmodel StateSave {\n id String\n blockNumber Int\n state Json\n\n @@id([id, blockNumber])\n}\n\nmodel Nodes {\n id String @id\n chainId Int\n nodeType String\n recipient String\n nodesSourceId String\n creationBlockNumber Int\n metadata Json?\n\n // Solution for redundancy \n // Many-to-one relationship\n NodesSources NodesSources @relation(fields: [nodesSourceId], references: [id], onDelete: Cascade)\n\n // Deleted nodeType because want to have only one nodeType per recipient\n @@unique([chainId, recipient])\n // Indexes for faster queries\n @@index([chainId])\n @@index([nodeType])\n @@index([recipient])\n}\n\nmodel NodesSources {\n id String @id\n lastFetchedBlockNumber Int\n nodeType String\n chainId Int\n source String @db.Char(42)\n topics String[]\n\n // We could add a count of nodes to know if we deleted some\n // One-to-many relationship back to Nodes\n nodes Nodes[]\n\n // Unique constraint to ensure no duplicate blocks for the same nodeType\n @@unique([chainId, source, topics])\n // Indexes for faster queries\n @@index([nodeType])\n @@index([chainId])\n @@index([source])\n}\n\nmodel CampaignCreators {\n address String @db.Char(42)\n tags String @default(\"\")\n\n @@id([address])\n}\n",
463
+ "inlineSchemaHash": "01a819efa19c1b071b5fa16b2d5a7d6aa4eab197c344f085b5cd6186f72dbb9a",
419
464
  "copyEngine": true
420
465
  }
421
466
 
@@ -436,7 +481,7 @@ if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) {
436
481
  config.isBundled = true
437
482
  }
438
483
 
439
- config.runtimeDataModel = JSON.parse("{\"models\":{\"TempLeaves\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastProcessedTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\",\"recipient\",\"reason\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Leaves\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastProcessedTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\",\"recipient\",\"reason\",\"root\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Proofs\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"proof\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"root\",\"recipient\",\"rewardToken\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MerklRoots\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"epoch\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"root\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Campaigns\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"computeChainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"index\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"creator\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignSubType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mainParameter\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignParameters\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"CampaignsToProcess\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"computeChainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"index\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"creator\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignSubType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mainParameter\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignParameters\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastProcessedTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"processUntilTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"jobIndex\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"jobIndex\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Claims\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"recipient\",\"campaignId\",\"rewardToken\",\"reason\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ClaimsOverTime\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"recipient\",\"campaignId\",\"rewardToken\",\"reason\",\"timestamp\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ALMs\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"target\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"owner\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"underlyingPool\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\",\"address\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ERC20Holders\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"holders\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blockNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"token\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Tokens\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"symbol\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"decimals\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"address\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"StateSave\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blockNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"state\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"id\",\"blockNumber\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"CampaignCreators\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tags\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"address\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
484
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"TempLeaves\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastProcessedTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\",\"recipient\",\"reason\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Leaves\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastProcessedTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\",\"recipient\",\"reason\",\"root\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Proofs\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"proof\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"root\",\"recipient\",\"rewardToken\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"MerklRoots\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"epoch\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"root\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Campaigns\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"computeChainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"index\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"creator\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignSubType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mainParameter\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignParameters\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"CampaignsToProcess\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"computeChainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"index\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"creator\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignSubType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"startTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"endTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"mainParameter\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignParameters\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastProcessedTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"processUntilTimestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"jobIndex\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"jobIndex\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Claims\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"recipient\",\"campaignId\",\"rewardToken\",\"reason\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ClaimsOverTime\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"rewardToken\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reason\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"root\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"claimed\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"0\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"recipient\",\"campaignId\",\"rewardToken\",\"reason\",\"timestamp\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ALMs\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"campaignId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"target\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"owner\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"underlyingPool\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"campaignId\",\"address\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"ERC20Holders\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"holders\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blockNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"token\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Tokens\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"symbol\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"decimals\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"chainId\",\"address\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"StateSave\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"blockNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"state\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"id\",\"blockNumber\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Nodes\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nodeType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"recipient\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nodesSourceId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"creationBlockNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"metadata\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"NodesSources\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"NodesSources\",\"nativeType\":null,\"relationName\":\"NodesToNodesSources\",\"relationFromFields\":[\"nodesSourceId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"chainId\",\"recipient\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"chainId\",\"recipient\"]}],\"isGenerated\":false},\"NodesSources\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastFetchedBlockNumber\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nodeType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chainId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"source\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"topics\",\"kind\":\"scalar\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"nodes\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Nodes\",\"nativeType\":null,\"relationName\":\"NodesToNodesSources\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"chainId\",\"source\",\"topics\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"chainId\",\"source\",\"topics\"]}],\"isGenerated\":false},\"CampaignCreators\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Char\",[\"42\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"tags\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":\"\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"address\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
440
485
  defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
441
486
  config.engineWasm = undefined
442
487
  config.compilerWasm = undefined
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prisma-client-585c2a1f10b84cec55b2c6fec54c2c23decacd3da4a5401989e8251ff484a675",
2
+ "name": "prisma-client-579e1abb6b7f5646b4485fe0ae00c6f4212add74fa44558dc695bc4817871935",
3
3
  "main": "index.js",
4
4
  "types": "index.d.ts",
5
5
  "browser": "index-browser.js",
@@ -199,6 +199,47 @@ model StateSave {
199
199
  @@id([id, blockNumber])
200
200
  }
201
201
 
202
+ model Nodes {
203
+ id String @id
204
+ chainId Int
205
+ nodeType String
206
+ recipient String
207
+ nodesSourceId String
208
+ creationBlockNumber Int
209
+ metadata Json?
210
+
211
+ // Solution for redundancy
212
+ // Many-to-one relationship
213
+ NodesSources NodesSources @relation(fields: [nodesSourceId], references: [id], onDelete: Cascade)
214
+
215
+ // Deleted nodeType because want to have only one nodeType per recipient
216
+ @@unique([chainId, recipient])
217
+ // Indexes for faster queries
218
+ @@index([chainId])
219
+ @@index([nodeType])
220
+ @@index([recipient])
221
+ }
222
+
223
+ model NodesSources {
224
+ id String @id
225
+ lastFetchedBlockNumber Int
226
+ nodeType String
227
+ chainId Int
228
+ source String @db.Char(42)
229
+ topics String[]
230
+
231
+ // We could add a count of nodes to know if we deleted some
232
+ // One-to-many relationship back to Nodes
233
+ nodes Nodes[]
234
+
235
+ // Unique constraint to ensure no duplicate blocks for the same nodeType
236
+ @@unique([chainId, source, topics])
237
+ // Indexes for faster queries
238
+ @@index([nodeType])
239
+ @@index([chainId])
240
+ @@index([source])
241
+ }
242
+
202
243
  model CampaignCreators {
203
244
  address String @db.Char(42)
204
245
  tags String @default("")
@@ -246,6 +246,25 @@ exports.Prisma.StateSaveScalarFieldEnum = {
246
246
  state: 'state'
247
247
  };
248
248
 
249
+ exports.Prisma.NodesScalarFieldEnum = {
250
+ id: 'id',
251
+ chainId: 'chainId',
252
+ nodeType: 'nodeType',
253
+ recipient: 'recipient',
254
+ nodesSourceId: 'nodesSourceId',
255
+ creationBlockNumber: 'creationBlockNumber',
256
+ metadata: 'metadata'
257
+ };
258
+
259
+ exports.Prisma.NodesSourcesScalarFieldEnum = {
260
+ id: 'id',
261
+ lastFetchedBlockNumber: 'lastFetchedBlockNumber',
262
+ nodeType: 'nodeType',
263
+ chainId: 'chainId',
264
+ source: 'source',
265
+ topics: 'topics'
266
+ };
267
+
249
268
  exports.Prisma.CampaignCreatorsScalarFieldEnum = {
250
269
  address: 'address',
251
270
  tags: 'tags'
@@ -260,6 +279,11 @@ exports.Prisma.JsonNullValueInput = {
260
279
  JsonNull: Prisma.JsonNull
261
280
  };
262
281
 
282
+ exports.Prisma.NullableJsonNullValueInput = {
283
+ DbNull: Prisma.DbNull,
284
+ JsonNull: Prisma.JsonNull
285
+ };
286
+
263
287
  exports.Prisma.QueryMode = {
264
288
  default: 'default',
265
289
  insensitive: 'insensitive'
@@ -357,6 +381,25 @@ exports.Prisma.StateSaveOrderByRelevanceFieldEnum = {
357
381
  id: 'id'
358
382
  };
359
383
 
384
+ exports.Prisma.NullsOrder = {
385
+ first: 'first',
386
+ last: 'last'
387
+ };
388
+
389
+ exports.Prisma.NodesOrderByRelevanceFieldEnum = {
390
+ id: 'id',
391
+ nodeType: 'nodeType',
392
+ recipient: 'recipient',
393
+ nodesSourceId: 'nodesSourceId'
394
+ };
395
+
396
+ exports.Prisma.NodesSourcesOrderByRelevanceFieldEnum = {
397
+ id: 'id',
398
+ nodeType: 'nodeType',
399
+ source: 'source',
400
+ topics: 'topics'
401
+ };
402
+
360
403
  exports.Prisma.CampaignCreatorsOrderByRelevanceFieldEnum = {
361
404
  address: 'address',
362
405
  tags: 'tags'
@@ -376,6 +419,8 @@ exports.Prisma.ModelName = {
376
419
  ERC20Holders: 'ERC20Holders',
377
420
  Tokens: 'Tokens',
378
421
  StateSave: 'StateSave',
422
+ Nodes: 'Nodes',
423
+ NodesSources: 'NodesSources',
379
424
  CampaignCreators: 'CampaignCreators'
380
425
  };
381
426
 
@@ -307,6 +307,7 @@ declare const eden: {
307
307
  get: (options: {
308
308
  headers?: Record<string, unknown> | undefined;
309
309
  query: {
310
+ campaigns?: boolean | undefined;
310
311
  point?: boolean | undefined;
311
312
  test?: boolean | undefined;
312
313
  };
@@ -416,6 +417,7 @@ declare const eden: {
416
417
  get: (options: {
417
418
  headers?: Record<string, unknown> | undefined;
418
419
  query: {
420
+ campaigns?: boolean | undefined;
419
421
  point?: boolean | undefined;
420
422
  test?: boolean | undefined;
421
423
  };
@@ -6202,6 +6204,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6202
6204
  id: string;
6203
6205
  };
6204
6206
  query: {
6207
+ campaigns?: boolean | undefined;
6205
6208
  point?: boolean | undefined;
6206
6209
  test?: boolean | undefined;
6207
6210
  };
@@ -6513,6 +6516,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6513
6516
  id: string;
6514
6517
  };
6515
6518
  query: {
6519
+ campaigns?: boolean | undefined;
6516
6520
  point?: boolean | undefined;
6517
6521
  test?: boolean | undefined;
6518
6522
  };
@@ -12354,6 +12358,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
12354
12358
  get: (options: {
12355
12359
  headers?: Record<string, unknown> | undefined;
12356
12360
  query: {
12361
+ campaigns?: boolean | undefined;
12357
12362
  point?: boolean | undefined;
12358
12363
  test?: boolean | undefined;
12359
12364
  };
@@ -12463,6 +12468,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
12463
12468
  get: (options: {
12464
12469
  headers?: Record<string, unknown> | undefined;
12465
12470
  query: {
12471
+ campaigns?: boolean | undefined;
12466
12472
  point?: boolean | undefined;
12467
12473
  test?: boolean | undefined;
12468
12474
  };
@@ -13,6 +13,8 @@ async function computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, poolID
13
13
  let stateSave;
14
14
  let blockNumber;
15
15
  let states = {};
16
+ // TEMPORARY: handle Gamma TVL
17
+ const nodesTVL = {};
16
18
  try {
17
19
  const currentBlock = await ChainInteractionService(computeChainId).getBlockNumber();
18
20
  const mostRecentStateSave = await engineDbClient.stateSave.findFirst({
@@ -32,9 +34,14 @@ async function computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, poolID
32
34
  }
33
35
  catch {
34
36
  log.warn(`merklDynamic data - failed to read a recent state of pool ${poolID} on ${NETWORK_LABELS[computeChainId]}`);
35
- return { amount0: 0n, amount1: 0n, blockNumber: blockNumber ?? 0 };
37
+ return { amount0: 0n, amount1: 0n, blockNumber: blockNumber ?? 0, nodesTVL };
36
38
  }
37
39
  const { fileName } = states;
40
+ // Get nodes
41
+ const nodes = await engineDbClient.nodes.findMany({
42
+ where: { chainId: computeChainId, nodeType: "GammaUniV4" },
43
+ select: { nodeType: true, recipient: true },
44
+ });
38
45
  // Bucket service
39
46
  let amount0 = 0n;
40
47
  let amount1 = 0n;
@@ -44,18 +51,31 @@ async function computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, poolID
44
51
  for (const [_, { value, params: _params }] of Object.entries(storedStates)) {
45
52
  amount0 += BigInt(value.amount0);
46
53
  amount1 += BigInt(value.amount1);
54
+ // TEMPORARY: handle Gamma TVL
55
+ if (nodes.map(node => node.recipient).includes(_params.recipient)) {
56
+ const node = nodes.find(node => node.recipient === _params.recipient);
57
+ if (!node) {
58
+ log.warn(`merklDynamic data - failed to find node ${_params.recipient} for pool ${poolID}`);
59
+ continue;
60
+ }
61
+ if (!nodesTVL[node.nodeType]) {
62
+ nodesTVL[node.nodeType] = { amount0: 0n, amount1: 0n };
63
+ }
64
+ nodesTVL[node.nodeType].amount0 += BigInt(value.amount0);
65
+ nodesTVL[node.nodeType].amount1 += BigInt(value.amount1);
66
+ }
47
67
  }
48
68
  }
49
69
  catch {
50
70
  log.warn(`merklDynamic data - failed to decode state of pool ${poolID} on ${NETWORK_LABELS[computeChainId]}`);
51
71
  }
52
- return { amount0, amount1, blockNumber: blockNumber };
72
+ return { amount0, amount1, blockNumber: blockNumber, nodesTVL };
53
73
  }
54
74
  export class UniswapV4TVLBuilder {
55
75
  async build(computeChainId, campaigns) {
56
76
  const tvls = [];
57
77
  for (const campaign of campaigns) {
58
- const { amount0: poolBalanceToken0, amount1: poolBalanceToken1 } = await computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, campaign.campaignParameters.poolId);
78
+ const { amount0: poolBalanceToken0, amount1: poolBalanceToken1, nodesTVL, } = await computeUniV4PoolTVLFromMostRecentStateSave(computeChainId, campaign.campaignParameters.poolId);
59
79
  const token0Id = TokenService.hashId({
60
80
  chainId: computeChainId,
61
81
  address: campaign.campaignParameters.currency0,
@@ -64,6 +84,13 @@ export class UniswapV4TVLBuilder {
64
84
  chainId: computeChainId,
65
85
  address: campaign.campaignParameters.currency1,
66
86
  });
87
+ if (Object.keys(nodesTVL).length > 0) {
88
+ for (const node of Object.values(nodesTVL)) {
89
+ node.tvl =
90
+ (await TokenService.getValueByTokenId(token0Id, node.amount0)) +
91
+ (await TokenService.getValueByTokenId(token1Id, node.amount1));
92
+ }
93
+ }
67
94
  tvls.push({
68
95
  campaign,
69
96
  tvl: (await TokenService.getValueByTokenId(token0Id, poolBalanceToken0)) +
@@ -79,6 +106,14 @@ export class UniswapV4TVLBuilder {
79
106
  type: TvlType.TOKEN,
80
107
  value: BN2Number(poolBalanceToken1, campaign.campaignParameters.decimalsCurrency1),
81
108
  },
109
+ // TEMPORARY: handle Gamma TVL
110
+ ...(nodesTVL
111
+ ? Object.entries(nodesTVL).map(([nodeType, { tvl }]) => ({
112
+ identifier: nodeType,
113
+ type: TvlType.PROTOCOL,
114
+ value: tvl ?? 0,
115
+ }))
116
+ : []),
82
117
  ],
83
118
  });
84
119
  }
@@ -810,6 +810,7 @@ declare const app: Elysia<"", false, {
810
810
  id: string;
811
811
  };
812
812
  query: {
813
+ campaigns?: boolean | undefined;
813
814
  point?: boolean | undefined;
814
815
  test?: boolean | undefined;
815
816
  };
@@ -1121,6 +1122,7 @@ declare const app: Elysia<"", false, {
1121
1122
  id: string;
1122
1123
  };
1123
1124
  query: {
1125
+ campaigns?: boolean | undefined;
1124
1126
  point?: boolean | undefined;
1125
1127
  test?: boolean | undefined;
1126
1128
  };
@@ -83,10 +83,10 @@ const load = async (rewardBreakdowns, skipSubCampaignReasons = false) => {
83
83
  data: rewardBreakdowns.map(breakdown => {
84
84
  // Trying to parse subcampaign reasons only when skipSubCampaignReasons is false because priority is having the breakdowns in the DB
85
85
  if (!skipSubCampaignReasons && breakdown.reason.includes("~")) {
86
- // subcampaign reason will have the form <protocol>_<campaignId>_<reason> outputted by the processor>
86
+ // subcampaign reason will have the form <campaignId>_<protocol>_<reason> outputted by the processor>
87
87
  const subcampaignReason = breakdown.reason.split("~")[breakdown.reason.split("~").length - 1];
88
88
  breakdown.reason = subcampaignReason.split("_").slice(2).join("_");
89
- breakdown.subCampaignId = subcampaignReason.split("_")[1];
89
+ breakdown.subCampaignId = subcampaignReason.split("_")[0];
90
90
  }
91
91
  return {
92
92
  id: breakdown.id,
@@ -52,7 +52,9 @@ const main = async () => {
52
52
  // 4. Update the status of the opportunities associated to live campaigns
53
53
  await OpportunityService.updateMany(liveOpportunityIds, { status: "LIVE" });
54
54
  // 5. Update records for all live campaigns
55
- const liveCampaigns = (await CampaignService.findMany({ chainId, status: "LIVE", test: true, withOpportunity: true, items: 10_000 })).map(campaign => OpportunityConvertorService.convertV4CampaignToV3(CampaignType[campaign.type], campaign, campaign.Opportunity.identifier));
55
+ const liveCampaigns = (await CampaignService.findMany({ chainId, status: "LIVE", test: true, withOpportunity: true, items: 0 }))
56
+ .concat(await CampaignService.findMany({ chainId, status: "SOON", test: true, withOpportunity: true, items: 0 }))
57
+ .map(campaign => OpportunityConvertorService.convertV4CampaignToV3(CampaignType[campaign.type], campaign, campaign.Opportunity.identifier));
56
58
  const promises = [];
57
59
  for (const type of new Set(liveCampaigns.map(c => c.campaignType))) {
58
60
  promises.push(DynamicDataService.update(chainId, type, liveCampaigns.filter(c => c.campaignType === type)));
@@ -665,6 +665,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
665
665
  id: string;
666
666
  };
667
667
  query: {
668
+ campaigns?: boolean | undefined;
668
669
  point?: boolean | undefined;
669
670
  test?: boolean | undefined;
670
671
  };
@@ -976,6 +977,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
976
977
  id: string;
977
978
  };
978
979
  query: {
980
+ campaigns?: boolean | undefined;
979
981
  point?: boolean | undefined;
980
982
  test?: boolean | undefined;
981
983
  };