@merkl/api 0.19.33 → 0.19.35
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.
- package/dist/database/api/.generated/edge.js +2 -2
- package/dist/database/api/.generated/index.js +2 -2
- package/dist/database/api/.generated/package.json +1 -1
- package/dist/database/api/.generated/schema.prisma +1 -1
- package/dist/src/eden/index.d.ts +68 -53
- package/dist/src/index.d.ts +36 -37
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +36 -37
- package/dist/src/modules/v4/campaign/campaign.controller.js +24 -58
- package/dist/src/modules/v4/campaign/campaign.repository.d.ts +1 -1
- package/dist/src/modules/v4/campaign/campaign.repository.js +1 -1
- package/dist/src/modules/v4/campaign/campaign.service.d.ts +14 -0
- package/dist/src/modules/v4/campaign/campaign.service.js +34 -22
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +6 -28
- package/dist/src/modules/v4/opportunity/opportunity.service.js +8 -45
- package/dist/src/modules/v4/router.d.ts +36 -37
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -664,8 +664,8 @@ const config = {
|
|
664
664
|
}
|
665
665
|
}
|
666
666
|
},
|
667
|
-
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-1.1.x\", \"linux-musl-arm64-openssl-3.0.x\"]\n output = \".generated/\"\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ngenerator drizzle {\n provider = \"drizzle-prisma-generator\"\n output = \".generated/drizzle/\" // Where to put generated Drizle tables\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_API_URL\")\n}\n\nmodel Campaign {\n id String @id\n ComputeChain Chain @relation(\"compute\", fields: [computeChainId], references: [id])\n computeChainId Int\n DistributionChain Chain @relation(\"distribution\", fields: [distributionChainId], references: [id])\n distributionChainId Int\n campaignId String\n type String\n // distributionType DistributionType @default(DUTCH_AUCTION)\n subType Int?\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n startTimestamp BigInt\n endTimestamp BigInt\n params Json\n RewardBreakdown RewardBreakdown[]\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n Creator User @relation(fields: [creatorAddress], references: [address])\n creatorAddress String @db.Char(42)\n // Should probably be a 1 to 1 relation if we do not want to keep historic records\n CampaignStatus CampaignStatus[]\n CampaignEngineValues CampaignComputedValue[]\n UserComputedValue UserComputedValue[]\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n manualOverrides CampaignManualOverride[] @default([])\n\n createdAt DateTime @default(now())\n\n @@unique([distributionChainId, campaignId])\n @@index([opportunityId], type: Hash)\n}\n\n// SubTable of Campaigns that should be here as soon as the campaign is processed\nmodel CampaignStatus {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n computedUntil BigInt\n processingStarted BigInt\n status RunStatus @default(SUCCESS)\n error String @default(\"\")\n details Json @default(\"{}\")\n}\n\n// SubTable of Campaigns that will contain values populated by the Engine when it's running\nmodel CampaignComputedValue {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n averageBoost Float? // Average boost in case of boosting hook\n totalDistributedInUSD Float? // Used in case there is a distribution cap\n forfeitingBoost Float? // In case some rewards are forfeited, resulting boost for remaining users\n}\n\nmodel UserComputedValue {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n address String @db.Char(42)\n User User? @relation(fields: [address], references: [address])\n reason String\n boost Float?\n\n @@unique([campaignId, address, reason])\n}\n\nmodel Chain {\n id Int @id\n name String\n icon String\n // liveCampaigns Int @default(0)\n // dailyRewards Float @default(0)\n Explorer Explorer[]\n Campaigns Campaign[] @relation(\"compute\")\n Distribution Campaign[] @relation(\"distribution\")\n Token Token[]\n Opportunity Opportunity[]\n MerklRoot MerklRoot[]\n Blacklist Blacklist[]\n Dump Dump[]\n}\n\nmodel Explorer {\n id String @id\n type ExplorerType\n Chain Chain @relation(fields: [chainId], references: [id])\n url String\n chainId Int\n\n @@unique([type, chainId])\n}\n\nmodel Opportunity {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id]) // compute\n chainId Int // compute\n type String\n identifier String // eg. 0xUniswapPool - formerly mainParameter\n name String\n depositUrl String?\n status Status\n action OpportunityAction\n Tokens Token[]\n Campaigns Campaign[]\n Protocols Protocol[]\n MainProtocol Protocol? @relation(name: \"main\", fields: [mainProtocolId], references: [id])\n mainProtocolId String?\n tvl Float @default(0)\n TvlRecords TVLRecord[]\n apr Float @default(0)\n AprRecords AprRecord[]\n dailyRewards Float @default(0)\n DailyRewardsRecords DailyRewardsRecord[]\n tags String[] @default([])\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n // manualOverrides OpportunityManualOverride[] @default([])\n\n @@unique([chainId, type, identifier])\n}\n\nmodel Protocol {\n id String @id\n tags String[] @default([])\n name String\n description String @default(\"\")\n url String\n icon String\n // liveCampaigns Int @default(0)\n // totalDailyRewards Float @default(0)\n MainOpportunities Opportunity[] @relation(name: \"main\")\n Opportunities Opportunity[]\n RewardBreakdown RewardBreakdown[]\n}\n\nmodel Token {\n id String @id()\n name String?\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n address String @db.Char(42)\n decimals Int\n symbol String\n displaySymbol String @default(\"\")\n icon String\n verified Boolean @default(false)\n isTest Boolean @default(false)\n isPoint Boolean @default(false)\n isNative Boolean @default(false)\n price Float?\n Opportunity Opportunity[]\n Campaigns Campaign[]\n Reward Reward[]\n DumpTo Dump[] @relation(\"to\")\n DumpFrom Dump[] @relation(\"from\")\n\n @@unique([chainId, address])\n @@index([chainId], type: Hash)\n @@index([symbol, address])\n}\n\nmodel AprRecord {\n id String @id\n timestamp BigInt\n cumulated Float\n AprBreakdown AprBreakdown[]\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel AprBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type AprType\n value Float\n AprRecord AprRecord @relation(fields: [aprRecordId], references: [id])\n aprRecordId String\n\n @@index([aprRecordId], type: Hash)\n}\n\nmodel TVLRecord {\n id String @id\n timestamp BigInt\n total Float\n TvlBreakdown TVLBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel TVLBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type TvlType\n value Float\n\n TvlRecord TVLRecord @relation(fields: [tvlRecordId], references: [id])\n tvlRecordId String\n\n @@index([tvlRecordId], type: Hash)\n}\n\nmodel DailyRewardsRecord {\n id String @id\n timestamp BigInt\n total Float\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel DailyRewardsBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n value Float\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n DailyRewardsRecord DailyRewardsRecord @relation(fields: [dailyRewardsRecordId], references: [id])\n dailyRewardsRecordId String\n\n @@index([dailyRewardsRecordId], type: Hash)\n}\n\nmodel User {\n address String @id @db.Char(42)\n Rewards Reward[]\n Blacklist Blacklist[]\n CampaignsCreated Campaign[]\n UserComputedValue UserComputedValue[]\n tags String[]\n\n Creator Creator? @relation(fields: [creatorId], references: [id])\n creatorId String?\n}\n\nmodel Creator {\n id String @id\n icon String?\n name String\n Users User[]\n}\n\nmodel Reward {\n id String @id\n MerklRoot MerklRoot @relation(fields: [root], references: [root])\n root String\n User User @relation(fields: [recipient], references: [address])\n recipient String @db.Char(42)\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String @default(\"0\")\n claimed String @default(\"0\")\n pending String @default(\"0\")\n proofs String[]\n Breakdown RewardBreakdown[]\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([root, recipient, rewardTokenId])\n @@index([root], type: Hash)\n @@index([recipient, rewardTokenId])\n}\n\nmodel RewardBreakdown {\n id BigInt @id @default(autoincrement())\n Protocol Protocol? @relation(fields: [protocolId], references: [id])\n protocolId String?\n reason String\n amount String\n claimed String\n pending String\n Reward Reward @relation(fields: [rewardId], references: [id], onDelete: Cascade)\n rewardId String\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([rewardId, campaignId, reason])\n @@index([rewardId], type: Hash)\n @@index([campaignId], type: Hash)\n}\n\nmodel MerklRoot {\n root String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n epoch Int\n timestamp BigInt\n Rewards Reward[]\n\n @@index([chainId, root])\n}\n\nmodel PriceSource {\n id Int @id @default(autoincrement())\n symbol String @unique() // Price Id\n method PriceSourceMethod\n args Json?\n}\n\n// priceId -> number\n\nmodel Blacklist {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n poolAddress String @db.Char(42)\n User User @relation(fields: [userAddress], references: [address])\n userAddress String @db.Char(42)\n arrestTimestamp BigInt\n arrestDetails Json\n\n @@unique([chainId, userAddress, poolAddress])\n @@index([userAddress], type: Hash)\n}\n\nmodel Dump {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n FromToken Token @relation(name: \"from\", fields: [fromTokenId], references: [id])\n fromTokenId String\n ToToken Token @relation(name: \"to\", fields: [toTokenId], references: [id])\n toTokenId String\n multisig String @db.Char(42)\n recipient String @db.Char(42)\n amountIn String @default(\"0\")\n amountOut String @default(\"0\")\n datetime DateTime\n timestamp Int\n\n @@unique([chainId, fromTokenId, toTokenId, timestamp])\n}\n\nmodel Logged {\n id String @id\n chainId Int\n type LoggedEntityType @default(UNKNOWN)\n address String? @db.Char(42)\n fetchAtBlock Int\n caughtFromAddress String @db.Char(42)\n entityData Json\n\n @@unique([chainId, address])\n}\n\n// enums\n\nenum LoggedEntityType {\n UNKNOWN\n EULER_VAULT\n UNISWAP_V4\n COMPOUND_v2\n}\n\nenum RunStatus {\n PROCESSING\n SUCCESS\n FAILED\n SKIPPED\n}\n\nenum OpportunityAction {\n POOL\n HOLD\n DROP\n LEND\n BORROW\n LONG\n SHORT\n SWAP\n INVALID\n}\n\nenum Status {\n NONE // This would mean that no campaigns was ever created for this opportunity\n PAST\n LIVE\n SOON\n}\n\nenum ExplorerType {\n ETHERSCAN\n BLOCKSCOUT\n}\n\nenum AprType {\n CAMPAIGN\n TOKEN\n PROTOCOL\n}\n\nenum TvlType {\n TOKEN\n PROTOCOL\n}\n\nenum PriceSourceMethod {\n COINGECKO\n CONSTANT\n EQUAL_TO\n ERC4626\n DEXSCREENER\n INDEXCOOP\n DEFILLAMA\n}\n\nenum CampaignManualOverride {\n opportunityId\n creatorAddress\n}\n\nenum OpportunityManualOverride {\n identifier\n name\n depositUrl\n action\n mainProtocolId\n}\n\nenum DistributionType {\n DUTCH_AUCTION\n FIX_REWARD_VALUE_PER_LIQUIDITY_VALUE // The fix reward value will lie in params.apr\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_VALUE\n FIX_REWARD_VALUE_PER_LIQUIDITY_AMOUNT\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNT\n}\n",
|
668
|
-
"inlineSchemaHash": "
|
667
|
+
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-1.1.x\", \"linux-musl-arm64-openssl-3.0.x\"]\n output = \".generated/\"\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ngenerator drizzle {\n provider = \"drizzle-prisma-generator\"\n output = \".generated/drizzle/\" // Where to put generated Drizle tables\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_API_URL\")\n}\n\nmodel Campaign {\n id String @id\n ComputeChain Chain @relation(\"compute\", fields: [computeChainId], references: [id])\n computeChainId Int\n DistributionChain Chain @relation(\"distribution\", fields: [distributionChainId], references: [id])\n distributionChainId Int\n campaignId String\n type String\n // distributionType DistributionType @default(DUTCH_AUCTION)\n subType Int?\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n startTimestamp BigInt\n endTimestamp BigInt\n params Json\n RewardBreakdown RewardBreakdown[]\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n Creator User @relation(fields: [creatorAddress], references: [address])\n creatorAddress String @db.Char(42)\n // Should probably be a 1 to 1 relation if we do not want to keep historic records\n CampaignStatus CampaignStatus[]\n CampaignEngineValues CampaignComputedValue[]\n UserComputedValue UserComputedValue[]\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n manualOverrides CampaignManualOverride[] @default([])\n\n createdAt DateTime @default(now())\n\n @@unique([distributionChainId, campaignId])\n @@index([opportunityId], type: Hash)\n}\n\n// SubTable of Campaigns that should be here as soon as the campaign is processed\nmodel CampaignStatus {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n computedUntil BigInt\n processingStarted BigInt\n status RunStatus @default(SUCCESS)\n error String @default(\"\")\n details Json @default(\"{}\")\n}\n\n// SubTable of Campaigns that will contain values populated by the Engine when it's running\nmodel CampaignComputedValue {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n averageBoost Float? // Average boost in case of boosting hook\n totalDistributedInUSD Float? // Used in case there is a distribution cap\n forfeitingBoost Float? // In case some rewards are forfeited, resulting boost for remaining users\n}\n\nmodel UserComputedValue {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n address String @db.Char(42)\n User User? @relation(fields: [address], references: [address])\n reason String\n boost Float?\n\n @@unique([campaignId, address, reason])\n}\n\nmodel Chain {\n id Int @id\n name String\n icon String\n // liveCampaigns Int @default(0)\n // dailyRewards Float @default(0)\n Explorer Explorer[]\n Campaigns Campaign[] @relation(\"compute\")\n Distribution Campaign[] @relation(\"distribution\")\n Token Token[]\n Opportunity Opportunity[]\n MerklRoot MerklRoot[]\n Blacklist Blacklist[]\n Dump Dump[]\n}\n\nmodel Explorer {\n id String @id\n type ExplorerType\n Chain Chain @relation(fields: [chainId], references: [id])\n url String\n chainId Int\n\n @@unique([type, chainId])\n}\n\nmodel Opportunity {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id]) // compute\n chainId Int // compute\n type String\n identifier String // eg. 0xUniswapPool - formerly mainParameter\n name String\n depositUrl String?\n status Status\n action OpportunityAction\n Tokens Token[]\n Campaigns Campaign[]\n Protocols Protocol[]\n MainProtocol Protocol? @relation(name: \"main\", fields: [mainProtocolId], references: [id])\n mainProtocolId String?\n tvl Float @default(0)\n TvlRecords TVLRecord[]\n apr Float @default(0)\n AprRecords AprRecord[]\n dailyRewards Float @default(0)\n DailyRewardsRecords DailyRewardsRecord[]\n tags String[] @default([])\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n // manualOverrides OpportunityManualOverride[] @default([])\n\n @@unique([chainId, type, identifier])\n}\n\nmodel Protocol {\n id String @id\n tags String[] @default([])\n name String\n description String @default(\"\")\n url String\n icon String\n // liveCampaigns Int @default(0)\n // totalDailyRewards Float @default(0)\n MainOpportunities Opportunity[] @relation(name: \"main\")\n Opportunities Opportunity[]\n RewardBreakdown RewardBreakdown[]\n}\n\nmodel Token {\n id String @id()\n name String?\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n address String @db.Char(42)\n decimals Int\n symbol String\n displaySymbol String @default(\"\")\n icon String\n verified Boolean @default(false)\n isTest Boolean @default(false)\n isPoint Boolean @default(false)\n isNative Boolean @default(false)\n price Float?\n Opportunity Opportunity[]\n Campaigns Campaign[]\n Reward Reward[]\n DumpTo Dump[] @relation(\"to\")\n DumpFrom Dump[] @relation(\"from\")\n\n @@unique([chainId, address])\n @@index([chainId], type: Hash)\n @@index([symbol, address])\n}\n\nmodel AprRecord {\n id String @id\n timestamp BigInt\n cumulated Float\n AprBreakdown AprBreakdown[]\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel AprBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type AprType\n value Float\n AprRecord AprRecord @relation(fields: [aprRecordId], references: [id])\n aprRecordId String\n\n @@index([aprRecordId], type: Hash)\n}\n\nmodel TVLRecord {\n id String @id\n timestamp BigInt\n total Float\n TvlBreakdown TVLBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel TVLBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type TvlType\n value Float\n\n TvlRecord TVLRecord @relation(fields: [tvlRecordId], references: [id])\n tvlRecordId String\n\n @@index([tvlRecordId], type: Hash)\n}\n\nmodel DailyRewardsRecord {\n id String @id\n timestamp BigInt\n total Float\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel DailyRewardsBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n value Float\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n DailyRewardsRecord DailyRewardsRecord @relation(fields: [dailyRewardsRecordId], references: [id])\n dailyRewardsRecordId String\n\n @@index([dailyRewardsRecordId], type: Hash)\n}\n\nmodel User {\n address String @id @db.Char(42)\n Rewards Reward[]\n Blacklist Blacklist[]\n CampaignsCreated Campaign[]\n UserComputedValue UserComputedValue[]\n tags String[]\n\n Creator Creator? @relation(fields: [creatorId], references: [id])\n creatorId String?\n}\n\nmodel Creator {\n id String @id\n icon String?\n name String\n Users User[]\n}\n\nmodel Reward {\n id String @id\n MerklRoot MerklRoot @relation(fields: [root], references: [root])\n root String\n User User @relation(fields: [recipient], references: [address])\n recipient String @db.Char(42)\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String @default(\"0\")\n claimed String @default(\"0\")\n pending String @default(\"0\")\n proofs String[]\n Breakdown RewardBreakdown[]\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([root, recipient, rewardTokenId])\n @@index([root], type: Hash)\n @@index([recipient, rewardTokenId])\n}\n\nmodel RewardBreakdown {\n id BigInt @id @default(autoincrement())\n Protocol Protocol? @relation(fields: [protocolId], references: [id])\n protocolId String?\n reason String\n amount String\n claimed String\n pending String\n Reward Reward @relation(fields: [rewardId], references: [id], onDelete: Cascade)\n rewardId String\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([rewardId, campaignId, reason])\n @@index([rewardId], type: Hash)\n @@index([campaignId], type: Hash)\n}\n\nmodel MerklRoot {\n root String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n epoch Int\n timestamp BigInt\n Rewards Reward[]\n\n @@index([chainId, root])\n}\n\nmodel PriceSource {\n id Int @id @default(autoincrement()) // This should hold in Int ids\n symbol String @unique() // Price Id\n method PriceSourceMethod\n args Json?\n}\n\n// priceId -> number\n\nmodel Blacklist {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n poolAddress String @db.Char(42)\n User User @relation(fields: [userAddress], references: [address])\n userAddress String @db.Char(42)\n arrestTimestamp BigInt\n arrestDetails Json\n\n @@unique([chainId, userAddress, poolAddress])\n @@index([userAddress], type: Hash)\n}\n\nmodel Dump {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n FromToken Token @relation(name: \"from\", fields: [fromTokenId], references: [id])\n fromTokenId String\n ToToken Token @relation(name: \"to\", fields: [toTokenId], references: [id])\n toTokenId String\n multisig String @db.Char(42)\n recipient String @db.Char(42)\n amountIn String @default(\"0\")\n amountOut String @default(\"0\")\n datetime DateTime\n timestamp Int\n\n @@unique([chainId, fromTokenId, toTokenId, timestamp])\n}\n\nmodel Logged {\n id String @id\n chainId Int\n type LoggedEntityType @default(UNKNOWN)\n address String? @db.Char(42)\n fetchAtBlock Int\n caughtFromAddress String @db.Char(42)\n entityData Json\n\n @@unique([chainId, address])\n}\n\n// enums\n\nenum LoggedEntityType {\n UNKNOWN\n EULER_VAULT\n UNISWAP_V4\n COMPOUND_v2\n}\n\nenum RunStatus {\n PROCESSING\n SUCCESS\n FAILED\n SKIPPED\n}\n\nenum OpportunityAction {\n POOL\n HOLD\n DROP\n LEND\n BORROW\n LONG\n SHORT\n SWAP\n INVALID\n}\n\nenum Status {\n NONE // This would mean that no campaigns was ever created for this opportunity\n PAST\n LIVE\n SOON\n}\n\nenum ExplorerType {\n ETHERSCAN\n BLOCKSCOUT\n}\n\nenum AprType {\n CAMPAIGN\n TOKEN\n PROTOCOL\n}\n\nenum TvlType {\n TOKEN\n PROTOCOL\n}\n\nenum PriceSourceMethod {\n COINGECKO\n CONSTANT\n EQUAL_TO\n ERC4626\n DEXSCREENER\n INDEXCOOP\n DEFILLAMA\n}\n\nenum CampaignManualOverride {\n opportunityId\n creatorAddress\n}\n\nenum OpportunityManualOverride {\n identifier\n name\n depositUrl\n action\n mainProtocolId\n}\n\nenum DistributionType {\n DUTCH_AUCTION\n FIX_REWARD_VALUE_PER_LIQUIDITY_VALUE // The fix reward value will lie in params.apr\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_VALUE\n FIX_REWARD_VALUE_PER_LIQUIDITY_AMOUNT\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNT\n}\n",
|
668
|
+
"inlineSchemaHash": "fbe37287ee5a0119a9a3c04f6158171df81f3b0c048a09a06d04f7026a4d7684",
|
669
669
|
"copyEngine": true
|
670
670
|
}
|
671
671
|
config.dirname = '/'
|
@@ -665,8 +665,8 @@ const config = {
|
|
665
665
|
}
|
666
666
|
}
|
667
667
|
},
|
668
|
-
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-1.1.x\", \"linux-musl-arm64-openssl-3.0.x\"]\n output = \".generated/\"\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ngenerator drizzle {\n provider = \"drizzle-prisma-generator\"\n output = \".generated/drizzle/\" // Where to put generated Drizle tables\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_API_URL\")\n}\n\nmodel Campaign {\n id String @id\n ComputeChain Chain @relation(\"compute\", fields: [computeChainId], references: [id])\n computeChainId Int\n DistributionChain Chain @relation(\"distribution\", fields: [distributionChainId], references: [id])\n distributionChainId Int\n campaignId String\n type String\n // distributionType DistributionType @default(DUTCH_AUCTION)\n subType Int?\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n startTimestamp BigInt\n endTimestamp BigInt\n params Json\n RewardBreakdown RewardBreakdown[]\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n Creator User @relation(fields: [creatorAddress], references: [address])\n creatorAddress String @db.Char(42)\n // Should probably be a 1 to 1 relation if we do not want to keep historic records\n CampaignStatus CampaignStatus[]\n CampaignEngineValues CampaignComputedValue[]\n UserComputedValue UserComputedValue[]\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n manualOverrides CampaignManualOverride[] @default([])\n\n createdAt DateTime @default(now())\n\n @@unique([distributionChainId, campaignId])\n @@index([opportunityId], type: Hash)\n}\n\n// SubTable of Campaigns that should be here as soon as the campaign is processed\nmodel CampaignStatus {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n computedUntil BigInt\n processingStarted BigInt\n status RunStatus @default(SUCCESS)\n error String @default(\"\")\n details Json @default(\"{}\")\n}\n\n// SubTable of Campaigns that will contain values populated by the Engine when it's running\nmodel CampaignComputedValue {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n averageBoost Float? // Average boost in case of boosting hook\n totalDistributedInUSD Float? // Used in case there is a distribution cap\n forfeitingBoost Float? // In case some rewards are forfeited, resulting boost for remaining users\n}\n\nmodel UserComputedValue {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n address String @db.Char(42)\n User User? @relation(fields: [address], references: [address])\n reason String\n boost Float?\n\n @@unique([campaignId, address, reason])\n}\n\nmodel Chain {\n id Int @id\n name String\n icon String\n // liveCampaigns Int @default(0)\n // dailyRewards Float @default(0)\n Explorer Explorer[]\n Campaigns Campaign[] @relation(\"compute\")\n Distribution Campaign[] @relation(\"distribution\")\n Token Token[]\n Opportunity Opportunity[]\n MerklRoot MerklRoot[]\n Blacklist Blacklist[]\n Dump Dump[]\n}\n\nmodel Explorer {\n id String @id\n type ExplorerType\n Chain Chain @relation(fields: [chainId], references: [id])\n url String\n chainId Int\n\n @@unique([type, chainId])\n}\n\nmodel Opportunity {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id]) // compute\n chainId Int // compute\n type String\n identifier String // eg. 0xUniswapPool - formerly mainParameter\n name String\n depositUrl String?\n status Status\n action OpportunityAction\n Tokens Token[]\n Campaigns Campaign[]\n Protocols Protocol[]\n MainProtocol Protocol? @relation(name: \"main\", fields: [mainProtocolId], references: [id])\n mainProtocolId String?\n tvl Float @default(0)\n TvlRecords TVLRecord[]\n apr Float @default(0)\n AprRecords AprRecord[]\n dailyRewards Float @default(0)\n DailyRewardsRecords DailyRewardsRecord[]\n tags String[] @default([])\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n // manualOverrides OpportunityManualOverride[] @default([])\n\n @@unique([chainId, type, identifier])\n}\n\nmodel Protocol {\n id String @id\n tags String[] @default([])\n name String\n description String @default(\"\")\n url String\n icon String\n // liveCampaigns Int @default(0)\n // totalDailyRewards Float @default(0)\n MainOpportunities Opportunity[] @relation(name: \"main\")\n Opportunities Opportunity[]\n RewardBreakdown RewardBreakdown[]\n}\n\nmodel Token {\n id String @id()\n name String?\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n address String @db.Char(42)\n decimals Int\n symbol String\n displaySymbol String @default(\"\")\n icon String\n verified Boolean @default(false)\n isTest Boolean @default(false)\n isPoint Boolean @default(false)\n isNative Boolean @default(false)\n price Float?\n Opportunity Opportunity[]\n Campaigns Campaign[]\n Reward Reward[]\n DumpTo Dump[] @relation(\"to\")\n DumpFrom Dump[] @relation(\"from\")\n\n @@unique([chainId, address])\n @@index([chainId], type: Hash)\n @@index([symbol, address])\n}\n\nmodel AprRecord {\n id String @id\n timestamp BigInt\n cumulated Float\n AprBreakdown AprBreakdown[]\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel AprBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type AprType\n value Float\n AprRecord AprRecord @relation(fields: [aprRecordId], references: [id])\n aprRecordId String\n\n @@index([aprRecordId], type: Hash)\n}\n\nmodel TVLRecord {\n id String @id\n timestamp BigInt\n total Float\n TvlBreakdown TVLBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel TVLBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type TvlType\n value Float\n\n TvlRecord TVLRecord @relation(fields: [tvlRecordId], references: [id])\n tvlRecordId String\n\n @@index([tvlRecordId], type: Hash)\n}\n\nmodel DailyRewardsRecord {\n id String @id\n timestamp BigInt\n total Float\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel DailyRewardsBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n value Float\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n DailyRewardsRecord DailyRewardsRecord @relation(fields: [dailyRewardsRecordId], references: [id])\n dailyRewardsRecordId String\n\n @@index([dailyRewardsRecordId], type: Hash)\n}\n\nmodel User {\n address String @id @db.Char(42)\n Rewards Reward[]\n Blacklist Blacklist[]\n CampaignsCreated Campaign[]\n UserComputedValue UserComputedValue[]\n tags String[]\n\n Creator Creator? @relation(fields: [creatorId], references: [id])\n creatorId String?\n}\n\nmodel Creator {\n id String @id\n icon String?\n name String\n Users User[]\n}\n\nmodel Reward {\n id String @id\n MerklRoot MerklRoot @relation(fields: [root], references: [root])\n root String\n User User @relation(fields: [recipient], references: [address])\n recipient String @db.Char(42)\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String @default(\"0\")\n claimed String @default(\"0\")\n pending String @default(\"0\")\n proofs String[]\n Breakdown RewardBreakdown[]\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([root, recipient, rewardTokenId])\n @@index([root], type: Hash)\n @@index([recipient, rewardTokenId])\n}\n\nmodel RewardBreakdown {\n id BigInt @id @default(autoincrement())\n Protocol Protocol? @relation(fields: [protocolId], references: [id])\n protocolId String?\n reason String\n amount String\n claimed String\n pending String\n Reward Reward @relation(fields: [rewardId], references: [id], onDelete: Cascade)\n rewardId String\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([rewardId, campaignId, reason])\n @@index([rewardId], type: Hash)\n @@index([campaignId], type: Hash)\n}\n\nmodel MerklRoot {\n root String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n epoch Int\n timestamp BigInt\n Rewards Reward[]\n\n @@index([chainId, root])\n}\n\nmodel PriceSource {\n id Int @id @default(autoincrement())\n symbol String @unique() // Price Id\n method PriceSourceMethod\n args Json?\n}\n\n// priceId -> number\n\nmodel Blacklist {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n poolAddress String @db.Char(42)\n User User @relation(fields: [userAddress], references: [address])\n userAddress String @db.Char(42)\n arrestTimestamp BigInt\n arrestDetails Json\n\n @@unique([chainId, userAddress, poolAddress])\n @@index([userAddress], type: Hash)\n}\n\nmodel Dump {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n FromToken Token @relation(name: \"from\", fields: [fromTokenId], references: [id])\n fromTokenId String\n ToToken Token @relation(name: \"to\", fields: [toTokenId], references: [id])\n toTokenId String\n multisig String @db.Char(42)\n recipient String @db.Char(42)\n amountIn String @default(\"0\")\n amountOut String @default(\"0\")\n datetime DateTime\n timestamp Int\n\n @@unique([chainId, fromTokenId, toTokenId, timestamp])\n}\n\nmodel Logged {\n id String @id\n chainId Int\n type LoggedEntityType @default(UNKNOWN)\n address String? @db.Char(42)\n fetchAtBlock Int\n caughtFromAddress String @db.Char(42)\n entityData Json\n\n @@unique([chainId, address])\n}\n\n// enums\n\nenum LoggedEntityType {\n UNKNOWN\n EULER_VAULT\n UNISWAP_V4\n COMPOUND_v2\n}\n\nenum RunStatus {\n PROCESSING\n SUCCESS\n FAILED\n SKIPPED\n}\n\nenum OpportunityAction {\n POOL\n HOLD\n DROP\n LEND\n BORROW\n LONG\n SHORT\n SWAP\n INVALID\n}\n\nenum Status {\n NONE // This would mean that no campaigns was ever created for this opportunity\n PAST\n LIVE\n SOON\n}\n\nenum ExplorerType {\n ETHERSCAN\n BLOCKSCOUT\n}\n\nenum AprType {\n CAMPAIGN\n TOKEN\n PROTOCOL\n}\n\nenum TvlType {\n TOKEN\n PROTOCOL\n}\n\nenum PriceSourceMethod {\n COINGECKO\n CONSTANT\n EQUAL_TO\n ERC4626\n DEXSCREENER\n INDEXCOOP\n DEFILLAMA\n}\n\nenum CampaignManualOverride {\n opportunityId\n creatorAddress\n}\n\nenum OpportunityManualOverride {\n identifier\n name\n depositUrl\n action\n mainProtocolId\n}\n\nenum DistributionType {\n DUTCH_AUCTION\n FIX_REWARD_VALUE_PER_LIQUIDITY_VALUE // The fix reward value will lie in params.apr\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_VALUE\n FIX_REWARD_VALUE_PER_LIQUIDITY_AMOUNT\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNT\n}\n",
|
669
|
-
"inlineSchemaHash": "
|
668
|
+
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-1.1.x\", \"linux-musl-arm64-openssl-3.0.x\"]\n output = \".generated/\"\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ngenerator drizzle {\n provider = \"drizzle-prisma-generator\"\n output = \".generated/drizzle/\" // Where to put generated Drizle tables\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_API_URL\")\n}\n\nmodel Campaign {\n id String @id\n ComputeChain Chain @relation(\"compute\", fields: [computeChainId], references: [id])\n computeChainId Int\n DistributionChain Chain @relation(\"distribution\", fields: [distributionChainId], references: [id])\n distributionChainId Int\n campaignId String\n type String\n // distributionType DistributionType @default(DUTCH_AUCTION)\n subType Int?\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n startTimestamp BigInt\n endTimestamp BigInt\n params Json\n RewardBreakdown RewardBreakdown[]\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n Creator User @relation(fields: [creatorAddress], references: [address])\n creatorAddress String @db.Char(42)\n // Should probably be a 1 to 1 relation if we do not want to keep historic records\n CampaignStatus CampaignStatus[]\n CampaignEngineValues CampaignComputedValue[]\n UserComputedValue UserComputedValue[]\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n manualOverrides CampaignManualOverride[] @default([])\n\n createdAt DateTime @default(now())\n\n @@unique([distributionChainId, campaignId])\n @@index([opportunityId], type: Hash)\n}\n\n// SubTable of Campaigns that should be here as soon as the campaign is processed\nmodel CampaignStatus {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n computedUntil BigInt\n processingStarted BigInt\n status RunStatus @default(SUCCESS)\n error String @default(\"\")\n details Json @default(\"{}\")\n}\n\n// SubTable of Campaigns that will contain values populated by the Engine when it's running\nmodel CampaignComputedValue {\n campaignId String @id\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n averageBoost Float? // Average boost in case of boosting hook\n totalDistributedInUSD Float? // Used in case there is a distribution cap\n forfeitingBoost Float? // In case some rewards are forfeited, resulting boost for remaining users\n}\n\nmodel UserComputedValue {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n address String @db.Char(42)\n User User? @relation(fields: [address], references: [address])\n reason String\n boost Float?\n\n @@unique([campaignId, address, reason])\n}\n\nmodel Chain {\n id Int @id\n name String\n icon String\n // liveCampaigns Int @default(0)\n // dailyRewards Float @default(0)\n Explorer Explorer[]\n Campaigns Campaign[] @relation(\"compute\")\n Distribution Campaign[] @relation(\"distribution\")\n Token Token[]\n Opportunity Opportunity[]\n MerklRoot MerklRoot[]\n Blacklist Blacklist[]\n Dump Dump[]\n}\n\nmodel Explorer {\n id String @id\n type ExplorerType\n Chain Chain @relation(fields: [chainId], references: [id])\n url String\n chainId Int\n\n @@unique([type, chainId])\n}\n\nmodel Opportunity {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id]) // compute\n chainId Int // compute\n type String\n identifier String // eg. 0xUniswapPool - formerly mainParameter\n name String\n depositUrl String?\n status Status\n action OpportunityAction\n Tokens Token[]\n Campaigns Campaign[]\n Protocols Protocol[]\n MainProtocol Protocol? @relation(name: \"main\", fields: [mainProtocolId], references: [id])\n mainProtocolId String?\n tvl Float @default(0)\n TvlRecords TVLRecord[]\n apr Float @default(0)\n AprRecords AprRecord[]\n dailyRewards Float @default(0)\n DailyRewardsRecords DailyRewardsRecord[]\n tags String[] @default([])\n\n // Fields should be automatically parsable and overriden periodically UNLESS\n // they are manually overridden, in which case they should be kept as is\n // manualOverrides OpportunityManualOverride[] @default([])\n\n @@unique([chainId, type, identifier])\n}\n\nmodel Protocol {\n id String @id\n tags String[] @default([])\n name String\n description String @default(\"\")\n url String\n icon String\n // liveCampaigns Int @default(0)\n // totalDailyRewards Float @default(0)\n MainOpportunities Opportunity[] @relation(name: \"main\")\n Opportunities Opportunity[]\n RewardBreakdown RewardBreakdown[]\n}\n\nmodel Token {\n id String @id()\n name String?\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n address String @db.Char(42)\n decimals Int\n symbol String\n displaySymbol String @default(\"\")\n icon String\n verified Boolean @default(false)\n isTest Boolean @default(false)\n isPoint Boolean @default(false)\n isNative Boolean @default(false)\n price Float?\n Opportunity Opportunity[]\n Campaigns Campaign[]\n Reward Reward[]\n DumpTo Dump[] @relation(\"to\")\n DumpFrom Dump[] @relation(\"from\")\n\n @@unique([chainId, address])\n @@index([chainId], type: Hash)\n @@index([symbol, address])\n}\n\nmodel AprRecord {\n id String @id\n timestamp BigInt\n cumulated Float\n AprBreakdown AprBreakdown[]\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel AprBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type AprType\n value Float\n AprRecord AprRecord @relation(fields: [aprRecordId], references: [id])\n aprRecordId String\n\n @@index([aprRecordId], type: Hash)\n}\n\nmodel TVLRecord {\n id String @id\n timestamp BigInt\n total Float\n TvlBreakdown TVLBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel TVLBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n identifier String\n type TvlType\n value Float\n\n TvlRecord TVLRecord @relation(fields: [tvlRecordId], references: [id])\n tvlRecordId String\n\n @@index([tvlRecordId], type: Hash)\n}\n\nmodel DailyRewardsRecord {\n id String @id\n timestamp BigInt\n total Float\n DailyRewardsBreakdown DailyRewardsBreakdown[]\n\n Opportunity Opportunity @relation(fields: [opportunityId], references: [id])\n opportunityId String\n\n @@unique([opportunityId, timestamp])\n @@index([opportunityId, timestamp(sort: Desc)])\n}\n\nmodel DailyRewardsBreakdown {\n id Int @id @default(autoincrement()) // TODO Migrate to something smarter than Int ids\n value Float\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n DailyRewardsRecord DailyRewardsRecord @relation(fields: [dailyRewardsRecordId], references: [id])\n dailyRewardsRecordId String\n\n @@index([dailyRewardsRecordId], type: Hash)\n}\n\nmodel User {\n address String @id @db.Char(42)\n Rewards Reward[]\n Blacklist Blacklist[]\n CampaignsCreated Campaign[]\n UserComputedValue UserComputedValue[]\n tags String[]\n\n Creator Creator? @relation(fields: [creatorId], references: [id])\n creatorId String?\n}\n\nmodel Creator {\n id String @id\n icon String?\n name String\n Users User[]\n}\n\nmodel Reward {\n id String @id\n MerklRoot MerklRoot @relation(fields: [root], references: [root])\n root String\n User User @relation(fields: [recipient], references: [address])\n recipient String @db.Char(42)\n RewardToken Token @relation(fields: [rewardTokenId], references: [id])\n rewardTokenId String\n amount String @default(\"0\")\n claimed String @default(\"0\")\n pending String @default(\"0\")\n proofs String[]\n Breakdown RewardBreakdown[]\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([root, recipient, rewardTokenId])\n @@index([root], type: Hash)\n @@index([recipient, rewardTokenId])\n}\n\nmodel RewardBreakdown {\n id BigInt @id @default(autoincrement())\n Protocol Protocol? @relation(fields: [protocolId], references: [id])\n protocolId String?\n reason String\n amount String\n claimed String\n pending String\n Reward Reward @relation(fields: [rewardId], references: [id], onDelete: Cascade)\n rewardId String\n campaignId String\n Campaign Campaign @relation(fields: [campaignId], references: [id])\n // Hidden index on ((CAST(amount AS INTEGER) + CAST(pending AS INTEGER)));\n\n @@unique([rewardId, campaignId, reason])\n @@index([rewardId], type: Hash)\n @@index([campaignId], type: Hash)\n}\n\nmodel MerklRoot {\n root String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n epoch Int\n timestamp BigInt\n Rewards Reward[]\n\n @@index([chainId, root])\n}\n\nmodel PriceSource {\n id Int @id @default(autoincrement()) // This should hold in Int ids\n symbol String @unique() // Price Id\n method PriceSourceMethod\n args Json?\n}\n\n// priceId -> number\n\nmodel Blacklist {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n poolAddress String @db.Char(42)\n User User @relation(fields: [userAddress], references: [address])\n userAddress String @db.Char(42)\n arrestTimestamp BigInt\n arrestDetails Json\n\n @@unique([chainId, userAddress, poolAddress])\n @@index([userAddress], type: Hash)\n}\n\nmodel Dump {\n id String @id\n Chain Chain @relation(fields: [chainId], references: [id])\n chainId Int\n FromToken Token @relation(name: \"from\", fields: [fromTokenId], references: [id])\n fromTokenId String\n ToToken Token @relation(name: \"to\", fields: [toTokenId], references: [id])\n toTokenId String\n multisig String @db.Char(42)\n recipient String @db.Char(42)\n amountIn String @default(\"0\")\n amountOut String @default(\"0\")\n datetime DateTime\n timestamp Int\n\n @@unique([chainId, fromTokenId, toTokenId, timestamp])\n}\n\nmodel Logged {\n id String @id\n chainId Int\n type LoggedEntityType @default(UNKNOWN)\n address String? @db.Char(42)\n fetchAtBlock Int\n caughtFromAddress String @db.Char(42)\n entityData Json\n\n @@unique([chainId, address])\n}\n\n// enums\n\nenum LoggedEntityType {\n UNKNOWN\n EULER_VAULT\n UNISWAP_V4\n COMPOUND_v2\n}\n\nenum RunStatus {\n PROCESSING\n SUCCESS\n FAILED\n SKIPPED\n}\n\nenum OpportunityAction {\n POOL\n HOLD\n DROP\n LEND\n BORROW\n LONG\n SHORT\n SWAP\n INVALID\n}\n\nenum Status {\n NONE // This would mean that no campaigns was ever created for this opportunity\n PAST\n LIVE\n SOON\n}\n\nenum ExplorerType {\n ETHERSCAN\n BLOCKSCOUT\n}\n\nenum AprType {\n CAMPAIGN\n TOKEN\n PROTOCOL\n}\n\nenum TvlType {\n TOKEN\n PROTOCOL\n}\n\nenum PriceSourceMethod {\n COINGECKO\n CONSTANT\n EQUAL_TO\n ERC4626\n DEXSCREENER\n INDEXCOOP\n DEFILLAMA\n}\n\nenum CampaignManualOverride {\n opportunityId\n creatorAddress\n}\n\nenum OpportunityManualOverride {\n identifier\n name\n depositUrl\n action\n mainProtocolId\n}\n\nenum DistributionType {\n DUTCH_AUCTION\n FIX_REWARD_VALUE_PER_LIQUIDITY_VALUE // The fix reward value will lie in params.apr\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_VALUE\n FIX_REWARD_VALUE_PER_LIQUIDITY_AMOUNT\n FIX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNT\n}\n",
|
669
|
+
"inlineSchemaHash": "fbe37287ee5a0119a9a3c04f6158171df81f3b0c048a09a06d04f7026a4d7684",
|
670
670
|
"copyEngine": true
|
671
671
|
}
|
672
672
|
|
package/dist/src/eden/index.d.ts
CHANGED
@@ -1184,12 +1184,16 @@ declare const eden: {
|
|
1184
1184
|
200: unknown[];
|
1185
1185
|
}>>;
|
1186
1186
|
};
|
1187
|
-
|
1187
|
+
}) & {
|
1188
|
+
metadata: {
|
1188
1189
|
get: (options: {
|
1189
1190
|
headers: {
|
1190
1191
|
authorization: string;
|
1191
1192
|
};
|
1192
|
-
query
|
1193
|
+
query: {
|
1194
|
+
campaignId: string;
|
1195
|
+
distributionChain: number;
|
1196
|
+
};
|
1193
1197
|
fetch?: RequestInit | undefined;
|
1194
1198
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
1195
1199
|
200: {
|
@@ -1214,14 +1218,14 @@ declare const eden: {
|
|
1214
1218
|
isNative: boolean;
|
1215
1219
|
} & {
|
1216
1220
|
price?: number | null | undefined;
|
1217
|
-
})[]
|
1221
|
+
})[];
|
1218
1222
|
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
1219
1223
|
depositUrl: any;
|
1220
1224
|
tags: string[];
|
1221
1225
|
};
|
1222
1226
|
}>>;
|
1223
1227
|
};
|
1224
|
-
}
|
1228
|
+
};
|
1225
1229
|
index: {
|
1226
1230
|
get: (options: {
|
1227
1231
|
headers?: Record<string, unknown> | undefined;
|
@@ -4839,12 +4843,16 @@ declare const eden: {
|
|
4839
4843
|
200: unknown[];
|
4840
4844
|
}>>;
|
4841
4845
|
};
|
4842
|
-
|
4846
|
+
}) & {
|
4847
|
+
metadata: {
|
4843
4848
|
get: (options: {
|
4844
4849
|
headers: {
|
4845
4850
|
authorization: string;
|
4846
4851
|
};
|
4847
|
-
query
|
4852
|
+
query: {
|
4853
|
+
campaignId: string;
|
4854
|
+
distributionChain: number;
|
4855
|
+
};
|
4848
4856
|
fetch?: RequestInit | undefined;
|
4849
4857
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
4850
4858
|
200: {
|
@@ -4869,14 +4877,14 @@ declare const eden: {
|
|
4869
4877
|
isNative: boolean;
|
4870
4878
|
} & {
|
4871
4879
|
price?: number | null | undefined;
|
4872
|
-
})[]
|
4880
|
+
})[];
|
4873
4881
|
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
4874
4882
|
depositUrl: any;
|
4875
4883
|
tags: string[];
|
4876
4884
|
};
|
4877
4885
|
}>>;
|
4878
4886
|
};
|
4879
|
-
}
|
4887
|
+
};
|
4880
4888
|
index: {
|
4881
4889
|
get: (options: {
|
4882
4890
|
headers?: Record<string, unknown> | undefined;
|
@@ -9246,45 +9254,44 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
9246
9254
|
};
|
9247
9255
|
} & {
|
9248
9256
|
"dry-run": {
|
9249
|
-
|
9250
|
-
|
9251
|
-
|
9252
|
-
|
9253
|
-
|
9254
|
-
|
9255
|
-
|
9256
|
-
|
9257
|
-
|
9258
|
-
|
9259
|
-
|
9260
|
-
|
9261
|
-
|
9257
|
+
metadata: {
|
9258
|
+
get: {
|
9259
|
+
body: unknown;
|
9260
|
+
params: {};
|
9261
|
+
query: {
|
9262
|
+
campaignId: string;
|
9263
|
+
distributionChain: number;
|
9264
|
+
};
|
9265
|
+
headers: {
|
9266
|
+
authorization: string;
|
9267
|
+
};
|
9268
|
+
response: {
|
9269
|
+
200: {
|
9270
|
+
id: string;
|
9271
|
+
chainId: number;
|
9272
|
+
type: string;
|
9273
|
+
identifier: string;
|
9274
|
+
name: string;
|
9275
|
+
status: "PAST" | "LIVE" | "SOON";
|
9276
|
+
action: any;
|
9277
|
+
tokens: ({
|
9278
|
+
symbol: string;
|
9262
9279
|
id: string;
|
9280
|
+
name: string | null;
|
9281
|
+
icon: string;
|
9282
|
+
address: string;
|
9263
9283
|
chainId: number;
|
9264
|
-
|
9265
|
-
|
9266
|
-
|
9267
|
-
|
9268
|
-
|
9269
|
-
|
9270
|
-
|
9271
|
-
|
9272
|
-
|
9273
|
-
|
9274
|
-
|
9275
|
-
chainId: number;
|
9276
|
-
decimals: number;
|
9277
|
-
verified: boolean;
|
9278
|
-
isTest: boolean;
|
9279
|
-
isPoint: boolean;
|
9280
|
-
isNative: boolean;
|
9281
|
-
} & {
|
9282
|
-
price?: number | null | undefined;
|
9283
|
-
})[][];
|
9284
|
-
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
9285
|
-
depositUrl: any;
|
9286
|
-
tags: string[];
|
9287
|
-
};
|
9284
|
+
decimals: number;
|
9285
|
+
verified: boolean;
|
9286
|
+
isTest: boolean;
|
9287
|
+
isPoint: boolean;
|
9288
|
+
isNative: boolean;
|
9289
|
+
} & {
|
9290
|
+
price?: number | null | undefined;
|
9291
|
+
})[];
|
9292
|
+
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
9293
|
+
depositUrl: any;
|
9294
|
+
tags: string[];
|
9288
9295
|
};
|
9289
9296
|
};
|
9290
9297
|
};
|
@@ -14563,12 +14570,16 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
14563
14570
|
200: unknown[];
|
14564
14571
|
}>>;
|
14565
14572
|
};
|
14566
|
-
|
14573
|
+
}) & {
|
14574
|
+
metadata: {
|
14567
14575
|
get: (options: {
|
14568
14576
|
headers: {
|
14569
14577
|
authorization: string;
|
14570
14578
|
};
|
14571
|
-
query
|
14579
|
+
query: {
|
14580
|
+
campaignId: string;
|
14581
|
+
distributionChain: number;
|
14582
|
+
};
|
14572
14583
|
fetch?: RequestInit | undefined;
|
14573
14584
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
14574
14585
|
200: {
|
@@ -14593,14 +14604,14 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
14593
14604
|
isNative: boolean;
|
14594
14605
|
} & {
|
14595
14606
|
price?: number | null | undefined;
|
14596
|
-
})[]
|
14607
|
+
})[];
|
14597
14608
|
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
14598
14609
|
depositUrl: any;
|
14599
14610
|
tags: string[];
|
14600
14611
|
};
|
14601
14612
|
}>>;
|
14602
14613
|
};
|
14603
|
-
}
|
14614
|
+
};
|
14604
14615
|
index: {
|
14605
14616
|
get: (options: {
|
14606
14617
|
headers?: Record<string, unknown> | undefined;
|
@@ -18218,12 +18229,16 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
18218
18229
|
200: unknown[];
|
18219
18230
|
}>>;
|
18220
18231
|
};
|
18221
|
-
|
18232
|
+
}) & {
|
18233
|
+
metadata: {
|
18222
18234
|
get: (options: {
|
18223
18235
|
headers: {
|
18224
18236
|
authorization: string;
|
18225
18237
|
};
|
18226
|
-
query
|
18238
|
+
query: {
|
18239
|
+
campaignId: string;
|
18240
|
+
distributionChain: number;
|
18241
|
+
};
|
18227
18242
|
fetch?: RequestInit | undefined;
|
18228
18243
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
18229
18244
|
200: {
|
@@ -18248,14 +18263,14 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
18248
18263
|
isNative: boolean;
|
18249
18264
|
} & {
|
18250
18265
|
price?: number | null | undefined;
|
18251
|
-
})[]
|
18266
|
+
})[];
|
18252
18267
|
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
18253
18268
|
depositUrl: any;
|
18254
18269
|
tags: string[];
|
18255
18270
|
};
|
18256
18271
|
}>>;
|
18257
18272
|
};
|
18258
|
-
}
|
18273
|
+
};
|
18259
18274
|
index: {
|
18260
18275
|
get: (options: {
|
18261
18276
|
headers?: Record<string, unknown> | undefined;
|
package/dist/src/index.d.ts
CHANGED
@@ -1273,45 +1273,44 @@ declare const app: Elysia<"", false, {
|
|
1273
1273
|
};
|
1274
1274
|
} & {
|
1275
1275
|
"dry-run": {
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1276
|
+
metadata: {
|
1277
|
+
get: {
|
1278
|
+
body: unknown;
|
1279
|
+
params: {};
|
1280
|
+
query: {
|
1281
|
+
campaignId: string;
|
1282
|
+
distributionChain: number;
|
1283
|
+
};
|
1284
|
+
headers: {
|
1285
|
+
authorization: string;
|
1286
|
+
};
|
1287
|
+
response: {
|
1288
|
+
200: {
|
1289
|
+
id: string;
|
1290
|
+
chainId: number;
|
1291
|
+
type: string;
|
1292
|
+
identifier: string;
|
1293
|
+
name: string;
|
1294
|
+
status: "PAST" | "LIVE" | "SOON";
|
1295
|
+
action: any;
|
1296
|
+
tokens: ({
|
1297
|
+
symbol: string;
|
1289
1298
|
id: string;
|
1299
|
+
name: string | null;
|
1300
|
+
icon: string;
|
1301
|
+
address: string;
|
1290
1302
|
chainId: number;
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
chainId: number;
|
1303
|
-
decimals: number;
|
1304
|
-
verified: boolean;
|
1305
|
-
isTest: boolean;
|
1306
|
-
isPoint: boolean;
|
1307
|
-
isNative: boolean;
|
1308
|
-
} & {
|
1309
|
-
price?: number | null | undefined;
|
1310
|
-
})[][];
|
1311
|
-
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
1312
|
-
depositUrl: any;
|
1313
|
-
tags: string[];
|
1314
|
-
};
|
1303
|
+
decimals: number;
|
1304
|
+
verified: boolean;
|
1305
|
+
isTest: boolean;
|
1306
|
+
isPoint: boolean;
|
1307
|
+
isNative: boolean;
|
1308
|
+
} & {
|
1309
|
+
price?: number | null | undefined;
|
1310
|
+
})[];
|
1311
|
+
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
1312
|
+
depositUrl: any;
|
1313
|
+
tags: string[];
|
1315
1314
|
};
|
1316
1315
|
};
|
1317
1316
|
};
|
@@ -185,45 +185,44 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
|
|
185
185
|
};
|
186
186
|
} & {
|
187
187
|
"dry-run": {
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
188
|
+
metadata: {
|
189
|
+
get: {
|
190
|
+
body: unknown;
|
191
|
+
params: {};
|
192
|
+
query: {
|
193
|
+
campaignId: string;
|
194
|
+
distributionChain: number;
|
195
|
+
};
|
196
|
+
headers: {
|
197
|
+
authorization: string;
|
198
|
+
};
|
199
|
+
response: {
|
200
|
+
200: {
|
201
|
+
id: string;
|
202
|
+
chainId: number;
|
203
|
+
type: string;
|
204
|
+
identifier: string;
|
205
|
+
name: string;
|
206
|
+
status: "PAST" | "LIVE" | "SOON";
|
207
|
+
action: any;
|
208
|
+
tokens: ({
|
209
|
+
symbol: string;
|
201
210
|
id: string;
|
211
|
+
name: string | null;
|
212
|
+
icon: string;
|
213
|
+
address: string;
|
202
214
|
chainId: number;
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
chainId: number;
|
215
|
-
decimals: number;
|
216
|
-
verified: boolean;
|
217
|
-
isTest: boolean;
|
218
|
-
isPoint: boolean;
|
219
|
-
isNative: boolean;
|
220
|
-
} & {
|
221
|
-
price?: number | null | undefined;
|
222
|
-
})[][];
|
223
|
-
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
224
|
-
depositUrl: any;
|
225
|
-
tags: string[];
|
226
|
-
};
|
215
|
+
decimals: number;
|
216
|
+
verified: boolean;
|
217
|
+
isTest: boolean;
|
218
|
+
isPoint: boolean;
|
219
|
+
isNative: boolean;
|
220
|
+
} & {
|
221
|
+
price?: number | null | undefined;
|
222
|
+
})[];
|
223
|
+
mainProtocol: "splice" | "morpho" | "euler" | "ambient" | "uniswap" | "arthswap" | "base-swap" | "camelot" | "crust" | "fenix" | "horiza" | "izumi" | "kim" | "pancake-swap" | "quick-swap" | "ramses" | "retro" | "stryke" | "sushiswap" | "swapr" | "thruster" | "voltage" | "zero" | "koi" | "supswap" | "zk-swap" | "thirdtrade" | "swap-x" | "velodrome" | "aerodrome" | "balancer" | "curve" | "cross_curve" | "curveNPool" | "aura" | "akron" | "beefy" | "dragonswap" | "poolside" | "syncswap" | "neptune" | "zkSwapThreePool" | "rfx" | "ra" | "maverick" | "trader-joe" | "hanji" | "radiant" | "aave" | "fraxlend" | "ironclad" | "gearbox" | "compound" | "sturdy" | "frax" | "ionic" | "moonwell" | "fluid" | "silo" | "dolomite" | "badger" | "ajna" | "layerbank" | "ion" | "venus" | "woofi" | "reactor_fusion" | "eigenlayer" | "vest" | "zerolend" | "hyperdrive" | "gamma" | "oku" | "hourglass" | "veda" | "kyo" | "sonex" | "lendle" | "tako-tako" | "equalizer" | "spectra" | "beraborrow" | "superlend" | "avalon" | "angles" | "enzyme" | "toros" | "vicuna" | "bunni" | "beratrax" | "concrete" | "cian" | "pendle" | "yei" | "filament" | "gammaswap" | "maha" | "tempest" | "uranium" | "holdstation" | "katana" | "satlayer" | undefined;
|
224
|
+
depositUrl: any;
|
225
|
+
tags: string[];
|
227
226
|
};
|
228
227
|
};
|
229
228
|
};
|