@mobula_labs/types 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +5011 -3856
- package/dist/cjs/index.cjs.map +59 -51
- package/dist/esm/index.js +5011 -3856
- package/dist/esm/index.js.map +59 -51
- package/dist/index.d.ts +8 -0
- package/dist/misc/ApiKeysQueries.d.ts +1 -1
- package/dist/utils/functions/openAPIHelpers.d.ts +41 -0
- package/dist/utils/schemas/BaseMessage.d.ts +2 -0
- package/dist/utils/schemas/EnrichedMarketData.d.ts +138 -1
- package/dist/utils/schemas/MarketDetailsOutput.d.ts +169 -0
- package/dist/utils/schemas/SecuritySchemas.d.ts +9 -0
- package/dist/utils/schemas/TokenDetailsOutput.d.ts +32 -0
- package/dist/utils/schemas/WalletDeployerSchema.d.ts +124 -12
- package/dist/utils/schemas/WalletMetadataOutput.d.ts +21 -0
- package/dist/v1/market/FundingRateSchema.d.ts +3 -0
- package/dist/v1/market/HoldersSchema.d.ts +5 -0
- package/dist/v1/market/MarketBlockchainPairsSchema.d.ts +59 -0
- package/dist/v1/market/MarketDataSchema.d.ts +5 -0
- package/dist/v1/market/MarketHistoryPairSchema.d.ts +5 -0
- package/dist/v1/market/MarketLighthouseSchema.d.ts +2734 -0
- package/dist/v1/market/MarketMultiDataSchema.d.ts +9 -4
- package/dist/v1/market/MarketMultiHistorySchema.d.ts +5 -0
- package/dist/v1/market/MarketMultiPricesSchema.d.ts +4 -4
- package/dist/v1/market/MarketPairSchema.d.ts +54 -0
- package/dist/v1/market/MarketPairsSchema.d.ts +68 -0
- package/dist/v1/market/MarketQuerySchema.d.ts +5 -0
- package/dist/v1/market/MarketTokenVsMarketSchema.d.ts +4 -4
- package/dist/v1/metadata/MetadataSchema.d.ts +10 -0
- package/dist/v1/pulse/PulseSchema.d.ts +616 -0
- package/dist/v1/search/SearchSchema.d.ts +112 -0
- package/dist/v1/wallet/DeployerSchema.d.ts +72 -8
- package/dist/v1/wallet/HistorySchema.d.ts +5 -0
- package/dist/v1/wallet/WalletLabelSchema.d.ts +550 -0
- package/dist/v1/wallet/WalletNFTSchema.d.ts +5 -0
- package/dist/v1/wallet/WalletPortfolioSchema.d.ts +32 -0
- package/dist/v1/wallet/WalletTradesSchema.d.ts +133 -20
- package/dist/v1/wallet/WalletTransactionSchema.d.ts +12 -2
- package/dist/v2/asset/AssetDetailsSchema.d.ts +217 -1
- package/dist/v2/market/MarketDetailsSchema.d.ts +454 -0
- package/dist/v2/market/MarketOHLCVHistorySchema.d.ts +3 -3
- package/dist/v2/metadata/SystemMetadataV2Schema.d.ts +424 -0
- package/dist/v2/swap/SwapQuotingBatchOutput.d.ts +1647 -257
- package/dist/v2/swap/SwapQuotingBatchSchema.d.ts +12 -12
- package/dist/v2/swap/SwapQuotingOutput.d.ts +1396 -274
- package/dist/v2/swap/SwapQuotingSchema.d.ts +26 -3
- package/dist/v2/swap/SwapSendOutput.d.ts +105 -0
- package/dist/v2/swap/SwapSendSchema.d.ts +77 -4
- package/dist/v2/token/TokenAthSchema.d.ts +29 -1
- package/dist/v2/token/TokenDetailsSchema.d.ts +124 -1
- package/dist/v2/token/TokenMarketsSchema.d.ts +396 -0
- package/dist/v2/token/TokenOHLCVHistorySchema.d.ts +3 -3
- package/dist/v2/token/TokenPositionsSchema.d.ts +119 -12
- package/dist/v2/token/TokenPriceAtSchema.d.ts +131 -0
- package/dist/v2/token/TokenPriceHistorySchema.d.ts +130 -0
- package/dist/v2/token/TokenSecurityOutput.d.ts +192 -0
- package/dist/v2/token/TokenSecurityQuery.d.ts +13 -1
- package/dist/v2/token/TokenTradesSchema.d.ts +572 -3
- package/dist/v2/trades/EnrichedSwapsSchema.d.ts +15994 -0
- package/dist/v2/trades/TradesFiltersSchema.d.ts +49 -0
- package/dist/v2/wallet/WalletActivityV2Schema.d.ts +53 -0
- package/dist/v2/wallet/WalletAnalysisQuerySchema.d.ts +114 -18
- package/dist/v2/wallet/WalletDeployerSchema.d.ts +72 -8
- package/dist/v2/wallet/WalletPerpsPositionsSchema.d.ts +24 -24
- package/dist/v2/wallet/WalletPositionsSchema.d.ts +5979 -33
- package/dist/v2/wallet/WalletTokenBalancesSchema.d.ts +16 -0
- package/dist/v2/wallet/WalletTradesSchema.d.ts +446 -0
- package/dist/wss/FastTradePayloadSchema.d.ts +12 -1
- package/dist/wss/FundingPayloadSchema.d.ts +3 -0
- package/dist/wss/HoldersV2PayloadSchema.d.ts +30 -0
- package/dist/wss/MarketDetailsPayloadSchema.d.ts +3 -0
- package/dist/wss/OhlcvPayloadSchema.d.ts +3 -0
- package/dist/wss/TokenDetailsPayloadSchema.d.ts +3 -0
- package/dist/x402/X402AgentSchemas.d.ts +62 -0
- package/package.json +2 -2
- package/dist/v2/explorer/BlockDataQuerySchema.d.ts +0 -33
- package/dist/v2/explorer/ContractVerifyQuerySchema.ts +0 -27
- package/dist/v2/wallet/WalleAnalysisQuerySchema.d.ts +0 -1135
- package/dist/v2/wallet/WalleFundingQuerySchema.d.ts +0 -57
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1,119 +1,127 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../node_modules/@asteasolutions/zod-to-openapi/dist/index.cjs", "../../src/misc/ApiKeysQueries.ts", "../../src/utils/constants/constants.ts", "../../src/utils/functions/bigintAbs.ts", "../../src/utils/functions/period.ts", "../../src/utils/functions/zodUtils.ts", "../../src/utils/schemas/BigIntLax.ts", "../../src/utils/schemas/CurrencySchema.ts", "../../src/utils/schemas/EnrichedHoldersData.ts", "../../src/utils/schemas/EnrichedMarketData.ts", "../../src/utils/schemas/SecuritySchemas.ts", "../../src/utils/schemas/LLMSecuritySchemas.ts", "../../src/utils/schemas/PlatformMetadataOutput.ts", "../../src/utils/schemas/TokenMetadataMinimal.ts", "../../src/utils/schemas/WalletMetadataOutput.ts", "../../src/v1/all/AllAssetSchema.ts", "../../src/v1/all/BlockchainSchema.ts", "../../src/v1/market/CreateFeedSchema.ts", "../../src/v1/market/FundingRateSchema.ts", "../../src/v1/market/HoldersSchema.ts", "../../src/v1/market/MarketBlockchainPairsSchema.ts", "../../src/v1/market/MarketBlockchainStatsSchema.ts", "../../src/v1/market/MarketDataSchema.ts", "../../src/v1/market/MarketHistoryPairSchema.ts", "../../src/utils/schemas/DateQuery.ts", "../../src/v1/market/MarketHistorySchema.ts", "../../src/v1/market/MarketMultiDataSchema.ts", "../../src/utils/schemas/StringOrArray.ts", "../../src/v1/market/MarketMultiHistorySchema.ts", "../../src/v1/market/MarketMultiPricesSchema.ts", "../../src/v1/market/MarketNftSchema.ts", "../../src/v1/market/MarketPairSchema.ts", "../../src/v1/market/MarketPairsSchema.ts", "../../src/v1/market/MarketQuerySchema.ts", "../../src/v1/market/MarketSparklineSchema.ts", "../../src/v1/market/MarketTokenVsMarketSchema.ts", "../../src/v1/market/MarketTotalSchema.ts", "../../src/v1/market/MarketTradesPairSchema.ts", "../../src/v1/metadata/MetadataCategoriesSchema.ts", "../../src/v1/metadata/MetadataNewsSchema.ts", "../../src/v1/metadata/MetadataSchema.ts", "../../src/v1/metadata/MetadataTrendingsSchema.ts", "../../src/v1/metadata/SystemMetadataSchema.ts", "../../src/v1/misc/ListingStatusSchema.ts", "../../src/v1/misc/SubmitTokenSchema.ts", "../../src/v1/misc/UploadLogoSchema.ts", "../../src/v1/pulse/PulseSchema.ts", "../../src/v1/search/SearchSchema.ts", "../../src/utils/schemas/TokenDetailsOutput.ts", "../../src/v1/token/FirstBuyerSchema.ts", "../../src/v1/wallet/BalanceUSDSchema.ts", "../../src/utils/schemas/WalletDeployerSchema.ts", "../../src/v1/wallet/DeployerSchema.ts", "../../src/v1/wallet/HistorySchema.ts", "../../src/v1/wallet/WalletLabelSchema.ts", "../../src/v1/wallet/WalletNFTSchema.ts", "../../src/v1/wallet/WalletPortfolioSchema.ts", "../../src/v1/wallet/WalletSmartMoneySchema.ts", "../../src/v1/wallet/WalletTradesSchema.ts", "../../src/v1/wallet/WalletTransactionSchema.ts", "../../src/v1/webhook/WebhookSchema.ts", "../../src/v2/asset/AssetDetailsSchema.ts", "../../src/v2/asset/AssetPriceHistorySchema.ts", "../../src/v2/explorer/BlockQuerySchema.ts", "../../src/v2/market/MarketDetailsSchema.ts", "../../src/utils/schemas/MarketDetailsOutput.ts", "../../src/v2/perp/PerpModels.ts", "../../src/v2/market/MarketOHLCVHistorySchema.ts", "../../src/v2/perp/PerpBlocksSchema.ts", "../../src/v2/perp/PerpOrderQuotingSchema.ts", "../../src/v2/swap/SwapQuotingBatchOutput.ts", "../../src/v2/swap/SwapQuotingOutput.ts", "../../src/v2/swap/SwapQuotingBatchSchema.ts", "../../src/v2/swap/SwapQuotingInstructionsOutput.ts", "../../src/v2/swap/SwapQuotingSchema.ts", "../../src/v2/swap/SwapSendOutput.ts", "../../src/v2/swap/SwapSendSchema.ts", "../../src/v2/token/TokenAthSchema.ts", "../../src/v2/token/TokenDetailsSchema.ts", "../../src/v2/token/TokenKlineBsPointSchema.ts", "../../src/v2/token/TokenMarketsSchema.ts", "../../src/v2/token/TokenOHLCVHistorySchema.ts", "../../src/v2/token/TokenPositionsSchema.ts", "../../src/v2/wallet/WalletAnalysisQuerySchema.ts", "../../src/v2/token/TokenPriceSchema.ts", "../../src/v2/token/TokenSecurityOutput.ts", "../../src/v2/token/TokenSecurityQuery.ts", "../../src/v2/token/TokenTradesSchema.ts", "../../src/v2/trades/TradesFiltersSchema.ts", "../../src/v2/wallet/WalletActivityV2Schema.ts", "../../src/v2/wallet/WalletDefiPositionsSchema.ts", "../../src/v2/wallet/WalletDeployerSchema.ts", "../../src/v2/wallet/WalletFundingQuerySchema.ts", "../../src/v2/wallet/WalletPerpsPositionsSchema.ts", "../../src/v2/wallet/WalletPositionsSchema.ts", "../../src/v2/wallet/WalletTokenBalancesSchema.ts", "../../src/wss/aggregated-feed/FeedSchema.ts", "../../src/wss/BalancePayloadSchema.ts", "../../src/wss/FastTradePayloadSchema.ts", "../../src/wss/FundingPayloadSchema.ts", "../../src/wss/HoldersPayloadSchema.ts", "../../src/wss/MarketDetailsPayloadSchema.ts", "../../src/wss/MarketPayloadSchema.ts", "../../src/wss/OhlcvPayloadSchema.ts", "../../src/wss/PairsPayloadSchema.ts", "../../src/wss/PositionPayloadSchema.ts", "../../src/wss/pulse/PausePulsePayloadSchema.ts", "../../src/wss/stream/StreamPayloadSchema.ts", "../../src/utils/schemas/Filter.ts", "../../src/wss/TokenDetailsPayloadSchema.ts"],
|
|
3
|
+
"sources": ["../../../../node_modules/@asteasolutions/zod-to-openapi/dist/index.cjs", "../../src/misc/ApiKeysQueries.ts", "../../src/utils/constants/constants.ts", "../../src/utils/functions/bigintAbs.ts", "../../src/utils/functions/openAPIHelpers.ts", "../../src/utils/functions/period.ts", "../../src/utils/functions/zodUtils.ts", "../../src/utils/schemas/BigIntLax.ts", "../../src/utils/schemas/CurrencySchema.ts", "../../src/utils/schemas/EnrichedHoldersData.ts", "../../src/utils/schemas/EnrichedMarketData.ts", "../../src/utils/schemas/SecuritySchemas.ts", "../../src/utils/schemas/LLMSecuritySchemas.ts", "../../src/utils/schemas/PlatformMetadataOutput.ts", "../../src/utils/schemas/TokenMetadataMinimal.ts", "../../src/utils/schemas/WalletMetadataOutput.ts", "../../src/v1/all/AllAssetSchema.ts", "../../src/v1/all/BlockchainSchema.ts", "../../src/v1/market/CreateFeedSchema.ts", "../../src/v1/market/FundingRateSchema.ts", "../../src/v1/market/HoldersSchema.ts", "../../src/v1/market/MarketBlockchainPairsSchema.ts", "../../src/v1/market/MarketBlockchainStatsSchema.ts", "../../src/v1/market/MarketDataSchema.ts", "../../src/v1/market/MarketHistoryPairSchema.ts", "../../src/utils/schemas/DateQuery.ts", "../../src/v1/market/MarketHistorySchema.ts", "../../src/v1/market/MarketLighthouseSchema.ts", "../../src/v1/market/MarketMultiDataSchema.ts", "../../src/utils/schemas/StringOrArray.ts", "../../src/v1/market/MarketMultiHistorySchema.ts", "../../src/v1/market/MarketMultiPricesSchema.ts", "../../src/v1/market/MarketNftSchema.ts", "../../src/v1/market/MarketPairSchema.ts", "../../src/v1/market/MarketPairsSchema.ts", "../../src/v1/market/MarketQuerySchema.ts", "../../src/v1/market/MarketSparklineSchema.ts", "../../src/v1/market/MarketTokenVsMarketSchema.ts", "../../src/v1/market/MarketTotalSchema.ts", "../../src/v1/market/MarketTradesPairSchema.ts", "../../src/v1/metadata/MetadataCategoriesSchema.ts", "../../src/v1/metadata/MetadataNewsSchema.ts", "../../src/v1/metadata/MetadataSchema.ts", "../../src/v1/metadata/MetadataTrendingsSchema.ts", "../../src/v1/metadata/SystemMetadataSchema.ts", "../../src/v1/misc/ListingStatusSchema.ts", "../../src/v1/misc/SubmitTokenSchema.ts", "../../src/v1/misc/UploadLogoSchema.ts", "../../src/v1/pulse/PulseSchema.ts", "../../src/v1/search/SearchSchema.ts", "../../src/utils/schemas/TokenDetailsOutput.ts", "../../src/v1/token/FirstBuyerSchema.ts", "../../src/v1/wallet/BalanceUSDSchema.ts", "../../src/utils/schemas/WalletDeployerSchema.ts", "../../src/v1/wallet/DeployerSchema.ts", "../../src/v1/wallet/HistorySchema.ts", "../../src/v1/wallet/WalletLabelSchema.ts", "../../src/v1/wallet/WalletNFTSchema.ts", "../../src/v1/wallet/WalletPortfolioSchema.ts", "../../src/v1/wallet/WalletSmartMoneySchema.ts", "../../src/v1/wallet/WalletTradesSchema.ts", "../../src/v1/wallet/WalletTransactionSchema.ts", "../../src/v1/webhook/WebhookSchema.ts", "../../src/v2/asset/AssetDetailsSchema.ts", "../../src/v2/asset/AssetPriceHistorySchema.ts", "../../src/v2/explorer/BlockQuerySchema.ts", "../../src/v2/market/MarketDetailsSchema.ts", "../../src/utils/schemas/MarketDetailsOutput.ts", "../../src/v2/perp/PerpModels.ts", "../../src/v2/market/MarketOHLCVHistorySchema.ts", "../../src/v2/metadata/SystemMetadataV2Schema.ts", "../../src/v2/perp/PerpBlocksSchema.ts", "../../src/v2/perp/PerpOrderQuotingSchema.ts", "../../src/v2/swap/SwapQuotingBatchOutput.ts", "../../src/v2/swap/SwapQuotingOutput.ts", "../../src/v2/swap/SwapQuotingBatchSchema.ts", "../../src/v2/swap/SwapQuotingInstructionsOutput.ts", "../../src/v2/swap/SwapQuotingSchema.ts", "../../src/v2/swap/SwapSendOutput.ts", "../../src/v2/swap/SwapSendSchema.ts", "../../src/v2/token/TokenAthSchema.ts", "../../src/v2/token/TokenDetailsSchema.ts", "../../src/v2/token/TokenKlineBsPointSchema.ts", "../../src/v2/token/TokenMarketsSchema.ts", "../../src/v2/token/TokenOHLCVHistorySchema.ts", "../../src/v2/token/TokenPositionsSchema.ts", "../../src/v2/wallet/WalletAnalysisQuerySchema.ts", "../../src/v2/token/TokenPriceAtSchema.ts", "../../src/v2/token/TokenPriceHistorySchema.ts", "../../src/v2/token/TokenPriceSchema.ts", "../../src/v2/token/TokenSecurityOutput.ts", "../../src/v2/token/TokenSecurityQuery.ts", "../../src/v2/token/TokenTradesSchema.ts", "../../src/v2/trades/EnrichedSwapsSchema.ts", "../../src/v2/trades/TradesFiltersSchema.ts", "../../src/v2/wallet/WalletActivityV2Schema.ts", "../../src/v2/wallet/WalletDefiPositionsSchema.ts", "../../src/v2/wallet/WalletDeployerSchema.ts", "../../src/v2/wallet/WalletFundingQuerySchema.ts", "../../src/v2/wallet/WalletPerpsPositionsSchema.ts", "../../src/v2/wallet/WalletPositionsSchema.ts", "../../src/v2/wallet/WalletTokenBalancesSchema.ts", "../../src/v2/wallet/WalletTradesSchema.ts", "../../src/wss/aggregated-feed/FeedSchema.ts", "../../src/wss/BalancePayloadSchema.ts", "../../src/wss/FastTradePayloadSchema.ts", "../../src/wss/FundingPayloadSchema.ts", "../../src/wss/HoldersPayloadSchema.ts", "../../src/wss/MarketDetailsPayloadSchema.ts", "../../src/wss/MarketPayloadSchema.ts", "../../src/wss/OhlcvPayloadSchema.ts", "../../src/wss/PairsPayloadSchema.ts", "../../src/wss/PositionPayloadSchema.ts", "../../src/wss/pulse/PausePulsePayloadSchema.ts", "../../src/wss/stream/StreamPayloadSchema.ts", "../../src/utils/schemas/Filter.ts", "../../src/wss/TokenDetailsPayloadSchema.ts", "../../src/x402/X402AgentSchemas.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"'use strict';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction isZodType(schema, typeName) {\n var _a;\n return ((_a = schema === null || schema === void 0 ? void 0 : schema._def) === null || _a === void 0 ? void 0 : _a.typeName) === typeName;\n}\nfunction isAnyZodType(schema) {\n return '_def' in schema;\n}\n\nfunction preserveMetadataFromModifier(zod, modifier) {\n const zodModifier = zod.ZodType.prototype[modifier];\n zod.ZodType.prototype[modifier] = function (...args) {\n const result = zodModifier.apply(this, args);\n result._def.openapi = this._def.openapi;\n return result;\n };\n}\nfunction extendZodWithOpenApi(zod) {\n if (typeof zod.ZodType.prototype.openapi !== 'undefined') {\n // This zod instance is already extended with the required methods,\n // doing it again will just result in multiple wrapper methods for\n // `optional` and `nullable`\n return;\n }\n zod.ZodType.prototype.openapi = function (refOrOpenapi, metadata) {\n var _a, _b, _c, _d, _e, _f;\n const openapi = typeof refOrOpenapi === 'string' ? metadata : refOrOpenapi;\n const _g = openapi !== null && openapi !== void 0 ? openapi : {}, { param } = _g, restOfOpenApi = __rest(_g, [\"param\"]);\n const _internal = Object.assign(Object.assign({}, (_a = this._def.openapi) === null || _a === void 0 ? void 0 : _a._internal), (typeof refOrOpenapi === 'string'\n ? { refId: refOrOpenapi }\n : undefined));\n const resultMetadata = Object.assign(Object.assign(Object.assign({}, (_b = this._def.openapi) === null || _b === void 0 ? void 0 : _b.metadata), restOfOpenApi), (((_d = (_c = this._def.openapi) === null || _c === void 0 ? void 0 : _c.metadata) === null || _d === void 0 ? void 0 : _d.param) || param\n ? {\n param: Object.assign(Object.assign({}, (_f = (_e = this._def.openapi) === null || _e === void 0 ? void 0 : _e.metadata) === null || _f === void 0 ? void 0 : _f.param), param),\n }\n : undefined));\n const result = new this.constructor(Object.assign(Object.assign({}, this._def), { openapi: Object.assign(Object.assign({}, (Object.keys(_internal).length > 0 ? { _internal } : undefined)), (Object.keys(resultMetadata).length > 0\n ? { metadata: resultMetadata }\n : undefined)) }));\n if (isZodType(this, 'ZodObject')) {\n const originalExtend = this.extend;\n result.extend = function (...args) {\n var _a, _b, _c, _d, _e, _f, _g;\n const extendedResult = originalExtend.apply(this, args);\n extendedResult._def.openapi = {\n _internal: {\n extendedFrom: ((_b = (_a = this._def.openapi) === null || _a === void 0 ? void 0 : _a._internal) === null || _b === void 0 ? void 0 : _b.refId)\n ? { refId: (_d = (_c = this._def.openapi) === null || _c === void 0 ? void 0 : _c._internal) === null || _d === void 0 ? void 0 : _d.refId, schema: this }\n : (_f = (_e = this._def.openapi) === null || _e === void 0 ? void 0 : _e._internal) === null || _f === void 0 ? void 0 : _f.extendedFrom,\n },\n metadata: (_g = extendedResult._def.openapi) === null || _g === void 0 ? void 0 : _g.metadata,\n };\n return extendedResult;\n };\n }\n return result;\n };\n preserveMetadataFromModifier(zod, 'optional');\n preserveMetadataFromModifier(zod, 'nullable');\n preserveMetadataFromModifier(zod, 'default');\n preserveMetadataFromModifier(zod, 'transform');\n preserveMetadataFromModifier(zod, 'refine');\n const zodDeepPartial = zod.ZodObject.prototype.deepPartial;\n zod.ZodObject.prototype.deepPartial = function () {\n const initialShape = this._def.shape();\n const result = zodDeepPartial.apply(this);\n const resultShape = result._def.shape();\n Object.entries(resultShape).forEach(([key, value]) => {\n var _a, _b;\n value._def.openapi = (_b = (_a = initialShape[key]) === null || _a === void 0 ? void 0 : _a._def) === null || _b === void 0 ? void 0 : _b.openapi;\n });\n result._def.openapi = undefined;\n return result;\n };\n const zodPick = zod.ZodObject.prototype.pick;\n zod.ZodObject.prototype.pick = function (...args) {\n const result = zodPick.apply(this, args);\n result._def.openapi = undefined;\n return result;\n };\n const zodOmit = zod.ZodObject.prototype.omit;\n zod.ZodObject.prototype.omit = function (...args) {\n const result = zodOmit.apply(this, args);\n result._def.openapi = undefined;\n return result;\n };\n}\n\nfunction isEqual(x, y) {\n if (x === null || x === undefined || y === null || y === undefined) {\n return x === y;\n }\n if (x === y || x.valueOf() === y.valueOf()) {\n return true;\n }\n if (Array.isArray(x)) {\n if (!Array.isArray(y)) {\n return false;\n }\n if (x.length !== y.length) {\n return false;\n }\n }\n // if they are strictly equal, they both need to be object at least\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n // recursive object equality check\n const keysX = Object.keys(x);\n return (Object.keys(y).every(keyY => keysX.indexOf(keyY) !== -1) &&\n keysX.every(key => isEqual(x[key], y[key])));\n}\nclass ObjectSet {\n constructor() {\n this.buckets = new Map();\n }\n put(value) {\n const hashCode = this.hashCodeOf(value);\n const itemsByCode = this.buckets.get(hashCode);\n if (!itemsByCode) {\n this.buckets.set(hashCode, [value]);\n return;\n }\n const alreadyHasItem = itemsByCode.some(_ => isEqual(_, value));\n if (!alreadyHasItem) {\n itemsByCode.push(value);\n }\n }\n contains(value) {\n const hashCode = this.hashCodeOf(value);\n const itemsByCode = this.buckets.get(hashCode);\n if (!itemsByCode) {\n return false;\n }\n return itemsByCode.some(_ => isEqual(_, value));\n }\n values() {\n return [...this.buckets.values()].flat();\n }\n stats() {\n let totalBuckets = 0;\n let totalValues = 0;\n let collisions = 0;\n for (const bucket of this.buckets.values()) {\n totalBuckets += 1;\n totalValues += bucket.length;\n if (bucket.length > 1) {\n collisions += 1;\n }\n }\n const hashEffectiveness = totalBuckets / totalValues;\n return { totalBuckets, collisions, totalValues, hashEffectiveness };\n }\n hashCodeOf(object) {\n let hashCode = 0;\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; i++) {\n hashCode ^= this.hashCodeOf(object[i]) * i;\n }\n return hashCode;\n }\n if (typeof object === 'string') {\n for (let i = 0; i < object.length; i++) {\n hashCode ^= object.charCodeAt(i) * i;\n }\n return hashCode;\n }\n if (typeof object === 'number') {\n return object;\n }\n if (typeof object === 'object') {\n for (const [key, value] of Object.entries(object)) {\n hashCode ^= this.hashCodeOf(key) + this.hashCodeOf(value !== null && value !== void 0 ? value : '');\n }\n }\n return hashCode;\n }\n}\n\nfunction isUndefined(value) {\n return value === undefined;\n}\nfunction mapValues(object, mapper) {\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n result[key] = mapper(value);\n });\n return result;\n}\nfunction omit(object, keys) {\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n if (!keys.some(keyToOmit => keyToOmit === key)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction omitBy(object, predicate) {\n const result = {};\n Object.entries(object).forEach(([key, value]) => {\n if (!predicate(value, key)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction compact(arr) {\n return arr.filter((elem) => !isUndefined(elem));\n}\nconst objectEquals = isEqual;\nfunction uniq(values) {\n const set = new ObjectSet();\n values.forEach(value => set.put(value));\n return [...set.values()];\n}\nfunction isString(val) {\n return typeof val === 'string';\n}\n\nfunction getOpenApiMetadata(zodSchema) {\n var _a, _b;\n return omitBy((_b = (_a = zodSchema._def.openapi) === null || _a === void 0 ? void 0 : _a.metadata) !== null && _b !== void 0 ? _b : {}, isUndefined);\n}\n\nclass OpenAPIRegistry {\n constructor(parents) {\n this.parents = parents;\n this._definitions = [];\n }\n get definitions() {\n var _a, _b;\n const parentDefinitions = (_b = (_a = this.parents) === null || _a === void 0 ? void 0 : _a.flatMap(par => par.definitions)) !== null && _b !== void 0 ? _b : [];\n return [...parentDefinitions, ...this._definitions];\n }\n /**\n * Registers a new component schema under /components/schemas/${name}\n */\n register(refId, zodSchema) {\n const schemaWithRefId = this.schemaWithRefId(refId, zodSchema);\n this._definitions.push({ type: 'schema', schema: schemaWithRefId });\n return schemaWithRefId;\n }\n /**\n * Registers a new parameter schema under /components/parameters/${name}\n */\n registerParameter(refId, zodSchema) {\n var _a, _b, _c;\n const schemaWithRefId = this.schemaWithRefId(refId, zodSchema);\n const currentMetadata = (_a = schemaWithRefId._def.openapi) === null || _a === void 0 ? void 0 : _a.metadata;\n const schemaWithMetadata = schemaWithRefId.openapi(Object.assign(Object.assign({}, currentMetadata), { param: Object.assign(Object.assign({}, currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata.param), { name: (_c = (_b = currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata.param) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : refId }) }));\n this._definitions.push({\n type: 'parameter',\n schema: schemaWithMetadata,\n });\n return schemaWithMetadata;\n }\n /**\n * Registers a new path that would be generated under paths:\n */\n registerPath(route) {\n this._definitions.push({\n type: 'route',\n route,\n });\n }\n /**\n * Registers a new webhook that would be generated under webhooks:\n */\n registerWebhook(webhook) {\n this._definitions.push({\n type: 'webhook',\n webhook,\n });\n }\n /**\n * Registers a raw OpenAPI component. Use this if you have a simple object instead of a Zod schema.\n *\n * @param type The component type, e.g. `schemas`, `responses`, `securitySchemes`, etc.\n * @param name The name of the object, it is the key under the component\n * type in the resulting OpenAPI document\n * @param component The actual object to put there\n */\n registerComponent(type, name, component) {\n this._definitions.push({\n type: 'component',\n componentType: type,\n name,\n component,\n });\n return {\n name,\n ref: { $ref: `#/components/${type}/${name}` },\n };\n }\n schemaWithRefId(refId, zodSchema) {\n return zodSchema.openapi(refId);\n }\n}\n\nclass ZodToOpenAPIError {\n constructor(message) {\n this.message = message;\n }\n}\nclass ConflictError extends ZodToOpenAPIError {\n constructor(message, data) {\n super(message);\n this.data = data;\n }\n}\nclass MissingParameterDataError extends ZodToOpenAPIError {\n constructor(data) {\n super(`Missing parameter data, please specify \\`${data.missingField}\\` and other OpenAPI parameter props using the \\`param\\` field of \\`ZodSchema.openapi\\``);\n this.data = data;\n }\n}\nfunction enhanceMissingParametersError(action, paramsToAdd) {\n try {\n return action();\n }\n catch (error) {\n if (error instanceof MissingParameterDataError) {\n throw new MissingParameterDataError(Object.assign(Object.assign({}, error.data), paramsToAdd));\n }\n throw error;\n }\n}\nclass UnknownZodTypeError extends ZodToOpenAPIError {\n constructor(data) {\n super(`Unknown zod object type, please specify \\`type\\` and other OpenAPI props using \\`ZodSchema.openapi\\`.`);\n this.data = data;\n }\n}\n\nclass Metadata {\n static getMetadata(zodSchema) {\n var _a;\n const innerSchema = this.unwrapChained(zodSchema);\n const metadata = zodSchema._def.openapi\n ? zodSchema._def.openapi\n : innerSchema._def.openapi;\n /**\n * Every zod schema can receive a `description` by using the .describe method.\n * That description should be used when generating an OpenApi schema.\n * The `??` bellow makes sure we can handle both:\n * - schema.describe('Test').optional()\n * - schema.optional().describe('Test')\n */\n const zodDescription = (_a = zodSchema.description) !== null && _a !== void 0 ? _a : innerSchema.description;\n // A description provided from .openapi() should be taken with higher precedence\n return {\n _internal: metadata === null || metadata === void 0 ? void 0 : metadata._internal,\n metadata: Object.assign({ description: zodDescription }, metadata === null || metadata === void 0 ? void 0 : metadata.metadata),\n };\n }\n static getInternalMetadata(zodSchema) {\n const innerSchema = this.unwrapChained(zodSchema);\n const openapi = zodSchema._def.openapi\n ? zodSchema._def.openapi\n : innerSchema._def.openapi;\n return openapi === null || openapi === void 0 ? void 0 : openapi._internal;\n }\n static getParamMetadata(zodSchema) {\n var _a, _b;\n const innerSchema = this.unwrapChained(zodSchema);\n const metadata = zodSchema._def.openapi\n ? zodSchema._def.openapi\n : innerSchema._def.openapi;\n /**\n * Every zod schema can receive a `description` by using the .describe method.\n * That description should be used when generating an OpenApi schema.\n * The `??` bellow makes sure we can handle both:\n * - schema.describe('Test').optional()\n * - schema.optional().describe('Test')\n */\n const zodDescription = (_a = zodSchema.description) !== null && _a !== void 0 ? _a : innerSchema.description;\n return {\n _internal: metadata === null || metadata === void 0 ? void 0 : metadata._internal,\n metadata: Object.assign(Object.assign({}, metadata === null || metadata === void 0 ? void 0 : metadata.metadata), { \n // A description provided from .openapi() should be taken with higher precedence\n param: Object.assign({ description: zodDescription }, (_b = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _b === void 0 ? void 0 : _b.param) }),\n };\n }\n /**\n * A method that omits all custom keys added to the regular OpenAPI\n * metadata properties\n */\n static buildSchemaMetadata(metadata) {\n return omitBy(omit(metadata, ['param']), isUndefined);\n }\n static buildParameterMetadata(metadata) {\n return omitBy(metadata, isUndefined);\n }\n static applySchemaMetadata(initialData, metadata) {\n return omitBy(Object.assign(Object.assign({}, initialData), this.buildSchemaMetadata(metadata)), isUndefined);\n }\n static getRefId(zodSchema) {\n var _a;\n return (_a = this.getInternalMetadata(zodSchema)) === null || _a === void 0 ? void 0 : _a.refId;\n }\n static unwrapChained(schema) {\n return this.unwrapUntil(schema);\n }\n static getDefaultValue(zodSchema) {\n const unwrapped = this.unwrapUntil(zodSchema, 'ZodDefault');\n return unwrapped === null || unwrapped === void 0 ? void 0 : unwrapped._def.defaultValue();\n }\n static unwrapUntil(schema, typeName) {\n if (typeName && isZodType(schema, typeName)) {\n return schema;\n }\n if (isZodType(schema, 'ZodOptional') ||\n isZodType(schema, 'ZodNullable') ||\n isZodType(schema, 'ZodBranded')) {\n return this.unwrapUntil(schema.unwrap(), typeName);\n }\n if (isZodType(schema, 'ZodDefault') || isZodType(schema, 'ZodReadonly')) {\n return this.unwrapUntil(schema._def.innerType, typeName);\n }\n if (isZodType(schema, 'ZodEffects')) {\n return this.unwrapUntil(schema._def.schema, typeName);\n }\n if (isZodType(schema, 'ZodPipeline')) {\n return this.unwrapUntil(schema._def.in, typeName);\n }\n return typeName ? undefined : schema;\n }\n static isOptionalSchema(zodSchema) {\n return zodSchema.isOptional();\n }\n}\n\nclass ArrayTransformer {\n transform(zodSchema, mapNullableType, mapItems) {\n var _a, _b;\n const itemType = zodSchema._def.type;\n return Object.assign(Object.assign({}, mapNullableType('array')), { items: mapItems(itemType), minItems: (_a = zodSchema._def.minLength) === null || _a === void 0 ? void 0 : _a.value, maxItems: (_b = zodSchema._def.maxLength) === null || _b === void 0 ? void 0 : _b.value });\n }\n}\n\nclass BigIntTransformer {\n transform(mapNullableType) {\n return Object.assign(Object.assign({}, mapNullableType('string')), { pattern: `^\\d+$` });\n }\n}\n\nclass DiscriminatedUnionTransformer {\n transform(zodSchema, isNullable, mapNullableOfArray, mapItem, generateSchemaRef) {\n const options = [...zodSchema.options.values()];\n const optionSchema = options.map(mapItem);\n if (isNullable) {\n return {\n oneOf: mapNullableOfArray(optionSchema, isNullable),\n };\n }\n return {\n oneOf: optionSchema,\n discriminator: this.mapDiscriminator(options, zodSchema.discriminator, generateSchemaRef),\n };\n }\n mapDiscriminator(zodObjects, discriminator, generateSchemaRef) {\n // All schemas must be registered to use a discriminator\n if (zodObjects.some(obj => Metadata.getRefId(obj) === undefined)) {\n return undefined;\n }\n const mapping = {};\n zodObjects.forEach(obj => {\n var _a;\n const refId = Metadata.getRefId(obj); // type-checked earlier\n const value = (_a = obj.shape) === null || _a === void 0 ? void 0 : _a[discriminator];\n if (isZodType(value, 'ZodEnum') || isZodType(value, 'ZodNativeEnum')) {\n // Native enums have their keys as both number and strings however the number is an\n // internal representation and the string is the access point for a documentation\n const keys = Object.values(value.enum).filter(isString);\n keys.forEach((enumValue) => {\n mapping[enumValue] = generateSchemaRef(refId);\n });\n return;\n }\n const literalValue = value === null || value === void 0 ? void 0 : value._def.value;\n // This should never happen because Zod checks the disciminator type but to keep the types happy\n if (typeof literalValue !== 'string') {\n throw new Error(`Discriminator ${discriminator} could not be found in one of the values of a discriminated union`);\n }\n mapping[literalValue] = generateSchemaRef(refId);\n });\n return {\n propertyName: discriminator,\n mapping,\n };\n }\n}\n\nclass EnumTransformer {\n transform(zodSchema, mapNullableType) {\n // ZodEnum only accepts strings\n return Object.assign(Object.assign({}, mapNullableType('string')), { enum: zodSchema._def.values });\n }\n}\n\nclass IntersectionTransformer {\n transform(zodSchema, isNullable, mapNullableOfArray, mapItem) {\n const subtypes = this.flattenIntersectionTypes(zodSchema);\n const allOfSchema = {\n allOf: subtypes.map(mapItem),\n };\n if (isNullable) {\n return {\n anyOf: mapNullableOfArray([allOfSchema], isNullable),\n };\n }\n return allOfSchema;\n }\n flattenIntersectionTypes(schema) {\n if (!isZodType(schema, 'ZodIntersection')) {\n return [schema];\n }\n const leftSubTypes = this.flattenIntersectionTypes(schema._def.left);\n const rightSubTypes = this.flattenIntersectionTypes(schema._def.right);\n return [...leftSubTypes, ...rightSubTypes];\n }\n}\n\nclass LiteralTransformer {\n transform(zodSchema, mapNullableType) {\n return Object.assign(Object.assign({}, mapNullableType(typeof zodSchema._def.value)), { enum: [zodSchema._def.value] });\n }\n}\n\n/**\n * Numeric enums have a reverse mapping https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings\n * whereas string ones don't.\n *\n * This function checks if an enum is fully numeric - i.e all values are numbers or not.\n * And filters out only the actual enum values when a reverse mapping is apparent.\n */\nfunction enumInfo(enumObject) {\n const keysExceptReverseMappings = Object.keys(enumObject).filter(key => typeof enumObject[enumObject[key]] !== 'number');\n const values = keysExceptReverseMappings.map(key => enumObject[key]);\n const numericCount = values.filter(_ => typeof _ === 'number').length;\n const type = numericCount === 0\n ? 'string'\n : numericCount === values.length\n ? 'numeric'\n : 'mixed';\n return { values, type };\n}\n\nclass NativeEnumTransformer {\n transform(zodSchema, mapNullableType) {\n const { type, values } = enumInfo(zodSchema._def.values);\n if (type === 'mixed') {\n // enum Test {\n // A = 42,\n // B = 'test',\n // }\n //\n // const result = z.nativeEnum(Test).parse('42');\n //\n // This is an error, so we can't just say it's a 'string'\n throw new ZodToOpenAPIError('Enum has mixed string and number values, please specify the OpenAPI type manually');\n }\n return Object.assign(Object.assign({}, mapNullableType(type === 'numeric' ? 'integer' : 'string')), { enum: values });\n }\n}\n\nclass NumberTransformer {\n transform(zodSchema, mapNullableType, getNumberChecks) {\n return Object.assign(Object.assign({}, mapNullableType(zodSchema.isInt ? 'integer' : 'number')), getNumberChecks(zodSchema._def.checks));\n }\n}\n\nclass ObjectTransformer {\n transform(zodSchema, defaultValue, mapNullableType, mapItem) {\n var _a;\n const extendedFrom = (_a = Metadata.getInternalMetadata(zodSchema)) === null || _a === void 0 ? void 0 : _a.extendedFrom;\n const required = this.requiredKeysOf(zodSchema);\n const properties = mapValues(zodSchema._def.shape(), mapItem);\n if (!extendedFrom) {\n return Object.assign(Object.assign(Object.assign(Object.assign({}, mapNullableType('object')), { properties, default: defaultValue }), (required.length > 0 ? { required } : {})), this.generateAdditionalProperties(zodSchema, mapItem));\n }\n const parent = extendedFrom.schema;\n // We want to generate the parent schema so that it can be referenced down the line\n mapItem(parent);\n const keysRequiredByParent = this.requiredKeysOf(parent);\n const propsOfParent = mapValues(parent === null || parent === void 0 ? void 0 : parent._def.shape(), mapItem);\n const propertiesToAdd = Object.fromEntries(Object.entries(properties).filter(([key, type]) => {\n return !objectEquals(propsOfParent[key], type);\n }));\n const additionallyRequired = required.filter(prop => !keysRequiredByParent.includes(prop));\n const objectData = Object.assign(Object.assign(Object.assign(Object.assign({}, mapNullableType('object')), { default: defaultValue, properties: propertiesToAdd }), (additionallyRequired.length > 0\n ? { required: additionallyRequired }\n : {})), this.generateAdditionalProperties(zodSchema, mapItem));\n return {\n allOf: [\n { $ref: `#/components/schemas/${extendedFrom.refId}` },\n objectData,\n ],\n };\n }\n generateAdditionalProperties(zodSchema, mapItem) {\n const unknownKeysOption = zodSchema._def.unknownKeys;\n const catchallSchema = zodSchema._def.catchall;\n if (isZodType(catchallSchema, 'ZodNever')) {\n if (unknownKeysOption === 'strict') {\n return { additionalProperties: false };\n }\n return {};\n }\n return { additionalProperties: mapItem(catchallSchema) };\n }\n requiredKeysOf(objectSchema) {\n return Object.entries(objectSchema._def.shape())\n .filter(([_key, type]) => !Metadata.isOptionalSchema(type))\n .map(([key, _type]) => key);\n }\n}\n\nclass RecordTransformer {\n transform(zodSchema, mapNullableType, mapItem) {\n const propertiesType = zodSchema._def.valueType;\n const keyType = zodSchema._def.keyType;\n const propertiesSchema = mapItem(propertiesType);\n if (isZodType(keyType, 'ZodEnum') || isZodType(keyType, 'ZodNativeEnum')) {\n // Native enums have their keys as both number and strings however the number is an\n // internal representation and the string is the access point for a documentation\n const keys = Object.values(keyType.enum).filter(isString);\n const properties = keys.reduce((acc, curr) => (Object.assign(Object.assign({}, acc), { [curr]: propertiesSchema })), {});\n return Object.assign(Object.assign({}, mapNullableType('object')), { properties });\n }\n return Object.assign(Object.assign({}, mapNullableType('object')), { additionalProperties: propertiesSchema });\n }\n}\n\nclass StringTransformer {\n transform(zodSchema, mapNullableType) {\n var _a, _b, _c;\n const regexCheck = this.getZodStringCheck(zodSchema, 'regex');\n const length = (_a = this.getZodStringCheck(zodSchema, 'length')) === null || _a === void 0 ? void 0 : _a.value;\n const maxLength = Number.isFinite(zodSchema.minLength)\n ? (_b = zodSchema.minLength) !== null && _b !== void 0 ? _b : undefined\n : undefined;\n const minLength = Number.isFinite(zodSchema.maxLength)\n ? (_c = zodSchema.maxLength) !== null && _c !== void 0 ? _c : undefined\n : undefined;\n return Object.assign(Object.assign({}, mapNullableType('string')), { \n // FIXME: https://github.com/colinhacks/zod/commit/d78047e9f44596a96d637abb0ce209cd2732d88c\n minLength: length !== null && length !== void 0 ? length : maxLength, maxLength: length !== null && length !== void 0 ? length : minLength, format: this.mapStringFormat(zodSchema), pattern: regexCheck === null || regexCheck === void 0 ? void 0 : regexCheck.regex.source });\n }\n /**\n * Attempts to map Zod strings to known formats\n * https://json-schema.org/understanding-json-schema/reference/string.html#built-in-formats\n */\n mapStringFormat(zodString) {\n if (zodString.isUUID)\n return 'uuid';\n if (zodString.isEmail)\n return 'email';\n if (zodString.isURL)\n return 'uri';\n if (zodString.isDate)\n return 'date';\n if (zodString.isDatetime)\n return 'date-time';\n if (zodString.isCUID)\n return 'cuid';\n if (zodString.isCUID2)\n return 'cuid2';\n if (zodString.isULID)\n return 'ulid';\n if (zodString.isIP)\n return 'ip';\n if (zodString.isEmoji)\n return 'emoji';\n return undefined;\n }\n getZodStringCheck(zodString, kind) {\n return zodString._def.checks.find((check) => {\n return check.kind === kind;\n });\n }\n}\n\nclass TupleTransformer {\n constructor(versionSpecifics) {\n this.versionSpecifics = versionSpecifics;\n }\n transform(zodSchema, mapNullableType, mapItem) {\n const { items } = zodSchema._def;\n const schemas = items.map(mapItem);\n return Object.assign(Object.assign({}, mapNullableType('array')), this.versionSpecifics.mapTupleItems(schemas));\n }\n}\n\nclass UnionTransformer {\n transform(zodSchema, mapNullableOfArray, mapItem) {\n const options = this.flattenUnionTypes(zodSchema);\n const schemas = options.map(schema => {\n // If any of the underlying schemas of a union is .nullable then the whole union\n // would be nullable. `mapNullableOfArray` would place it where it belongs.\n // Therefor we are stripping the additional nullables from the inner schemas\n // See https://github.com/asteasolutions/zod-to-openapi/issues/149\n const optionToGenerate = this.unwrapNullable(schema);\n return mapItem(optionToGenerate);\n });\n return {\n anyOf: mapNullableOfArray(schemas),\n };\n }\n flattenUnionTypes(schema) {\n if (!isZodType(schema, 'ZodUnion')) {\n return [schema];\n }\n const options = schema._def.options;\n return options.flatMap(option => this.flattenUnionTypes(option));\n }\n unwrapNullable(schema) {\n if (isZodType(schema, 'ZodNullable')) {\n return this.unwrapNullable(schema.unwrap());\n }\n return schema;\n }\n}\n\nclass OpenApiTransformer {\n constructor(versionSpecifics) {\n this.versionSpecifics = versionSpecifics;\n this.objectTransformer = new ObjectTransformer();\n this.stringTransformer = new StringTransformer();\n this.numberTransformer = new NumberTransformer();\n this.bigIntTransformer = new BigIntTransformer();\n this.literalTransformer = new LiteralTransformer();\n this.enumTransformer = new EnumTransformer();\n this.nativeEnumTransformer = new NativeEnumTransformer();\n this.arrayTransformer = new ArrayTransformer();\n this.unionTransformer = new UnionTransformer();\n this.discriminatedUnionTransformer = new DiscriminatedUnionTransformer();\n this.intersectionTransformer = new IntersectionTransformer();\n this.recordTransformer = new RecordTransformer();\n this.tupleTransformer = new TupleTransformer(versionSpecifics);\n }\n transform(zodSchema, isNullable, mapItem, generateSchemaRef, defaultValue) {\n if (isZodType(zodSchema, 'ZodNull')) {\n return this.versionSpecifics.nullType;\n }\n if (isZodType(zodSchema, 'ZodUnknown') || isZodType(zodSchema, 'ZodAny')) {\n return this.versionSpecifics.mapNullableType(undefined, isNullable);\n }\n if (isZodType(zodSchema, 'ZodObject')) {\n return this.objectTransformer.transform(zodSchema, defaultValue, // verified on TS level from input\n // verified on TS level from input\n _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n const schema = this.transformSchemaWithoutDefault(zodSchema, isNullable, mapItem, generateSchemaRef);\n return Object.assign(Object.assign({}, schema), { default: defaultValue });\n }\n transformSchemaWithoutDefault(zodSchema, isNullable, mapItem, generateSchemaRef) {\n if (isZodType(zodSchema, 'ZodUnknown') || isZodType(zodSchema, 'ZodAny')) {\n return this.versionSpecifics.mapNullableType(undefined, isNullable);\n }\n if (isZodType(zodSchema, 'ZodString')) {\n return this.stringTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodNumber')) {\n return this.numberTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable), _ => this.versionSpecifics.getNumberChecks(_));\n }\n if (isZodType(zodSchema, 'ZodBigInt')) {\n return this.bigIntTransformer.transform(schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodBoolean')) {\n return this.versionSpecifics.mapNullableType('boolean', isNullable);\n }\n if (isZodType(zodSchema, 'ZodLiteral')) {\n return this.literalTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodEnum')) {\n return this.enumTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodNativeEnum')) {\n return this.nativeEnumTransformer.transform(zodSchema, schema => this.versionSpecifics.mapNullableType(schema, isNullable));\n }\n if (isZodType(zodSchema, 'ZodArray')) {\n return this.arrayTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodTuple')) {\n return this.tupleTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodUnion')) {\n return this.unionTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableOfArray(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodDiscriminatedUnion')) {\n return this.discriminatedUnionTransformer.transform(zodSchema, isNullable, _ => this.versionSpecifics.mapNullableOfArray(_, isNullable), mapItem, generateSchemaRef);\n }\n if (isZodType(zodSchema, 'ZodIntersection')) {\n return this.intersectionTransformer.transform(zodSchema, isNullable, _ => this.versionSpecifics.mapNullableOfArray(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodRecord')) {\n return this.recordTransformer.transform(zodSchema, _ => this.versionSpecifics.mapNullableType(_, isNullable), mapItem);\n }\n if (isZodType(zodSchema, 'ZodDate')) {\n return this.versionSpecifics.mapNullableType('string', isNullable);\n }\n const refId = Metadata.getRefId(zodSchema);\n throw new UnknownZodTypeError({\n currentSchema: zodSchema._def,\n schemaName: refId,\n });\n }\n}\n\nclass OpenAPIGenerator {\n constructor(definitions, versionSpecifics) {\n this.definitions = definitions;\n this.versionSpecifics = versionSpecifics;\n this.schemaRefs = {};\n this.paramRefs = {};\n this.pathRefs = {};\n this.rawComponents = [];\n this.openApiTransformer = new OpenApiTransformer(versionSpecifics);\n this.sortDefinitions();\n }\n generateDocumentData() {\n this.definitions.forEach(definition => this.generateSingle(definition));\n return {\n components: this.buildComponents(),\n paths: this.pathRefs,\n };\n }\n generateComponents() {\n this.definitions.forEach(definition => this.generateSingle(definition));\n return {\n components: this.buildComponents(),\n };\n }\n buildComponents() {\n var _a, _b;\n const rawComponents = {};\n this.rawComponents.forEach(({ componentType, name, component }) => {\n var _a;\n (_a = rawComponents[componentType]) !== null && _a !== void 0 ? _a : (rawComponents[componentType] = {});\n rawComponents[componentType][name] = component;\n });\n return Object.assign(Object.assign({}, rawComponents), { schemas: Object.assign(Object.assign({}, ((_a = rawComponents.schemas) !== null && _a !== void 0 ? _a : {})), this.schemaRefs), parameters: Object.assign(Object.assign({}, ((_b = rawComponents.parameters) !== null && _b !== void 0 ? _b : {})), this.paramRefs) });\n }\n sortDefinitions() {\n const generationOrder = [\n 'schema',\n 'parameter',\n 'component',\n 'route',\n ];\n this.definitions.sort((left, right) => {\n // No type means \"plain zod schema\" => it comes as highest priority based on the array above\n if (!('type' in left)) {\n if (!('type' in right)) {\n return 0;\n }\n return -1;\n }\n if (!('type' in right)) {\n return 1;\n }\n const leftIndex = generationOrder.findIndex(type => type === left.type);\n const rightIndex = generationOrder.findIndex(type => type === right.type);\n return leftIndex - rightIndex;\n });\n }\n generateSingle(definition) {\n if (!('type' in definition)) {\n this.generateSchemaWithRef(definition);\n return;\n }\n switch (definition.type) {\n case 'parameter':\n this.generateParameterDefinition(definition.schema);\n return;\n case 'schema':\n this.generateSchemaWithRef(definition.schema);\n return;\n case 'route':\n this.generateSingleRoute(definition.route);\n return;\n case 'component':\n this.rawComponents.push(definition);\n return;\n }\n }\n generateParameterDefinition(zodSchema) {\n const refId = Metadata.getRefId(zodSchema);\n const result = this.generateParameter(zodSchema);\n if (refId) {\n this.paramRefs[refId] = result;\n }\n return result;\n }\n getParameterRef(schemaMetadata, external) {\n var _a, _b, _c, _d, _e;\n const parameterMetadata = (_a = schemaMetadata === null || schemaMetadata === void 0 ? void 0 : schemaMetadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n const existingRef = ((_b = schemaMetadata === null || schemaMetadata === void 0 ? void 0 : schemaMetadata._internal) === null || _b === void 0 ? void 0 : _b.refId)\n ? this.paramRefs[(_c = schemaMetadata._internal) === null || _c === void 0 ? void 0 : _c.refId]\n : undefined;\n if (!((_d = schemaMetadata === null || schemaMetadata === void 0 ? void 0 : schemaMetadata._internal) === null || _d === void 0 ? void 0 : _d.refId) || !existingRef) {\n return undefined;\n }\n if ((parameterMetadata && existingRef.in !== parameterMetadata.in) ||\n ((external === null || external === void 0 ? void 0 : external.in) && existingRef.in !== external.in)) {\n throw new ConflictError(`Conflicting location for parameter ${existingRef.name}`, {\n key: 'in',\n values: compact([\n existingRef.in,\n external === null || external === void 0 ? void 0 : external.in,\n parameterMetadata === null || parameterMetadata === void 0 ? void 0 : parameterMetadata.in,\n ]),\n });\n }\n if ((parameterMetadata && existingRef.name !== parameterMetadata.name) ||\n ((external === null || external === void 0 ? void 0 : external.name) && existingRef.name !== (external === null || external === void 0 ? void 0 : external.name))) {\n throw new ConflictError(`Conflicting names for parameter`, {\n key: 'name',\n values: compact([\n existingRef.name,\n external === null || external === void 0 ? void 0 : external.name,\n parameterMetadata === null || parameterMetadata === void 0 ? void 0 : parameterMetadata.name,\n ]),\n });\n }\n return {\n $ref: `#/components/parameters/${(_e = schemaMetadata._internal) === null || _e === void 0 ? void 0 : _e.refId}`,\n };\n }\n generateInlineParameters(zodSchema, location) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const parameterMetadata = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n const referencedSchema = this.getParameterRef(metadata, { in: location });\n if (referencedSchema) {\n return [referencedSchema];\n }\n if (isZodType(zodSchema, 'ZodObject')) {\n const propTypes = zodSchema._def.shape();\n const parameters = Object.entries(propTypes).map(([key, schema]) => {\n var _a, _b;\n const innerMetadata = Metadata.getMetadata(schema);\n const referencedSchema = this.getParameterRef(innerMetadata, {\n in: location,\n name: key,\n });\n if (referencedSchema) {\n return referencedSchema;\n }\n const innerParameterMetadata = (_a = innerMetadata === null || innerMetadata === void 0 ? void 0 : innerMetadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n if ((innerParameterMetadata === null || innerParameterMetadata === void 0 ? void 0 : innerParameterMetadata.name) &&\n innerParameterMetadata.name !== key) {\n throw new ConflictError(`Conflicting names for parameter`, {\n key: 'name',\n values: [key, innerParameterMetadata.name],\n });\n }\n if ((innerParameterMetadata === null || innerParameterMetadata === void 0 ? void 0 : innerParameterMetadata.in) &&\n innerParameterMetadata.in !== location) {\n throw new ConflictError(`Conflicting location for parameter ${(_b = innerParameterMetadata.name) !== null && _b !== void 0 ? _b : key}`, {\n key: 'in',\n values: [location, innerParameterMetadata.in],\n });\n }\n return this.generateParameter(schema.openapi({ param: { name: key, in: location } }));\n });\n return parameters;\n }\n if ((parameterMetadata === null || parameterMetadata === void 0 ? void 0 : parameterMetadata.in) && parameterMetadata.in !== location) {\n throw new ConflictError(`Conflicting location for parameter ${parameterMetadata.name}`, {\n key: 'in',\n values: [location, parameterMetadata.in],\n });\n }\n return [\n this.generateParameter(zodSchema.openapi({ param: { in: location } })),\n ];\n }\n generateSimpleParameter(zodSchema) {\n var _a;\n const metadata = Metadata.getParamMetadata(zodSchema);\n const paramMetadata = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n // TODO: Why are we not unwrapping here for isNullable as well?\n const required = !Metadata.isOptionalSchema(zodSchema) && !zodSchema.isNullable();\n const schema = this.generateSchemaWithRef(zodSchema);\n return Object.assign({ schema,\n required }, (paramMetadata ? Metadata.buildParameterMetadata(paramMetadata) : {}));\n }\n generateParameter(zodSchema) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const paramMetadata = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.param;\n const paramName = paramMetadata === null || paramMetadata === void 0 ? void 0 : paramMetadata.name;\n const paramLocation = paramMetadata === null || paramMetadata === void 0 ? void 0 : paramMetadata.in;\n if (!paramName) {\n throw new MissingParameterDataError({ missingField: 'name' });\n }\n if (!paramLocation) {\n throw new MissingParameterDataError({\n missingField: 'in',\n paramName,\n });\n }\n const baseParameter = this.generateSimpleParameter(zodSchema);\n return Object.assign(Object.assign({}, baseParameter), { in: paramLocation, name: paramName });\n }\n generateSchemaWithMetadata(zodSchema) {\n var _a;\n const innerSchema = Metadata.unwrapChained(zodSchema);\n const metadata = Metadata.getMetadata(zodSchema);\n const defaultValue = Metadata.getDefaultValue(zodSchema);\n const result = ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.type)\n ? { type: metadata === null || metadata === void 0 ? void 0 : metadata.metadata.type }\n : this.toOpenAPISchema(innerSchema, zodSchema.isNullable(), defaultValue);\n return (metadata === null || metadata === void 0 ? void 0 : metadata.metadata)\n ? Metadata.applySchemaMetadata(result, metadata.metadata)\n : omitBy(result, isUndefined);\n }\n /**\n * Same as above but applies nullable\n */\n constructReferencedOpenAPISchema(zodSchema) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const innerSchema = Metadata.unwrapChained(zodSchema);\n const defaultValue = Metadata.getDefaultValue(zodSchema);\n const isNullableSchema = zodSchema.isNullable();\n if ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) === null || _a === void 0 ? void 0 : _a.type) {\n return this.versionSpecifics.mapNullableType(metadata.metadata.type, isNullableSchema);\n }\n return this.toOpenAPISchema(innerSchema, isNullableSchema, defaultValue);\n }\n /**\n * Generates an OpenAPI SchemaObject or a ReferenceObject with all the provided metadata applied\n */\n generateSimpleSchema(zodSchema) {\n var _a;\n const metadata = Metadata.getMetadata(zodSchema);\n const refId = Metadata.getRefId(zodSchema);\n if (!refId || !this.schemaRefs[refId]) {\n return this.generateSchemaWithMetadata(zodSchema);\n }\n const schemaRef = this.schemaRefs[refId];\n const referenceObject = {\n $ref: this.generateSchemaRef(refId),\n };\n // Metadata provided from .openapi() that is new to what we had already registered\n const newMetadata = omitBy(Metadata.buildSchemaMetadata((_a = metadata === null || metadata === void 0 ? void 0 : metadata.metadata) !== null && _a !== void 0 ? _a : {}), (value, key) => value === undefined || objectEquals(value, schemaRef[key]));\n // Do not calculate schema metadata overrides if type is provided in .openapi\n // https://github.com/asteasolutions/zod-to-openapi/pull/52/files/8ff707fe06e222bc573ed46cf654af8ee0b0786d#r996430801\n if (newMetadata.type) {\n return {\n allOf: [referenceObject, newMetadata],\n };\n }\n // New metadata from ZodSchema properties.\n const newSchemaMetadata = omitBy(this.constructReferencedOpenAPISchema(zodSchema), (value, key) => value === undefined || objectEquals(value, schemaRef[key]));\n const appliedMetadata = Metadata.applySchemaMetadata(newSchemaMetadata, newMetadata);\n if (Object.keys(appliedMetadata).length > 0) {\n return {\n allOf: [referenceObject, appliedMetadata],\n };\n }\n return referenceObject;\n }\n /**\n * Same as `generateSchema` but if the new schema is added into the\n * referenced schemas, it would return a ReferenceObject and not the\n * whole result.\n *\n * Should be used for nested objects, arrays, etc.\n */\n generateSchemaWithRef(zodSchema) {\n const refId = Metadata.getRefId(zodSchema);\n const result = this.generateSimpleSchema(zodSchema);\n if (refId && this.schemaRefs[refId] === undefined) {\n this.schemaRefs[refId] = result;\n return { $ref: this.generateSchemaRef(refId) };\n }\n return result;\n }\n generateSchemaRef(refId) {\n return `#/components/schemas/${refId}`;\n }\n getRequestBody(requestBody) {\n if (!requestBody) {\n return;\n }\n const { content } = requestBody, rest = __rest(requestBody, [\"content\"]);\n const requestBodyContent = this.getBodyContent(content);\n return Object.assign(Object.assign({}, rest), { content: requestBodyContent });\n }\n getParameters(request) {\n if (!request) {\n return [];\n }\n const { headers } = request;\n const query = this.cleanParameter(request.query);\n const params = this.cleanParameter(request.params);\n const cookies = this.cleanParameter(request.cookies);\n const queryParameters = enhanceMissingParametersError(() => (query ? this.generateInlineParameters(query, 'query') : []), { location: 'query' });\n const pathParameters = enhanceMissingParametersError(() => (params ? this.generateInlineParameters(params, 'path') : []), { location: 'path' });\n const cookieParameters = enhanceMissingParametersError(() => (cookies ? this.generateInlineParameters(cookies, 'cookie') : []), { location: 'cookie' });\n const headerParameters = enhanceMissingParametersError(() => {\n if (Array.isArray(headers)) {\n return headers.flatMap(header => this.generateInlineParameters(header, 'header'));\n }\n const cleanHeaders = this.cleanParameter(headers);\n return cleanHeaders\n ? this.generateInlineParameters(cleanHeaders, 'header')\n : [];\n }, { location: 'header' });\n return [\n ...pathParameters,\n ...queryParameters,\n ...headerParameters,\n ...cookieParameters,\n ];\n }\n cleanParameter(schema) {\n if (!schema) {\n return undefined;\n }\n return isZodType(schema, 'ZodEffects')\n ? this.cleanParameter(schema._def.schema)\n : schema;\n }\n generatePath(route) {\n const { method, path, request, responses } = route, pathItemConfig = __rest(route, [\"method\", \"path\", \"request\", \"responses\"]);\n const generatedResponses = mapValues(responses, response => {\n return this.getResponse(response);\n });\n const parameters = enhanceMissingParametersError(() => this.getParameters(request), { route: `${method} ${path}` });\n const requestBody = this.getRequestBody(request === null || request === void 0 ? void 0 : request.body);\n const routeDoc = {\n [method]: Object.assign(Object.assign(Object.assign(Object.assign({}, pathItemConfig), (parameters.length > 0\n ? {\n parameters: [...(pathItemConfig.parameters || []), ...parameters],\n }\n : {})), (requestBody ? { requestBody } : {})), { responses: generatedResponses }),\n };\n return routeDoc;\n }\n generateSingleRoute(route) {\n const routeDoc = this.generatePath(route);\n this.pathRefs[route.path] = Object.assign(Object.assign({}, this.pathRefs[route.path]), routeDoc);\n return routeDoc;\n }\n getResponse(response) {\n if (this.isReferenceObject(response)) {\n return response;\n }\n const { content, headers } = response, rest = __rest(response, [\"content\", \"headers\"]);\n const responseContent = content\n ? { content: this.getBodyContent(content) }\n : {};\n if (!headers) {\n return Object.assign(Object.assign({}, rest), responseContent);\n }\n const responseHeaders = isZodType(headers, 'ZodObject')\n ? this.getResponseHeaders(headers)\n : // This is input data so it is okay to cast in the common generator\n // since this is the user's responsibility to keep it correct\n headers;\n return Object.assign(Object.assign(Object.assign({}, rest), { headers: responseHeaders }), responseContent);\n }\n isReferenceObject(schema) {\n return '$ref' in schema;\n }\n getResponseHeaders(headers) {\n const schemaShape = headers._def.shape();\n const responseHeaders = mapValues(schemaShape, _ => this.generateSimpleParameter(_));\n return responseHeaders;\n }\n getBodyContent(content) {\n return mapValues(content, config => {\n if (!config || !isAnyZodType(config.schema)) {\n return config;\n }\n const { schema: configSchema } = config, rest = __rest(config, [\"schema\"]);\n const schema = this.generateSchemaWithRef(configSchema);\n return Object.assign({ schema }, rest);\n });\n }\n toOpenAPISchema(zodSchema, isNullable, defaultValue) {\n return this.openApiTransformer.transform(zodSchema, isNullable, _ => this.generateSchemaWithRef(_), _ => this.generateSchemaRef(_), defaultValue);\n }\n}\n\nclass OpenApiGeneratorV30Specifics {\n get nullType() {\n return { nullable: true };\n }\n mapNullableOfArray(objects, isNullable) {\n if (isNullable) {\n return [...objects, this.nullType];\n }\n return objects;\n }\n mapNullableType(type, isNullable) {\n return Object.assign(Object.assign({}, (type ? { type } : undefined)), (isNullable ? this.nullType : undefined));\n }\n mapTupleItems(schemas) {\n const uniqueSchemas = uniq(schemas);\n return {\n items: uniqueSchemas.length === 1\n ? uniqueSchemas[0]\n : { anyOf: uniqueSchemas },\n minItems: schemas.length,\n maxItems: schemas.length,\n };\n }\n getNumberChecks(checks) {\n return Object.assign({}, ...checks.map(check => {\n switch (check.kind) {\n case 'min':\n return check.inclusive\n ? { minimum: Number(check.value) }\n : { minimum: Number(check.value), exclusiveMinimum: true };\n case 'max':\n return check.inclusive\n ? { maximum: Number(check.value) }\n : { maximum: Number(check.value), exclusiveMaximum: true };\n default:\n return {};\n }\n }));\n }\n}\n\nclass OpenApiGeneratorV3 {\n constructor(definitions) {\n const specifics = new OpenApiGeneratorV30Specifics();\n this.generator = new OpenAPIGenerator(definitions, specifics);\n }\n generateDocument(config) {\n const baseData = this.generator.generateDocumentData();\n return Object.assign(Object.assign({}, config), baseData);\n }\n generateComponents() {\n return this.generator.generateComponents();\n }\n}\n\nclass OpenApiGeneratorV31Specifics {\n get nullType() {\n return { type: 'null' };\n }\n mapNullableOfArray(objects, isNullable) {\n if (isNullable) {\n return [...objects, this.nullType];\n }\n return objects;\n }\n mapNullableType(type, isNullable) {\n if (!type) {\n // 'null' is considered a type in Open API 3.1.0 => not providing a type includes null\n return {};\n }\n // Open API 3.1.0 made the `nullable` key invalid and instead you use type arrays\n if (isNullable) {\n return {\n type: Array.isArray(type) ? [...type, 'null'] : [type, 'null'],\n };\n }\n return {\n type,\n };\n }\n mapTupleItems(schemas) {\n return {\n prefixItems: schemas,\n };\n }\n getNumberChecks(checks) {\n return Object.assign({}, ...checks.map(check => {\n switch (check.kind) {\n case 'min':\n return check.inclusive\n ? { minimum: Number(check.value) }\n : { exclusiveMinimum: Number(check.value) };\n case 'max':\n return check.inclusive\n ? { maximum: Number(check.value) }\n : { exclusiveMaximum: Number(check.value) };\n default:\n return {};\n }\n }));\n }\n}\n\nfunction isWebhookDefinition(definition) {\n return 'type' in definition && definition.type === 'webhook';\n}\nclass OpenApiGeneratorV31 {\n constructor(definitions) {\n this.definitions = definitions;\n this.webhookRefs = {};\n const specifics = new OpenApiGeneratorV31Specifics();\n this.generator = new OpenAPIGenerator(this.definitions, specifics);\n }\n generateDocument(config) {\n const baseDocument = this.generator.generateDocumentData();\n this.definitions\n .filter(isWebhookDefinition)\n .forEach(definition => this.generateSingleWebhook(definition.webhook));\n return Object.assign(Object.assign(Object.assign({}, config), baseDocument), { webhooks: this.webhookRefs });\n }\n generateComponents() {\n return this.generator.generateComponents();\n }\n generateSingleWebhook(route) {\n const routeDoc = this.generator.generatePath(route);\n this.webhookRefs[route.path] = Object.assign(Object.assign({}, this.webhookRefs[route.path]), routeDoc);\n return routeDoc;\n }\n}\n\nexports.OpenAPIRegistry = OpenAPIRegistry;\nexports.OpenApiGeneratorV3 = OpenApiGeneratorV3;\nexports.OpenApiGeneratorV31 = OpenApiGeneratorV31;\nexports.extendZodWithOpenApi = extendZodWithOpenApi;\nexports.getOpenApiMetadata = getOpenApiMetadata;\n",
|
|
6
|
-
"export const API_KEYS_QUERIES = {\n SELECT_BY_NAME_AND_OWNER: `\n SELECT key FROM misc.api_keys\n WHERE name = $1\n AND deleted_at IS NULL\n AND (\n ($2::text IS NULL AND organization_id IS NULL AND customer_id = $3)\n OR\n (organization_id = $2)\n )\n LIMIT 1\n `,\n INSERT: `\n INSERT INTO misc.api_keys\n (key, customer_id, organization_id, name, total_calls, metrics)\n VALUES\n ($1, $2, $3, $4, 0, $5)\n `,\n} as const;\n",
|
|
6
|
+
"export const API_KEYS_QUERIES = {\n SELECT_BY_NAME_AND_OWNER: `\n SELECT key FROM misc.api_keys\n WHERE name = $1\n AND deleted_at IS NULL\n AND (\n ($2::text IS NULL AND organization_id IS NULL AND customer_id = $3)\n OR\n (organization_id = $2)\n )\n LIMIT 1\n `,\n INSERT: `\n INSERT INTO misc.api_keys\n (key, customer_id, organization_id, name, total_calls, metrics, ip_rps_limit)\n VALUES\n ($1, $2, $3, $4, 0, $5, $6)\n `,\n} as const;\n",
|
|
7
7
|
"export enum Tags {\n SNIPER = 'sniper',\n INSIDER = 'insider',\n BUNDLER = 'bundler',\n PRO_TRADER = 'proTrader',\n SMART_TRADER = 'smartTrader',\n FRESH_TRADER = 'freshTrader',\n DEV = 'dev',\n LIQUIDITY_POOL = 'liquidityPool',\n}\n\nexport enum SwapType {\n REGULAR = 'REGULAR',\n MEV = 'MEV',\n MEV_SANDWICHED = 'MEV_SANDWICHED',\n WITHDRAWAL = 'WITHDRAWAL',\n DEPOSIT = 'DEPOSIT',\n BOND = 'BOND',\n}\n",
|
|
8
8
|
"export function bigintAbs(value: bigint): bigint {\n return value < 0n ? -value : value;\n}\n",
|
|
9
|
-
"
|
|
9
|
+
"import { z } from 'zod';\n\n/**\n * Recursively strips Zod effects (transforms, defaults, refinements, preprocess)\n * from a schema, returning the underlying base type.\n *\n * Needed because OpenAPI generators cannot represent JS transforms/defaults.\n */\nexport function stripEffects(schema: z.ZodTypeAny): z.ZodTypeAny {\n if (schema instanceof z.ZodEffects) {\n return stripEffects(schema._def.schema);\n }\n if (schema instanceof z.ZodDefault) {\n return stripEffects(schema._def.innerType);\n }\n if (schema instanceof z.ZodOptional) {\n return stripEffects(schema._def.innerType).optional();\n }\n if (schema instanceof z.ZodNullable) {\n return stripEffects(schema._def.innerType).nullable();\n }\n return schema;\n}\n\n/**\n * Unwraps top-level effects (transform, refine) to get the underlying ZodObject.\n */\nfunction unwrapToObject(schema: z.ZodTypeAny): z.ZodObject<z.ZodRawShape> {\n if (schema instanceof z.ZodObject) return schema;\n if (schema instanceof z.ZodEffects) return unwrapToObject(schema._def.schema);\n throw new Error(`createOpenAPIParams: expected ZodObject at base, got ${schema.constructor.name}`);\n}\n\n/**\n * Creates an OpenAPI-compatible schema from a runtime Zod object schema.\n *\n * 1. Unwraps top-level transforms/refinements\n * 2. Omits hidden fields (deprecated, internal)\n * 3. Strips per-field transforms/defaults\n * 4. Adds descriptions for documentation\n *\n * @example\n * ```ts\n * export const MySchemaOpenAPI = createOpenAPIParams(MyRuntimeSchema, {\n * omit: ['blockchain', '_internalField'],\n * describe: {\n * wallet: 'Wallet address',\n * blockchains: 'Comma-separated blockchain IDs',\n * },\n * });\n * ```\n */\nexport function createOpenAPIParams(\n runtimeSchema: z.ZodTypeAny,\n options: {\n omit?: string[];\n describe?: Record<string, string>;\n },\n): z.ZodObject<z.ZodRawShape> {\n const base = unwrapToObject(runtimeSchema);\n const shape = base.shape;\n const newShape: Record<string, z.ZodTypeAny> = {};\n const omitSet = new Set(options.omit ?? []);\n\n for (const [key, value] of Object.entries(shape)) {\n if (omitSet.has(key)) continue;\n\n let cleaned = stripEffects(value as z.ZodTypeAny);\n\n const desc = options.describe?.[key];\n if (desc) {\n cleaned = cleaned.describe(desc);\n }\n\n newShape[key] = cleaned;\n }\n\n return z.object(newShape);\n}\n\n/**\n * Utility type: Omit hidden fields from SDK input types.\n * Use this to hide deprecated/internal fields from TypeScript autocomplete.\n *\n * @example\n * ```ts\n * export type MyParams = SDKInput<typeof MySchema, 'blockchain' | '_internalFlag'>;\n * ```\n */\nexport type SDKInput<T extends z.ZodTypeAny, Hidden extends string> = Omit<z.input<T>, Hidden>;\n",
|
|
10
|
+
"export default function normalizePeriod(period: string, defaultPeriod = '1h') {\n switch (period.toLowerCase()) {\n case '1s':\n return '1s';\n case '5s':\n return '5s';\n case '15s':\n return '15s';\n case '30s':\n return '30s';\n case '1':\n case '1m':\n case '1min':\n return '1m';\n case '5':\n case '5m':\n case '5min':\n return '5m';\n case '15':\n case '15m':\n case '15min':\n return '15m';\n case '30':\n case '30m':\n case '30min':\n return '30m';\n case '60':\n case '1h':\n return '1h';\n case '240':\n case '4h':\n return '4h';\n case '360':\n case '6h':\n return '6h';\n case '1d':\n return '1d';\n case '1w':\n return '1w';\n case '1month':\n return '1M';\n default:\n return defaultPeriod;\n }\n}\n\nexport function getPeriodSeconds(period: string): number {\n switch (period) {\n case '1s':\n return 1;\n case '5s':\n return 5;\n case '15s':\n return 15;\n case '30s':\n return 30;\n case '1m':\n return 60;\n case '5m':\n return 5 * 60;\n case '15m':\n return 15 * 60;\n case '30m':\n return 30 * 60;\n case '1h':\n return 60 * 60;\n case '4h':\n return 4 * 60 * 60;\n case '6h':\n return 6 * 60 * 60;\n case '1d':\n return 24 * 60 * 60;\n case '1w':\n return 7 * 24 * 60 * 60;\n case '1M':\n return 30 * 24 * 60 * 60;\n default:\n throw new Error('Invalid bar value');\n }\n}\n\nexport function getBucketExpression(period: string): string {\n // Postgres expression to truncate \"date\" column to the start of the bucket\n // using DATE_TRUNC + interval arithmetic instead of manual epoch math.\n switch (period) {\n case '1s':\n return `date_trunc('second', date)`;\n case '5s':\n return `\n date_trunc('minute', date)\n + floor(extract(second from date)::int / 5) * interval '5 second'\n `;\n case '15s':\n return `\n date_trunc('minute', date)\n + floor(extract(second from date)::int / 15) * interval '15 second'\n `;\n case '30s':\n return `\n date_trunc('minute', date)\n + floor(extract(second from date)::int / 30) * interval '30 second'\n `;\n case '1m':\n return `date_trunc('minute', date)`;\n case '5m':\n return `\n date_trunc('hour', date)\n + floor(extract(minute from date)::int / 5) * interval '5 minute'\n `;\n case '15m':\n return `\n date_trunc('hour', date)\n + floor(extract(minute from date)::int / 15) * interval '15 minute'\n `;\n case '30m':\n return `\n date_trunc('hour', date)\n + floor(extract(minute from date)::int / 30) * interval '30 minute'\n `;\n case '1h':\n return `date_trunc('hour', date)`;\n case '4h':\n return `\n date_trunc('day', date)\n + floor(extract(hour from date)::int / 4) * interval '4 hour'\n `;\n case '6h':\n return `\n date_trunc('day', date)\n + floor(extract(hour from date)::int / 6) * interval '6 hour'\n `;\n case '1d':\n return `date_trunc('day', date)`;\n case '1w':\n return `date_trunc('week', date)`;\n case '1M':\n return `date_trunc('month', date)`;\n default:\n throw new Error('Invalid period value');\n }\n}\n",
|
|
10
11
|
"import { z } from 'zod';\n\n// Type utilities for extracting Zod schema keys with perfect type safety\ntype ExtractShape<T> = T extends z.ZodObject<infer S> ? S : never;\ntype ZodRawShape = Record<string, z.ZodTypeAny>;\n\n// Advanced type-safe function to extract keys from Zod schema\nexport function extractZodSchemaKeys<TSchema extends z.ZodObject<ZodRawShape>, TShape = ExtractShape<TSchema>>(\n schema: TSchema,\n): readonly (keyof TShape)[] {\n // Type assertion with runtime validation\n const schemaDef = schema._def;\n\n if (\n !schemaDef ||\n typeof schemaDef !== 'object' ||\n !('typeName' in schemaDef) ||\n schemaDef.typeName !== 'ZodObject' ||\n !('shape' in schemaDef)\n ) {\n throw new Error('Provided schema is not a valid ZodObject schema');\n }\n\n const shapeFn = schemaDef.shape;\n if (typeof shapeFn !== 'function') {\n throw new Error('Schema shape is not a function');\n }\n\n const shape = shapeFn();\n if (!shape || typeof shape !== 'object') {\n throw new Error('Schema shape function did not return a valid object');\n }\n\n // Extract keys with type safety\n const keys = Object.keys(shape) as unknown as readonly (keyof TShape)[];\n\n return keys;\n}\n\n// Alternative implementation using conditional types for more complex schemas\nexport function getZodKeysAdvanced<TSchema extends z.ZodTypeAny>(schema: TSchema): readonly string[] {\n const schemaDef = schema._def;\n\n if (\n !schemaDef ||\n typeof schemaDef !== 'object' ||\n !('typeName' in schemaDef) ||\n schemaDef.typeName !== 'ZodObject' ||\n !('shape' in schemaDef)\n ) {\n return [] as const;\n }\n\n const shapeFn = schemaDef.shape;\n if (typeof shapeFn !== 'function') {\n return [] as const;\n }\n\n const shape = shapeFn();\n if (!shape || typeof shape !== 'object') {\n return [] as const;\n }\n\n return Object.keys(shape) as readonly string[];\n}\n\nexport type NestedObjectKeys<T> = T extends Record<string, unknown>\n ? {\n [K in keyof T]: T[K] extends Record<string, unknown>\n ? `${string & K}.${string & NestedObjectKeys<T[K]>}`\n : string & K;\n }[keyof T]\n : never;\n\nexport function extractAllZodKeys<TSchema extends z.ZodObject<ZodRawShape>>(\n schema: TSchema,\n includeNested: boolean = false,\n): readonly string[] {\n const schemaDef = schema._def;\n\n if (\n !schemaDef ||\n typeof schemaDef !== 'object' ||\n !('typeName' in schemaDef) ||\n schemaDef.typeName !== 'ZodObject' ||\n !('shape' in schemaDef)\n ) {\n return [] as const;\n }\n\n const shapeFn = schemaDef.shape;\n if (typeof shapeFn !== 'function') {\n return [] as const;\n }\n\n const shape = shapeFn();\n if (!shape || typeof shape !== 'object') {\n return [] as const;\n }\n\n const keys: string[] = [];\n\n function extractKeys(obj: Record<string, z.ZodTypeAny>, prefix: string = ''): void {\n for (const [key, zodType] of Object.entries(obj)) {\n const fullKey = prefix ? `${prefix}.${key}` : key;\n\n keys.push(fullKey);\n\n if (includeNested && zodType && typeof zodType === 'object' && '_def' in zodType) {\n const def = zodType._def;\n if (\n def &&\n typeof def === 'object' &&\n 'typeName' in def &&\n def.typeName === 'ZodObject' &&\n 'shape' in def &&\n typeof def.shape === 'function'\n ) {\n const nestedShape = def.shape();\n if (nestedShape && typeof nestedShape === 'object') {\n extractKeys(nestedShape, fullKey);\n }\n }\n }\n }\n }\n\n extractKeys(shape);\n return keys as readonly string[];\n}\n\nexport const getZodDefaultValue = (zodType: unknown): unknown => {\n if (!zodType || typeof zodType !== 'object' || !('_def' in zodType) || !zodType._def) {\n return 0;\n }\n\n const def = zodType._def as Record<string, unknown>;\n\n if (def['typeName'] === 'ZodDefault') {\n const defaultValue = def['defaultValue'];\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n\n if (def['typeName'] === 'ZodNullable') {\n return null;\n }\n\n if (def['typeName'] === 'ZodOptional') {\n return getZodDefaultValue(def['innerType']);\n }\n\n if (def['typeName'] === 'ZodEffects') {\n return getZodDefaultValue(def['schema']);\n }\n\n switch (def['typeName']) {\n case 'ZodString':\n return '';\n case 'ZodNumber':\n return 0;\n case 'ZodBoolean':\n return false;\n case 'ZodDate':\n return null;\n case 'ZodArray':\n return [];\n case 'ZodObject':\n return {};\n default:\n return 0;\n }\n};\n\nexport const generateDefaultFromSchema = <T>(schema: unknown): T => {\n const result: Record<string, unknown> = {};\n\n if (\n schema &&\n typeof schema === 'object' &&\n '_def' in schema &&\n schema._def &&\n typeof schema._def === 'object' &&\n 'typeName' in schema._def &&\n schema._def.typeName === 'ZodObject' &&\n 'shape' in schema._def\n ) {\n const shapeFn = schema._def.shape as () => Record<string, unknown>;\n const shape = shapeFn();\n\n for (const [key, zodType] of Object.entries(shape)) {\n result[key] = getZodDefaultValue(zodType);\n }\n }\n\n return result as T;\n};\n\nexport const getZodSchemaKeys = (schema: unknown): string[] => {\n if (\n schema &&\n typeof schema === 'object' &&\n '_def' in schema &&\n schema._def &&\n typeof schema._def === 'object' &&\n 'typeName' in schema._def &&\n schema._def.typeName === 'ZodObject' &&\n 'shape' in schema._def\n ) {\n const shapeFn = schema._def.shape as () => Record<string, unknown>;\n const shape = shapeFn();\n return Object.keys(shape);\n }\n\n return [];\n};\n\nexport const generateMinimalistMapping = <T>(schema: unknown, data: unknown[]): T => {\n const keys = getZodSchemaKeys(schema);\n const result: Record<string, unknown> = {};\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key) {\n const value = data[i] ?? null;\n result[key] = value;\n }\n }\n\n return result as T;\n};\n\nexport const generateAutomaticMinimalistParser = <T extends z.ZodTypeAny>(schema: T, data: unknown[]): z.infer<T> => {\n const keys = getZodSchemaKeys(schema);\n const result: Record<string, unknown> = {};\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key) {\n const value = data[i];\n\n if (value === null || value === undefined) {\n result[key] = null;\n } else if (typeof value === 'string') {\n if (key.includes('date') || key.includes('created') || key.includes('bonded_at')) {\n result[key] = new Date(value);\n } else {\n result[key] = value;\n }\n } else if (typeof value === 'number') {\n result[key] = value;\n } else if (typeof value === 'boolean') {\n result[key] = value;\n } else if (Array.isArray(value)) {\n result[key] = value;\n } else {\n result[key] = value;\n }\n }\n }\n\n return result as z.infer<T>;\n};\n",
|
|
11
12
|
"import { z } from 'zod';\n\n/**\n * Convert scientific notation string to integer string\n * e.g., \"1.17e+25\" -> \"11700000000000000000000000\"\n */\nfunction scientificToInteger(value: string): string {\n // Check if it's in scientific notation\n const match = value.match(/^(-?)(\\d+)\\.?(\\d*)e([+-]?)(\\d+)$/i);\n if (!match) {\n return value;\n }\n\n try {\n const [, sign, integerPart, decimalPart, expSign, exponentStr] = match;\n const exponent = Number.parseInt(exponentStr!, 10);\n\n // If exponent is negative, result will be < 1, so we return 0\n if (expSign === '-') {\n return sign === '-' ? '-0' : '0';\n }\n\n // Combine integer and decimal parts\n const digits = integerPart! + (decimalPart || '');\n const decimalPosition = integerPart!.length;\n\n // Calculate new position after applying exponent\n const newLength = decimalPosition + exponent;\n\n if (newLength <= 0) {\n // Result is less than 1\n return sign === '-' ? '-0' : '0';\n }\n\n if (newLength >= digits.length) {\n // We need to add zeros at the end\n const zerosToAdd = newLength - digits.length;\n return sign + digits + '0'.repeat(zerosToAdd);\n }\n\n // We need to truncate decimal part (round down)\n return sign + digits.slice(0, newLength);\n } catch {\n return value;\n }\n}\n\nconst BigIntLax = z.union([\n z.string().transform((v, ctx) => {\n let value: bigint;\n\n try {\n // Convert scientific notation to integer string if needed\n const normalizedValue = scientificToInteger(v);\n value = BigInt(normalizedValue);\n } catch (_) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Cannot parse to BigInt',\n });\n return z.NEVER;\n }\n\n return value;\n }),\n z.number().transform((v, ctx) => {\n if (!Number.isSafeInteger(v)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Number is not a safe integer',\n });\n return z.NEVER;\n }\n\n return BigInt(v);\n }),\n z.bigint(),\n z.null().transform(() => 0n),\n]);\n\nexport type BigIntLax = z.infer<typeof BigIntLax>;\n\nexport default BigIntLax;\n",
|
|
12
13
|
"import { z } from 'zod';\n\n/**\n * Supported fiat currencies for multi-currency price display\n */\nexport const SupportedCurrency = z.enum(['USD', 'EUR', 'GBP', 'JPY', 'CHF', 'CAD', 'AUD', 'CNY', 'KRW', 'INR', 'BRL']);\n\nexport type SupportedCurrencyType = z.infer<typeof SupportedCurrency>;\n\n/**\n * Default currency when none is specified\n */\nexport const DEFAULT_CURRENCY: SupportedCurrencyType = 'USD';\n\n/**\n * Schema for currencies query parameter\n * Accepts comma-separated list of currencies, defaults to USD\n * Example: currencies=EUR,USD\n */\nexport const CurrenciesParamSchema = z\n .string()\n .optional()\n .default('USD')\n .transform((val) => {\n const currencies = val\n .split(',')\n .map((c) => c.trim().toUpperCase())\n .filter((c) => SupportedCurrency.safeParse(c).success) as SupportedCurrencyType[];\n // Always include USD as it's the base currency\n if (!currencies.includes('USD')) {\n currencies.unshift('USD');\n }\n return [...new Set(currencies)];\n });\n\nexport type CurrenciesParam = z.infer<typeof CurrenciesParamSchema>;\n\n/**\n * All currencies except USD (currencies that need conversion)\n */\nexport const NON_USD_CURRENCIES = SupportedCurrency.options.filter((c) => c !== 'USD');\n",
|
|
13
14
|
"import { z } from 'zod';\nimport BigIntLax from './BigIntLax.ts';\n\nexport const HolderSchema = z.object({\n address: z.string(),\n\n balanceRaw: BigIntLax,\n nativeBalanceRaw: BigIntLax,\n balance: z.coerce.number(),\n nativeBalance: z.coerce.number(),\n balanceUSD: z.coerce.number(),\n\n boughtAmountRaw: BigIntLax,\n boughtAmount: z.coerce.number(),\n boughtAmountUSD: z.coerce.number(),\n\n soldAmount: z.coerce.number(),\n soldAmountRaw: BigIntLax,\n soldAmountUSD: z.coerce.number(),\n\n realizedPnlUSD: z.coerce.number(),\n unrealizedPnlUSD: z.coerce.number(),\n\n tags: z.string().array(),\n\n createdAt: z.coerce.date().nullable(),\n updatedAt: z.coerce.date().nullable(),\n});\n\nexport type HolderSchema = z.infer<typeof HolderSchema>;\n\nexport const HoldersStatsSchema = z.object({\n holdersCount: z.coerce.number().nullable().optional(),\n top10HoldingsPercentage: z.coerce.number().nullable().optional(),\n top50HoldingsPercentage: z.coerce.number().nullable().optional(),\n top100HoldingsPercentage: z.coerce.number().nullable().optional(),\n top200HoldingsPercentage: z.coerce.number().nullable().optional(),\n\n devHoldingsPercentage: z.coerce.number().nullable().optional(),\n insidersHoldingsPercentage: z.coerce.number().nullable().optional(),\n bundlersHoldingsPercentage: z.coerce.number().nullable().optional(),\n snipersHoldingsPercentage: z.coerce.number().nullable().optional(),\n proTradersHoldingsPercentage: z.coerce.number().nullable().optional(),\n freshTradersHoldingsPercentage: z.coerce.number().nullable().optional(),\n smartTradersHoldingsPercentage: z.coerce.number().nullable().optional(),\n\n insidersCount: z.coerce.number().nullable().optional(),\n bundlersCount: z.coerce.number().nullable().optional(),\n snipersCount: z.coerce.number().nullable().optional(),\n freshTradersCount: z.coerce.number().nullable().optional(),\n proTradersCount: z.coerce.number().nullable().optional(),\n smartTradersCount: z.coerce.number().nullable().optional(),\n\n freshTradersBuys: z.coerce.number().nullable().optional(),\n proTradersBuys: z.coerce.number().nullable().optional(),\n smartTradersBuys: z.coerce.number().nullable().optional(),\n});\n\nexport type HoldersStatsSchema = z.infer<typeof HoldersStatsSchema>;\n\nexport const HoldersStreamNewTokenPayload = HoldersStatsSchema.extend({\n holders: z.array(HolderSchema),\n});\n\nexport type HoldersStreamNewTokenPayload = z.infer<typeof HoldersStreamNewTokenPayload>;\n\nexport type HoldersStreamStats = HoldersStatsSchema & {\n holders: HolderSchema[];\n};\n\nexport type HoldersStreamUpdatePayload = HoldersStatsSchema & {\n tokenPrice: number | null;\n holders: Record<string, HoldersStreamStats['holders'][number]>;\n};\n",
|
|
14
|
-
"import { z } from 'zod';\nimport { extractAllZodKeys } from '../functions/zodUtils.ts';\nimport { HolderSchema, HoldersStatsSchema } from './EnrichedHoldersData.ts';\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\n/**\n * Token type schema representing the ERC token standard version\n * - \"2020\": ERC-20 standard token\n * - \"2022\": ERC-2022 (Token Extensions) standard token\n */\nexport const TokenTypeValues = ['2020', '2022'] as const;\nexport type TokenType = (typeof TokenTypeValues)[number];\nexport const TokenTypeSchema = z.enum(TokenTypeValues).nullable().optional();\n\nexport const keysToRemovePoolToPulse: Partial<Record<keyof PoolData, true>> = {\n token0: true as const,\n token1: true as const,\n volume24h: true as const,\n blockchain: true as const,\n address: true as const,\n createdAt: true as const,\n type: true as const,\n baseToken: true as const,\n exchange: true as const,\n factory: true as const,\n quoteToken: true as const,\n // 'price', // Keep price at root level for service compatibility\n priceToken: true as const,\n priceTokenString: true as const,\n athToken0: true as const,\n athToken1: true as const,\n atlToken0: true as const,\n atlToken1: true as const,\n athDateToken0: true as const,\n athDateToken1: true as const,\n atlDateToken0: true as const,\n atlDateToken1: true as const,\n};\n\n/**\n * Metadata keys that can be used as fallback from Token table when TokensStatsRealTime is empty\n * These are the social and security fields that are shared between Token and TokensStatsRealTime tables\n */\nexport const TOKEN_METADATA_KEYS = [\n 'twitter',\n 'telegram',\n 'website',\n 'others',\n 'security',\n 'logo',\n 'twitterRenameCount',\n 'twitterRenameHistory',\n 'dexscreenerListed',\n 'dexscreenerHeader',\n 'dexscreenerAdPaid',\n 'liveStatus',\n 'liveThumbnail',\n 'livestreamTitle',\n 'liveReplyCount',\n 'deployer',\n 'bonded_at',\n 'description',\n] as const;\n\nexport type TokenMetadataKey = (typeof TOKEN_METADATA_KEYS)[number];\n\nexport const TokenData = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n price: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCap: z.coerce.number().optional().default(0),\n marketCapDiluted: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n\n liquidity: z.coerce.number().optional(),\n liquidityMax: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n tokenType: TokenTypeSchema,\n\n deployer: z.string().nullable().optional(),\n createdAt: z.string().optional(),\n bonded_at: z.coerce.date().nullable(),\n ath: z.coerce.number().optional(),\n atl: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport type TokenData = z.infer<typeof TokenData>;\n\n// Keys to keep at root level in PulseEnrichedTokenData (these won't be removed)\nconst keysToKeepInPulseToken = new Set<string>([\n // Add keys here that should remain at root level in PulseEnrichedTokenData\n // All other TokenData keys will be automatically removed\n 'bonded_at',\n]);\n\nconst allTokenDataKeys = extractAllZodKeys(TokenData);\nexport const keysToRemoveTokenToPulse: Partial<Record<keyof TokenData, true>> = allTokenDataKeys\n .filter((key) => !keysToKeepInPulseToken.has(key as string))\n .reduce(\n (acc, key) => {\n acc[key as keyof TokenData] = true as const;\n return acc;\n },\n {} as Partial<Record<keyof TokenData, true>>,\n );\n\nexport const PoolData = z.object({\n token0: TokenData,\n token1: TokenData,\n volume24h: z.coerce.number().default(0),\n liquidity: z.coerce.number().default(0),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n baseToken: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n quoteToken: z.string(),\n price: z.coerce.number().optional(),\n priceToken: z.coerce.number().optional(),\n priceTokenString: z.string().optional(),\n\n athToken0: z.coerce.number().default(0),\n athToken1: z.coerce.number().default(0),\n atlToken0: z.coerce.number().default(0),\n atlToken1: z.coerce.number().default(0),\n athDateToken0: z.coerce.date().optional(),\n athDateToken1: z.coerce.date().optional(),\n atlDateToken0: z.coerce.date().optional(),\n atlDateToken1: z.coerce.date().optional(),\n\n bonded: z.coerce.boolean(),\n bondingPercentage: z.coerce.number().nullable(),\n bondingCurveAddress: z.string().nullable(),\n sourceFactory: z.string().nullable().optional(),\n totalFeesPaidUSD: z.coerce.number().optional(),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n\n extraData: z.record(z.any()).optional(),\n});\nexport type PoolData = z.infer<typeof PoolData>;\n\nexport const poolDataKeys = extractAllZodKeys(PoolData);\nexport const tokenDataKeys = extractAllZodKeys(TokenData);\n\nexport const PoolStatsSchema = z.object({\n price_change_1min: z.coerce.number().default(0),\n price_change_5min: z.coerce.number().default(0),\n price_change_1h: z.coerce.number().default(0),\n price_change_4h: z.coerce.number().default(0),\n price_change_6h: z.coerce.number().default(0),\n price_change_12h: z.coerce.number().default(0),\n price_change_24h: z.coerce.number().default(0),\n\n price_1min_ago: z.coerce.number().default(0),\n price_5min_ago: z.coerce.number().default(0),\n price_1h_ago: z.coerce.number().default(0),\n price_4h_ago: z.coerce.number().default(0),\n price_6h_ago: z.coerce.number().default(0),\n price_12h_ago: z.coerce.number().default(0),\n price_24h_ago: z.coerce.number().default(0),\n\n volume_1min: z.coerce.number().default(0),\n volume_5min: z.coerce.number().default(0),\n volume_15min: z.coerce.number().default(0),\n volume_1h: z.coerce.number().default(0),\n volume_4h: z.coerce.number().default(0),\n volume_6h: z.coerce.number().default(0),\n volume_12h: z.coerce.number().default(0),\n volume_24h: z.coerce.number().default(0),\n\n volume_buy_1min: z.coerce.number().default(0),\n volume_buy_5min: z.coerce.number().default(0),\n volume_buy_15min: z.coerce.number().default(0),\n volume_buy_1h: z.coerce.number().default(0),\n volume_buy_4h: z.coerce.number().default(0),\n volume_buy_6h: z.coerce.number().default(0),\n volume_buy_12h: z.coerce.number().default(0),\n volume_buy_24h: z.coerce.number().default(0),\n\n volume_sell_1min: z.coerce.number().default(0),\n volume_sell_5min: z.coerce.number().default(0),\n volume_sell_15min: z.coerce.number().default(0),\n volume_sell_1h: z.coerce.number().default(0),\n volume_sell_4h: z.coerce.number().default(0),\n volume_sell_6h: z.coerce.number().default(0),\n volume_sell_12h: z.coerce.number().default(0),\n volume_sell_24h: z.coerce.number().default(0),\n\n trades_1min: z.coerce.number().default(0),\n trades_5min: z.coerce.number().default(0),\n trades_15min: z.coerce.number().default(0),\n trades_1h: z.coerce.number().default(0),\n trades_4h: z.coerce.number().default(0),\n trades_6h: z.coerce.number().default(0),\n trades_12h: z.coerce.number().default(0),\n trades_24h: z.coerce.number().default(0),\n\n buys_1min: z.coerce.number().default(0),\n buys_5min: z.coerce.number().default(0),\n buys_15min: z.coerce.number().default(0),\n buys_1h: z.coerce.number().default(0),\n buys_4h: z.coerce.number().default(0),\n buys_6h: z.coerce.number().default(0),\n buys_12h: z.coerce.number().default(0),\n buys_24h: z.coerce.number().default(0),\n\n sells_1min: z.coerce.number().default(0),\n sells_5min: z.coerce.number().default(0),\n sells_15min: z.coerce.number().default(0),\n sells_1h: z.coerce.number().default(0),\n sells_4h: z.coerce.number().default(0),\n sells_6h: z.coerce.number().default(0),\n sells_12h: z.coerce.number().default(0),\n sells_24h: z.coerce.number().default(0),\n\n buyers_1min: z.coerce.number().default(0),\n buyers_5min: z.coerce.number().default(0),\n buyers_15min: z.coerce.number().default(0),\n buyers_1h: z.coerce.number().default(0),\n buyers_4h: z.coerce.number().default(0),\n buyers_6h: z.coerce.number().default(0),\n buyers_12h: z.coerce.number().default(0),\n buyers_24h: z.coerce.number().default(0),\n\n sellers_1min: z.coerce.number().default(0),\n sellers_5min: z.coerce.number().default(0),\n sellers_15min: z.coerce.number().default(0),\n sellers_1h: z.coerce.number().default(0),\n sellers_4h: z.coerce.number().default(0),\n sellers_6h: z.coerce.number().default(0),\n sellers_12h: z.coerce.number().default(0),\n sellers_24h: z.coerce.number().default(0),\n\n traders_1min: z.coerce.number().default(0),\n traders_5min: z.coerce.number().default(0),\n traders_15min: z.coerce.number().default(0),\n traders_1h: z.coerce.number().default(0),\n traders_4h: z.coerce.number().default(0),\n traders_6h: z.coerce.number().default(0),\n traders_12h: z.coerce.number().default(0),\n traders_24h: z.coerce.number().default(0),\n\n fees_paid_1min: z.coerce.number().default(0),\n fees_paid_5min: z.coerce.number().default(0),\n fees_paid_15min: z.coerce.number().default(0),\n fees_paid_1h: z.coerce.number().default(0),\n fees_paid_4h: z.coerce.number().default(0),\n fees_paid_6h: z.coerce.number().default(0),\n fees_paid_12h: z.coerce.number().default(0),\n fees_paid_24h: z.coerce.number().default(0),\n});\n\nexport type PoolStats = z.infer<typeof PoolStatsSchema>;\n\nexport const EnrichedPoolDataSchema = PoolData.merge(\n PoolStatsSchema.merge(\n z.object({\n price: z.coerce.number().default(0),\n\n market_cap: z.coerce.number().default(0),\n created_at: z.coerce.date().nullable(),\n holders_count: z.coerce.number().default(0),\n latest_trade_date: z.coerce.date().nullable().default(null),\n latest_price: z.coerce.number().default(0),\n\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n tokenSymbol: z.string().nullable(),\n tokenName: z.string().nullable(),\n dexscreenerListed: z.coerce.boolean().nullable(),\n deployerMigrations: z.coerce.number().default(0),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n twitterReusesCount: z.coerce.number().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .optional(),\n holders_list: z.array(HolderSchema),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n }),\n ).merge(HoldersStatsSchema),\n);\n\nexport type EnrichedPoolData = z.infer<typeof EnrichedPoolDataSchema>;\n\n// Pulse types are now identical to enriched types\nexport const PulseEnrichedPoolDataSchema = EnrichedPoolDataSchema;\nexport type PulseEnrichedPoolData = EnrichedPoolData;\n\nexport const TokenStatsSchema = z.object({\n latest_trade_date: z.coerce.date().nullable(),\n\n price_change_1min: z.coerce.number().default(0),\n price_change_5min: z.coerce.number().default(0),\n price_change_1h: z.coerce.number().default(0),\n price_change_4h: z.coerce.number().default(0),\n price_change_6h: z.coerce.number().default(0),\n price_change_12h: z.coerce.number().default(0),\n price_change_24h: z.coerce.number().default(0),\n\n price_1min_ago: z.coerce.number().default(0),\n price_5min_ago: z.coerce.number().default(0),\n price_1h_ago: z.coerce.number().default(0),\n price_4h_ago: z.coerce.number().default(0),\n price_6h_ago: z.coerce.number().default(0),\n price_12h_ago: z.coerce.number().default(0),\n price_24h_ago: z.coerce.number().default(0),\n\n volume_1min: z.coerce.number().default(0),\n volume_5min: z.coerce.number().default(0),\n volume_15min: z.coerce.number().default(0),\n volume_1h: z.coerce.number().default(0),\n volume_4h: z.coerce.number().default(0),\n volume_6h: z.coerce.number().default(0),\n volume_12h: z.coerce.number().default(0),\n volume_24h: z.coerce.number().default(0),\n\n volume_buy_1min: z.coerce.number().default(0),\n volume_buy_5min: z.coerce.number().default(0),\n volume_buy_15min: z.coerce.number().default(0),\n volume_buy_1h: z.coerce.number().default(0),\n volume_buy_4h: z.coerce.number().default(0),\n volume_buy_6h: z.coerce.number().default(0),\n volume_buy_12h: z.coerce.number().default(0),\n volume_buy_24h: z.coerce.number().default(0),\n\n volume_sell_1min: z.coerce.number().default(0),\n volume_sell_5min: z.coerce.number().default(0),\n volume_sell_15min: z.coerce.number().default(0),\n volume_sell_1h: z.coerce.number().default(0),\n volume_sell_4h: z.coerce.number().default(0),\n volume_sell_6h: z.coerce.number().default(0),\n volume_sell_12h: z.coerce.number().default(0),\n volume_sell_24h: z.coerce.number().default(0),\n\n trades_1min: z.coerce.number().default(0),\n trades_5min: z.coerce.number().default(0),\n trades_15min: z.coerce.number().default(0),\n trades_1h: z.coerce.number().default(0),\n trades_4h: z.coerce.number().default(0),\n trades_6h: z.coerce.number().default(0),\n trades_12h: z.coerce.number().default(0),\n trades_24h: z.coerce.number().default(0),\n\n buys_1min: z.coerce.number().default(0),\n buys_5min: z.coerce.number().default(0),\n buys_15min: z.coerce.number().default(0),\n buys_1h: z.coerce.number().default(0),\n buys_4h: z.coerce.number().default(0),\n buys_6h: z.coerce.number().default(0),\n buys_12h: z.coerce.number().default(0),\n buys_24h: z.coerce.number().default(0),\n\n sells_1min: z.coerce.number().default(0),\n sells_5min: z.coerce.number().default(0),\n sells_15min: z.coerce.number().default(0),\n sells_1h: z.coerce.number().default(0),\n sells_4h: z.coerce.number().default(0),\n sells_6h: z.coerce.number().default(0),\n sells_12h: z.coerce.number().default(0),\n sells_24h: z.coerce.number().default(0),\n\n buyers_1min: z.coerce.number().default(0),\n buyers_5min: z.coerce.number().default(0),\n buyers_15min: z.coerce.number().default(0),\n buyers_1h: z.coerce.number().default(0),\n buyers_4h: z.coerce.number().default(0),\n buyers_6h: z.coerce.number().default(0),\n buyers_12h: z.coerce.number().default(0),\n buyers_24h: z.coerce.number().default(0),\n\n sellers_1min: z.coerce.number().default(0),\n sellers_5min: z.coerce.number().default(0),\n sellers_15min: z.coerce.number().default(0),\n sellers_1h: z.coerce.number().default(0),\n sellers_4h: z.coerce.number().default(0),\n sellers_6h: z.coerce.number().default(0),\n sellers_12h: z.coerce.number().default(0),\n sellers_24h: z.coerce.number().default(0),\n\n traders_1min: z.coerce.number().default(0),\n traders_5min: z.coerce.number().default(0),\n traders_15min: z.coerce.number().default(0),\n traders_1h: z.coerce.number().default(0),\n traders_4h: z.coerce.number().default(0),\n traders_6h: z.coerce.number().default(0),\n traders_12h: z.coerce.number().default(0),\n traders_24h: z.coerce.number().default(0),\n\n fees_paid_1min: z.coerce.number().default(0),\n fees_paid_5min: z.coerce.number().default(0),\n fees_paid_15min: z.coerce.number().default(0),\n fees_paid_1h: z.coerce.number().default(0),\n fees_paid_4h: z.coerce.number().default(0),\n fees_paid_6h: z.coerce.number().default(0),\n fees_paid_12h: z.coerce.number().default(0),\n fees_paid_24h: z.coerce.number().default(0),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n\n organic_trades_1min: z.coerce.number().default(0),\n organic_trades_5min: z.coerce.number().default(0),\n organic_trades_15min: z.coerce.number().default(0),\n organic_trades_1h: z.coerce.number().default(0),\n organic_trades_4h: z.coerce.number().default(0),\n organic_trades_6h: z.coerce.number().default(0),\n organic_trades_12h: z.coerce.number().default(0),\n organic_trades_24h: z.coerce.number().default(0),\n\n organic_traders_1min: z.coerce.number().default(0),\n organic_traders_5min: z.coerce.number().default(0),\n organic_traders_15min: z.coerce.number().default(0),\n organic_traders_1h: z.coerce.number().default(0),\n organic_traders_4h: z.coerce.number().default(0),\n organic_traders_6h: z.coerce.number().default(0),\n organic_traders_12h: z.coerce.number().default(0),\n organic_traders_24h: z.coerce.number().default(0),\n\n organic_volume_1min: z.coerce.number().default(0),\n organic_volume_5min: z.coerce.number().default(0),\n organic_volume_15min: z.coerce.number().default(0),\n organic_volume_1h: z.coerce.number().default(0),\n organic_volume_4h: z.coerce.number().default(0),\n organic_volume_6h: z.coerce.number().default(0),\n organic_volume_12h: z.coerce.number().default(0),\n organic_volume_24h: z.coerce.number().default(0),\n\n organic_volume_buy_1min: z.coerce.number().default(0),\n organic_volume_buy_5min: z.coerce.number().default(0),\n organic_volume_buy_15min: z.coerce.number().default(0),\n organic_volume_buy_1h: z.coerce.number().default(0),\n organic_volume_buy_4h: z.coerce.number().default(0),\n organic_volume_buy_6h: z.coerce.number().default(0),\n organic_volume_buy_12h: z.coerce.number().default(0),\n organic_volume_buy_24h: z.coerce.number().default(0),\n\n organic_volume_sell_1min: z.coerce.number().default(0),\n organic_volume_sell_5min: z.coerce.number().default(0),\n organic_volume_sell_15min: z.coerce.number().default(0),\n organic_volume_sell_1h: z.coerce.number().default(0),\n organic_volume_sell_4h: z.coerce.number().default(0),\n organic_volume_sell_6h: z.coerce.number().default(0),\n organic_volume_sell_12h: z.coerce.number().default(0),\n organic_volume_sell_24h: z.coerce.number().default(0),\n\n organic_buys_1min: z.coerce.number().default(0),\n organic_buys_5min: z.coerce.number().default(0),\n organic_buys_15min: z.coerce.number().default(0),\n organic_buys_1h: z.coerce.number().default(0),\n organic_buys_4h: z.coerce.number().default(0),\n organic_buys_6h: z.coerce.number().default(0),\n organic_buys_12h: z.coerce.number().default(0),\n organic_buys_24h: z.coerce.number().default(0),\n\n organic_sells_1min: z.coerce.number().default(0),\n organic_sells_5min: z.coerce.number().default(0),\n organic_sells_15min: z.coerce.number().default(0),\n organic_sells_1h: z.coerce.number().default(0),\n organic_sells_4h: z.coerce.number().default(0),\n organic_sells_6h: z.coerce.number().default(0),\n organic_sells_12h: z.coerce.number().default(0),\n organic_sells_24h: z.coerce.number().default(0),\n\n organic_buyers_1min: z.coerce.number().default(0),\n organic_buyers_5min: z.coerce.number().default(0),\n organic_buyers_15min: z.coerce.number().default(0),\n organic_buyers_1h: z.coerce.number().default(0),\n organic_buyers_4h: z.coerce.number().default(0),\n organic_buyers_6h: z.coerce.number().default(0),\n organic_buyers_12h: z.coerce.number().default(0),\n organic_buyers_24h: z.coerce.number().default(0),\n\n organic_sellers_1min: z.coerce.number().default(0),\n organic_sellers_5min: z.coerce.number().default(0),\n organic_sellers_15min: z.coerce.number().default(0),\n organic_sellers_1h: z.coerce.number().default(0),\n organic_sellers_4h: z.coerce.number().default(0),\n organic_sellers_6h: z.coerce.number().default(0),\n organic_sellers_12h: z.coerce.number().default(0),\n organic_sellers_24h: z.coerce.number().default(0),\n});\nexport type TokenStats = z.infer<typeof TokenStatsSchema>;\n\nexport const EnrichedTokenDataSchema = TokenData.merge(\n TokenStatsSchema.merge(\n z.object({\n created_at: z.coerce.date().nullable(),\n latest_price: z.coerce.number().default(0),\n\n holders_count: z.coerce.number().default(0),\n market_cap: z.coerce.number().default(0),\n latest_market_cap: z.coerce.number().default(0),\n\n description: z.string().nullable(),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n\n security: SecurityFlagsSchema.nullable(),\n\n twitterReusesCount: z.coerce.number().nullable().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .optional(),\n\n deployerMigrationsCount: z.coerce.number().default(0),\n dexscreenerListed: z.boolean().nullable().default(false),\n dexscreenerHeader: z.string().nullable().default(null),\n dexscreenerAdPaid: z.boolean().nullable().default(false),\n\n liveStatus: z.string().nullable(),\n liveThumbnail: z.string().nullable(),\n livestreamTitle: z.string().nullable(),\n liveReplyCount: z.number().nullable(),\n\n holders_list: z.array(HolderSchema),\n }),\n ),\n).merge(HoldersStatsSchema);\n\nexport type EnrichedTokenData = z.infer<typeof EnrichedTokenDataSchema>;\n\n// Pulse types are now identical to enriched types\nexport const PulseEnrichedTokenDataSchema = EnrichedTokenDataSchema;\nexport type PulseEnrichedTokenData = EnrichedTokenData;\n\ntype MakeNullableExcept<T, K extends keyof T> = {\n [P in keyof T]: P extends K ? T[P] : T[P] | null;\n};\n\nexport type NullableEnrichedPoolData = MakeNullableExcept<Omit<EnrichedPoolData, 'token0' | 'token1'>, 'address'> & {\n address_id: string;\n chain_id: string;\n};\nexport type NullableEnrichedTokenData = MakeNullableExcept<EnrichedTokenData, 'address'> & {\n address_id: string;\n chain_id: string;\n};\n",
|
|
15
|
-
"import { z } from 'zod';\n\nexport const EVMSecurityFlagsSchema = z.object({\n buyTax: z.string().optional(),\n sellTax: z.string().optional(),\n transferPausable: z.boolean().optional(),\n top10Holders: z.string().optional(),\n isBlacklisted: z.boolean().optional(),\n isHoneypot: z.boolean().optional(),\n isNotOpenSource: z.boolean().optional(),\n renounced: z.boolean().optional(),\n locked: z.string().optional(),\n isWhitelisted: z.boolean().optional(),\n balanceMutable: z.boolean().optional(),\n lowLiquidity: z.string().optional(),\n burnRate: z.string().optional(),\n isMintable: z.boolean().optional(),\n modifyableTax: z.boolean().optional(),\n selfDestruct: z.boolean().optional(),\n});\n\nexport type EVMSecurityFlags = z.infer<typeof EVMSecurityFlagsSchema>;\n\nexport const SolanaSecurityFlagsSchema = z.object({\n buyTax: z.string().optional(),\n sellTax: z.string().optional(),\n transferPausable: z.boolean().optional(),\n top10Holders: z.string().optional(),\n isBlacklisted: z.boolean().optional(),\n noMintAuthority: z.boolean().optional(),\n balanceMutable: z.boolean().optional(),\n lowLiquidity: z.string().optional(),\n burnRate: z.string().optional(),\n});\n\nexport type SolanaSecurityFlags = z.infer<typeof SolanaSecurityFlagsSchema>;\n\nexport const SecurityFlagsSchema = SolanaSecurityFlagsSchema.merge(EVMSecurityFlagsSchema);\nexport type SecurityFlags = z.infer<typeof SecurityFlagsSchema>;\n",
|
|
15
|
+
"import { z } from 'zod';\nimport { extractAllZodKeys } from '../functions/zodUtils.ts';\nimport { HolderSchema, HoldersStatsSchema } from './EnrichedHoldersData.ts';\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\n/**\n * Token type schema representing the ERC token standard version\n * - \"2020\": ERC-20 standard token\n * - \"2022\": ERC-2022 (Token Extensions) standard token\n */\nexport const TokenTypeValues = ['2020', '2022'] as const;\nexport type TokenType = (typeof TokenTypeValues)[number];\nexport const TokenTypeSchema = z.enum(TokenTypeValues).nullable().optional();\n\nexport const keysToRemovePoolToPulse: Partial<Record<keyof PoolData, true>> = {\n token0: true as const,\n token1: true as const,\n volume24h: true as const,\n blockchain: true as const,\n address: true as const,\n createdAt: true as const,\n type: true as const,\n baseToken: true as const,\n exchange: true as const,\n factory: true as const,\n quoteToken: true as const,\n // 'price', // Keep price at root level for service compatibility\n priceToken: true as const,\n priceTokenString: true as const,\n athToken0: true as const,\n athToken1: true as const,\n atlToken0: true as const,\n atlToken1: true as const,\n athDateToken0: true as const,\n athDateToken1: true as const,\n atlDateToken0: true as const,\n atlDateToken1: true as const,\n};\n\n/**\n * Metadata keys that can be used as fallback from Token table when TokensStatsRealTime is empty\n * These are the social and security fields that are shared between Token and TokensStatsRealTime tables\n */\nexport const TOKEN_METADATA_KEYS = [\n 'twitter',\n 'telegram',\n 'website',\n 'others',\n 'security',\n 'logo',\n 'twitterRenameCount',\n 'twitterRenameHistory',\n 'dexscreenerListed',\n 'dexscreenerHeader',\n 'dexscreenerAdPaid',\n 'liveStatus',\n 'liveThumbnail',\n 'livestreamTitle',\n 'liveReplyCount',\n 'deployer',\n 'bonded_at',\n 'description',\n 'is_mayhem_mode',\n 'is_cashback_coin',\n 'is_agent_mode',\n] as const;\n\nexport type TokenMetadataKey = (typeof TOKEN_METADATA_KEYS)[number];\n\nexport const TokenData = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n price: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCap: z.coerce.number().optional().default(0),\n marketCapDiluted: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n\n liquidity: z.coerce.number().optional(),\n liquidityMax: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n tokenType: TokenTypeSchema,\n\n is_mayhem_mode: z.boolean().nullable().optional().default(null),\n is_cashback_coin: z.boolean().nullable().optional().default(null),\n is_agent_mode: z.boolean().nullable().optional().default(null),\n\n deployer: z.string().nullable().optional(),\n createdAt: z.string().optional(),\n bonded_at: z.coerce.date().nullable(),\n ath: z.coerce.number().optional(),\n atl: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport type TokenData = z.infer<typeof TokenData>;\n\n// Keys to keep at root level in PulseEnrichedTokenData (these won't be removed)\nconst keysToKeepInPulseToken = new Set<string>([\n // Add keys here that should remain at root level in PulseEnrichedTokenData\n // All other TokenData keys will be automatically removed\n 'bonded_at',\n]);\n\nconst allTokenDataKeys = extractAllZodKeys(TokenData);\nexport const keysToRemoveTokenToPulse: Partial<Record<keyof TokenData, true>> = allTokenDataKeys\n .filter((key) => !keysToKeepInPulseToken.has(key as string))\n .reduce(\n (acc, key) => {\n acc[key as keyof TokenData] = true as const;\n return acc;\n },\n {} as Partial<Record<keyof TokenData, true>>,\n );\n\nexport const PoolData = z.object({\n token0: TokenData,\n token1: TokenData,\n volume24h: z.coerce.number().default(0),\n liquidity: z.coerce.number().default(0),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n baseToken: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n quoteToken: z.string(),\n price: z.coerce.number().optional(),\n priceToken: z.coerce.number().optional(),\n priceTokenString: z.string().optional(),\n\n athToken0: z.coerce.number().default(0),\n athToken1: z.coerce.number().default(0),\n atlToken0: z.coerce.number().default(0),\n atlToken1: z.coerce.number().default(0),\n athDateToken0: z.coerce.date().optional(),\n athDateToken1: z.coerce.date().optional(),\n atlDateToken0: z.coerce.date().optional(),\n atlDateToken1: z.coerce.date().optional(),\n\n bonded: z.coerce.boolean(),\n bondingPercentage: z.coerce.number().nullable(),\n bondingCurveAddress: z.string().nullable(),\n sourceFactory: z.string().nullable().optional(),\n totalFeesPaidUSD: z.coerce.number().optional(),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n\n extraData: z.record(z.any()).optional(),\n});\nexport type PoolData = z.infer<typeof PoolData>;\n\nexport const poolDataKeys = extractAllZodKeys(PoolData);\nexport const tokenDataKeys = extractAllZodKeys(TokenData);\n\nexport const PoolStatsSchema = z.object({\n price_change_1min: z.coerce.number().default(0),\n price_change_5min: z.coerce.number().default(0),\n price_change_1h: z.coerce.number().default(0),\n price_change_4h: z.coerce.number().default(0),\n price_change_6h: z.coerce.number().default(0),\n price_change_12h: z.coerce.number().default(0),\n price_change_24h: z.coerce.number().default(0),\n\n price_1min_ago: z.coerce.number().default(0),\n price_5min_ago: z.coerce.number().default(0),\n price_1h_ago: z.coerce.number().default(0),\n price_4h_ago: z.coerce.number().default(0),\n price_6h_ago: z.coerce.number().default(0),\n price_12h_ago: z.coerce.number().default(0),\n price_24h_ago: z.coerce.number().default(0),\n\n volume_1min: z.coerce.number().default(0),\n volume_5min: z.coerce.number().default(0),\n volume_15min: z.coerce.number().default(0),\n volume_1h: z.coerce.number().default(0),\n volume_4h: z.coerce.number().default(0),\n volume_6h: z.coerce.number().default(0),\n volume_12h: z.coerce.number().default(0),\n volume_24h: z.coerce.number().default(0),\n\n volume_buy_1min: z.coerce.number().default(0),\n volume_buy_5min: z.coerce.number().default(0),\n volume_buy_15min: z.coerce.number().default(0),\n volume_buy_1h: z.coerce.number().default(0),\n volume_buy_4h: z.coerce.number().default(0),\n volume_buy_6h: z.coerce.number().default(0),\n volume_buy_12h: z.coerce.number().default(0),\n volume_buy_24h: z.coerce.number().default(0),\n\n volume_sell_1min: z.coerce.number().default(0),\n volume_sell_5min: z.coerce.number().default(0),\n volume_sell_15min: z.coerce.number().default(0),\n volume_sell_1h: z.coerce.number().default(0),\n volume_sell_4h: z.coerce.number().default(0),\n volume_sell_6h: z.coerce.number().default(0),\n volume_sell_12h: z.coerce.number().default(0),\n volume_sell_24h: z.coerce.number().default(0),\n\n trades_1min: z.coerce.number().default(0),\n trades_5min: z.coerce.number().default(0),\n trades_15min: z.coerce.number().default(0),\n trades_1h: z.coerce.number().default(0),\n trades_4h: z.coerce.number().default(0),\n trades_6h: z.coerce.number().default(0),\n trades_12h: z.coerce.number().default(0),\n trades_24h: z.coerce.number().default(0),\n\n buys_1min: z.coerce.number().default(0),\n buys_5min: z.coerce.number().default(0),\n buys_15min: z.coerce.number().default(0),\n buys_1h: z.coerce.number().default(0),\n buys_4h: z.coerce.number().default(0),\n buys_6h: z.coerce.number().default(0),\n buys_12h: z.coerce.number().default(0),\n buys_24h: z.coerce.number().default(0),\n\n sells_1min: z.coerce.number().default(0),\n sells_5min: z.coerce.number().default(0),\n sells_15min: z.coerce.number().default(0),\n sells_1h: z.coerce.number().default(0),\n sells_4h: z.coerce.number().default(0),\n sells_6h: z.coerce.number().default(0),\n sells_12h: z.coerce.number().default(0),\n sells_24h: z.coerce.number().default(0),\n\n buyers_1min: z.coerce.number().default(0),\n buyers_5min: z.coerce.number().default(0),\n buyers_15min: z.coerce.number().default(0),\n buyers_1h: z.coerce.number().default(0),\n buyers_4h: z.coerce.number().default(0),\n buyers_6h: z.coerce.number().default(0),\n buyers_12h: z.coerce.number().default(0),\n buyers_24h: z.coerce.number().default(0),\n\n sellers_1min: z.coerce.number().default(0),\n sellers_5min: z.coerce.number().default(0),\n sellers_15min: z.coerce.number().default(0),\n sellers_1h: z.coerce.number().default(0),\n sellers_4h: z.coerce.number().default(0),\n sellers_6h: z.coerce.number().default(0),\n sellers_12h: z.coerce.number().default(0),\n sellers_24h: z.coerce.number().default(0),\n\n traders_1min: z.coerce.number().default(0),\n traders_5min: z.coerce.number().default(0),\n traders_15min: z.coerce.number().default(0),\n traders_1h: z.coerce.number().default(0),\n traders_4h: z.coerce.number().default(0),\n traders_6h: z.coerce.number().default(0),\n traders_12h: z.coerce.number().default(0),\n traders_24h: z.coerce.number().default(0),\n\n fees_paid_1min: z.coerce.number().default(0),\n fees_paid_5min: z.coerce.number().default(0),\n fees_paid_15min: z.coerce.number().default(0),\n fees_paid_1h: z.coerce.number().default(0),\n fees_paid_4h: z.coerce.number().default(0),\n fees_paid_6h: z.coerce.number().default(0),\n fees_paid_12h: z.coerce.number().default(0),\n fees_paid_24h: z.coerce.number().default(0),\n});\n\nexport type PoolStats = z.infer<typeof PoolStatsSchema>;\n\nexport const EnrichedPoolDataSchema = PoolData.merge(\n PoolStatsSchema.merge(\n z.object({\n price: z.coerce.number().default(0),\n\n market_cap: z.coerce.number().default(0),\n created_at: z.coerce.date().nullable(),\n holders_count: z.coerce.number().default(0),\n latest_trade_date: z.coerce.date().nullable().default(null),\n latest_price: z.coerce.number().default(0),\n\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n tokenSymbol: z.string().nullable(),\n tokenName: z.string().nullable(),\n dexscreenerListed: z.coerce.boolean().nullable(),\n deployerMigrations: z.coerce.number().default(0),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n twitterReusesCount: z.coerce.number().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .optional(),\n holders_list: z.array(HolderSchema),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n }),\n ).merge(HoldersStatsSchema),\n);\n\nexport type EnrichedPoolData = z.infer<typeof EnrichedPoolDataSchema>;\n\n// Pulse types are now identical to enriched types\nexport const PulseEnrichedPoolDataSchema = EnrichedPoolDataSchema;\nexport type PulseEnrichedPoolData = EnrichedPoolData;\n\nexport const TokenStatsSchema = z.object({\n latest_trade_date: z.coerce.date().nullable(),\n\n price_change_1min: z.coerce.number().default(0),\n price_change_5min: z.coerce.number().default(0),\n price_change_1h: z.coerce.number().default(0),\n price_change_4h: z.coerce.number().default(0),\n price_change_6h: z.coerce.number().default(0),\n price_change_12h: z.coerce.number().default(0),\n price_change_24h: z.coerce.number().default(0),\n\n price_1min_ago: z.coerce.number().default(0),\n price_5min_ago: z.coerce.number().default(0),\n price_1h_ago: z.coerce.number().default(0),\n price_4h_ago: z.coerce.number().default(0),\n price_6h_ago: z.coerce.number().default(0),\n price_12h_ago: z.coerce.number().default(0),\n price_24h_ago: z.coerce.number().default(0),\n\n volume_1min: z.coerce.number().default(0),\n volume_5min: z.coerce.number().default(0),\n volume_15min: z.coerce.number().default(0),\n volume_1h: z.coerce.number().default(0),\n volume_4h: z.coerce.number().default(0),\n volume_6h: z.coerce.number().default(0),\n volume_12h: z.coerce.number().default(0),\n volume_24h: z.coerce.number().default(0),\n\n volume_buy_1min: z.coerce.number().default(0),\n volume_buy_5min: z.coerce.number().default(0),\n volume_buy_15min: z.coerce.number().default(0),\n volume_buy_1h: z.coerce.number().default(0),\n volume_buy_4h: z.coerce.number().default(0),\n volume_buy_6h: z.coerce.number().default(0),\n volume_buy_12h: z.coerce.number().default(0),\n volume_buy_24h: z.coerce.number().default(0),\n\n volume_sell_1min: z.coerce.number().default(0),\n volume_sell_5min: z.coerce.number().default(0),\n volume_sell_15min: z.coerce.number().default(0),\n volume_sell_1h: z.coerce.number().default(0),\n volume_sell_4h: z.coerce.number().default(0),\n volume_sell_6h: z.coerce.number().default(0),\n volume_sell_12h: z.coerce.number().default(0),\n volume_sell_24h: z.coerce.number().default(0),\n\n trades_1min: z.coerce.number().default(0),\n trades_5min: z.coerce.number().default(0),\n trades_15min: z.coerce.number().default(0),\n trades_1h: z.coerce.number().default(0),\n trades_4h: z.coerce.number().default(0),\n trades_6h: z.coerce.number().default(0),\n trades_12h: z.coerce.number().default(0),\n trades_24h: z.coerce.number().default(0),\n\n buys_1min: z.coerce.number().default(0),\n buys_5min: z.coerce.number().default(0),\n buys_15min: z.coerce.number().default(0),\n buys_1h: z.coerce.number().default(0),\n buys_4h: z.coerce.number().default(0),\n buys_6h: z.coerce.number().default(0),\n buys_12h: z.coerce.number().default(0),\n buys_24h: z.coerce.number().default(0),\n\n sells_1min: z.coerce.number().default(0),\n sells_5min: z.coerce.number().default(0),\n sells_15min: z.coerce.number().default(0),\n sells_1h: z.coerce.number().default(0),\n sells_4h: z.coerce.number().default(0),\n sells_6h: z.coerce.number().default(0),\n sells_12h: z.coerce.number().default(0),\n sells_24h: z.coerce.number().default(0),\n\n buyers_1min: z.coerce.number().default(0),\n buyers_5min: z.coerce.number().default(0),\n buyers_15min: z.coerce.number().default(0),\n buyers_1h: z.coerce.number().default(0),\n buyers_4h: z.coerce.number().default(0),\n buyers_6h: z.coerce.number().default(0),\n buyers_12h: z.coerce.number().default(0),\n buyers_24h: z.coerce.number().default(0),\n\n sellers_1min: z.coerce.number().default(0),\n sellers_5min: z.coerce.number().default(0),\n sellers_15min: z.coerce.number().default(0),\n sellers_1h: z.coerce.number().default(0),\n sellers_4h: z.coerce.number().default(0),\n sellers_6h: z.coerce.number().default(0),\n sellers_12h: z.coerce.number().default(0),\n sellers_24h: z.coerce.number().default(0),\n\n traders_1min: z.coerce.number().default(0),\n traders_5min: z.coerce.number().default(0),\n traders_15min: z.coerce.number().default(0),\n traders_1h: z.coerce.number().default(0),\n traders_4h: z.coerce.number().default(0),\n traders_6h: z.coerce.number().default(0),\n traders_12h: z.coerce.number().default(0),\n traders_24h: z.coerce.number().default(0),\n\n fees_paid_1min: z.coerce.number().default(0),\n fees_paid_5min: z.coerce.number().default(0),\n fees_paid_15min: z.coerce.number().default(0),\n fees_paid_1h: z.coerce.number().default(0),\n fees_paid_4h: z.coerce.number().default(0),\n fees_paid_6h: z.coerce.number().default(0),\n fees_paid_12h: z.coerce.number().default(0),\n fees_paid_24h: z.coerce.number().default(0),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.bigint().default(0n),\n\n organic_trades_1min: z.coerce.number().default(0),\n organic_trades_5min: z.coerce.number().default(0),\n organic_trades_15min: z.coerce.number().default(0),\n organic_trades_1h: z.coerce.number().default(0),\n organic_trades_4h: z.coerce.number().default(0),\n organic_trades_6h: z.coerce.number().default(0),\n organic_trades_12h: z.coerce.number().default(0),\n organic_trades_24h: z.coerce.number().default(0),\n\n organic_traders_1min: z.coerce.number().default(0),\n organic_traders_5min: z.coerce.number().default(0),\n organic_traders_15min: z.coerce.number().default(0),\n organic_traders_1h: z.coerce.number().default(0),\n organic_traders_4h: z.coerce.number().default(0),\n organic_traders_6h: z.coerce.number().default(0),\n organic_traders_12h: z.coerce.number().default(0),\n organic_traders_24h: z.coerce.number().default(0),\n\n organic_volume_1min: z.coerce.number().default(0),\n organic_volume_5min: z.coerce.number().default(0),\n organic_volume_15min: z.coerce.number().default(0),\n organic_volume_1h: z.coerce.number().default(0),\n organic_volume_4h: z.coerce.number().default(0),\n organic_volume_6h: z.coerce.number().default(0),\n organic_volume_12h: z.coerce.number().default(0),\n organic_volume_24h: z.coerce.number().default(0),\n\n organic_volume_buy_1min: z.coerce.number().default(0),\n organic_volume_buy_5min: z.coerce.number().default(0),\n organic_volume_buy_15min: z.coerce.number().default(0),\n organic_volume_buy_1h: z.coerce.number().default(0),\n organic_volume_buy_4h: z.coerce.number().default(0),\n organic_volume_buy_6h: z.coerce.number().default(0),\n organic_volume_buy_12h: z.coerce.number().default(0),\n organic_volume_buy_24h: z.coerce.number().default(0),\n\n organic_volume_sell_1min: z.coerce.number().default(0),\n organic_volume_sell_5min: z.coerce.number().default(0),\n organic_volume_sell_15min: z.coerce.number().default(0),\n organic_volume_sell_1h: z.coerce.number().default(0),\n organic_volume_sell_4h: z.coerce.number().default(0),\n organic_volume_sell_6h: z.coerce.number().default(0),\n organic_volume_sell_12h: z.coerce.number().default(0),\n organic_volume_sell_24h: z.coerce.number().default(0),\n\n organic_buys_1min: z.coerce.number().default(0),\n organic_buys_5min: z.coerce.number().default(0),\n organic_buys_15min: z.coerce.number().default(0),\n organic_buys_1h: z.coerce.number().default(0),\n organic_buys_4h: z.coerce.number().default(0),\n organic_buys_6h: z.coerce.number().default(0),\n organic_buys_12h: z.coerce.number().default(0),\n organic_buys_24h: z.coerce.number().default(0),\n\n organic_sells_1min: z.coerce.number().default(0),\n organic_sells_5min: z.coerce.number().default(0),\n organic_sells_15min: z.coerce.number().default(0),\n organic_sells_1h: z.coerce.number().default(0),\n organic_sells_4h: z.coerce.number().default(0),\n organic_sells_6h: z.coerce.number().default(0),\n organic_sells_12h: z.coerce.number().default(0),\n organic_sells_24h: z.coerce.number().default(0),\n\n organic_buyers_1min: z.coerce.number().default(0),\n organic_buyers_5min: z.coerce.number().default(0),\n organic_buyers_15min: z.coerce.number().default(0),\n organic_buyers_1h: z.coerce.number().default(0),\n organic_buyers_4h: z.coerce.number().default(0),\n organic_buyers_6h: z.coerce.number().default(0),\n organic_buyers_12h: z.coerce.number().default(0),\n organic_buyers_24h: z.coerce.number().default(0),\n\n organic_sellers_1min: z.coerce.number().default(0),\n organic_sellers_5min: z.coerce.number().default(0),\n organic_sellers_15min: z.coerce.number().default(0),\n organic_sellers_1h: z.coerce.number().default(0),\n organic_sellers_4h: z.coerce.number().default(0),\n organic_sellers_6h: z.coerce.number().default(0),\n organic_sellers_12h: z.coerce.number().default(0),\n organic_sellers_24h: z.coerce.number().default(0),\n});\nexport type TokenStats = z.infer<typeof TokenStatsSchema>;\n\nexport const EnrichedTokenDataSchema = TokenData.merge(\n TokenStatsSchema.merge(\n z.object({\n created_at: z.coerce.date().nullable(),\n latest_price: z.coerce.number().default(0),\n\n holders_count: z.coerce.number().default(0),\n market_cap: z.coerce.number().default(0),\n latest_market_cap: z.coerce.number().default(0),\n\n description: z.string().nullable(),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n\n security: SecurityFlagsSchema.nullable(),\n\n twitterReusesCount: z.coerce.number().nullable().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .optional(),\n\n deployerMigrationsCount: z.coerce.number().default(0),\n dexscreenerListed: z.boolean().nullable().default(false),\n dexscreenerHeader: z.string().nullable().default(null),\n dexscreenerAdPaid: z.boolean().nullable().default(false),\n\n liveStatus: z.string().nullable(),\n liveThumbnail: z.string().nullable(),\n livestreamTitle: z.string().nullable(),\n liveReplyCount: z.number().nullable(),\n\n holders_list: z.array(HolderSchema),\n }),\n ),\n).merge(HoldersStatsSchema);\n\nexport type EnrichedTokenData = z.infer<typeof EnrichedTokenDataSchema>;\n\n// Pulse types are now identical to enriched types\nexport const PulseEnrichedTokenDataSchema = EnrichedTokenDataSchema;\nexport type PulseEnrichedTokenData = EnrichedTokenData;\n\ntype MakeNullableExcept<T, K extends keyof T> = {\n [P in keyof T]: P extends K ? T[P] : T[P] | null;\n};\n\nexport type NullableEnrichedPoolData = MakeNullableExcept<Omit<EnrichedPoolData, 'token0' | 'token1'>, 'address'> & {\n address_id: string;\n chain_id: string;\n};\nexport type NullableEnrichedTokenData = MakeNullableExcept<EnrichedTokenData, 'address'> & {\n address_id: string;\n chain_id: string;\n};\n",
|
|
16
|
+
"import { z } from 'zod';\n\nexport const EVMSecurityFlagsSchema = z.object({\n buyTax: z.string().optional(),\n sellTax: z.string().optional(),\n transferPausable: z.boolean().optional(),\n top10Holders: z.string().optional(),\n isBlacklisted: z.boolean().optional(),\n isHoneypot: z.boolean().optional(),\n isNotOpenSource: z.boolean().optional(),\n renounced: z.boolean().optional(),\n locked: z.string().optional(),\n isWhitelisted: z.boolean().optional(),\n balanceMutable: z.boolean().optional(),\n lowLiquidity: z.string().optional(),\n burnRate: z.string().optional(),\n isMintable: z.boolean().optional(),\n modifyableTax: z.boolean().optional(),\n selfDestruct: z.boolean().optional(),\n liquidityBurnPercentage: z.number().optional(),\n});\n\nexport type EVMSecurityFlags = z.infer<typeof EVMSecurityFlagsSchema>;\n\nexport const SolanaSecurityFlagsSchema = z.object({\n buyTax: z.string().optional(),\n sellTax: z.string().optional(),\n transferPausable: z.boolean().optional(),\n top10Holders: z.string().optional(),\n isBlacklisted: z.boolean().optional(),\n noMintAuthority: z.boolean().optional(),\n balanceMutable: z.boolean().optional(),\n lowLiquidity: z.string().optional(),\n burnRate: z.string().optional(),\n liquidityBurnPercentage: z.number().optional(),\n});\n\nexport type SolanaSecurityFlags = z.infer<typeof SolanaSecurityFlagsSchema>;\n\nexport const SecurityFlagsSchema = SolanaSecurityFlagsSchema.merge(EVMSecurityFlagsSchema);\nexport type SecurityFlags = z.infer<typeof SecurityFlagsSchema>;\n",
|
|
16
17
|
"import { z } from 'zod';\n\n/**\n * Schema for LLM-based static code analysis security flags\n * These are detected through AI analysis of verified contract source code\n */\nexport const LLMSecurityFlagsSchema = z.object({\n // Balance manipulation capabilities\n balanceMutable: z.boolean().optional(),\n balanceMutableReason: z.string().optional(),\n\n // Minting capabilities\n isMintable: z.boolean().optional(),\n isMintableReason: z.string().optional(),\n\n // Transfer restrictions\n transferPausable: z.boolean().optional(),\n transferPausableReason: z.string().optional(),\n\n // Blacklist/Whitelist mechanisms\n isBlacklisted: z.boolean().optional(),\n isBlacklistedReason: z.string().optional(),\n isWhitelisted: z.boolean().optional(),\n isWhitelistedReason: z.string().optional(),\n\n // Tax/Fee manipulation\n modifyableTax: z.boolean().optional(),\n modifyableTaxReason: z.string().optional(),\n\n // Ownership concerns\n hasHiddenOwner: z.boolean().optional(),\n hasHiddenOwnerReason: z.string().optional(),\n canTakeBackOwnership: z.boolean().optional(),\n canTakeBackOwnershipReason: z.string().optional(),\n\n // Destructive capabilities\n selfDestruct: z.boolean().optional(),\n selfDestructReason: z.string().optional(),\n\n // Honeypot indicators\n hasHoneypotMechanism: z.boolean().optional(),\n honeypotReason: z.string().optional(),\n\n // External call risks\n hasExternalCallRisk: z.boolean().optional(),\n externalCallRiskReason: z.string().optional(),\n\n // Analysis metadata\n analyzedAt: z.string(),\n contractVerified: z.boolean(),\n analysisConfidence: z.enum(['high', 'medium', 'low']),\n rawAnalysis: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type LLMSecurityFlags = z.infer<typeof LLMSecurityFlagsSchema>;\n\n/**\n * Schema for security_sources column which stores results from multiple sources\n */\nexport const SecuritySourcesSchema = z.object({\n // GoPlus API results\n goplus: z\n .object({\n data: z.record(z.unknown()).optional(),\n updatedAt: z.string().optional(),\n })\n .optional(),\n\n // LLM static analysis results\n llm_analysis: LLMSecurityFlagsSchema.optional(),\n});\n\nexport type SecuritySources = z.infer<typeof SecuritySourcesSchema>;\n",
|
|
17
18
|
"import { z } from 'zod';\n\n/**\n * Platform metadata for trading dashboards (Photon, BullX, Maestro, etc.)\n * Used across trade/swap endpoints to provide full platform information.\n */\nexport const PlatformMetadataOutput = z.object({\n id: z.string(),\n name: z.string(),\n logo: z.string().nullable(),\n});\n\nexport type PlatformMetadataOutputType = z.infer<typeof PlatformMetadataOutput>;\n",
|
|
18
19
|
"import { z } from 'zod';\n\n/**\n * Minimal token metadata for trade responses\n * Contains only essential display information (name, symbol, logo, decimals)\n */\nexport const TokenMetadataMinimal = z.object({\n address: z.string(),\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n logo: z.string().nullable(),\n decimals: z.number(),\n});\n\nexport type TokenMetadataMinimal = z.infer<typeof TokenMetadataMinimal>;\n",
|
|
19
|
-
"import { z } from 'zod';\n\n/**\n * Wallet metadata from scraping_wallets table\n * Contains entity information about the wallet (e.g., CEX, LP, known project)\n */\nexport const WalletMetadataOutput = z.object({\n entityName: z.string().nullable(),\n entityLogo: z.string().nullable(),\n entityLabels: z.array(z.string()),\n});\n\nexport type WalletMetadataOutput = z.infer<typeof WalletMetadataOutput>;\n",
|
|
20
|
+
"import { z } from 'zod';\n\n/**\n * Wallet metadata from scraping_wallets table\n * Contains entity information about the wallet (e.g., CEX, LP, known project)\n */\nexport const WalletMetadataOutput = z.object({\n entityName: z.string().nullable(),\n entityLogo: z.string().nullable(),\n entityLabels: z.array(z.string()),\n entityType: z.string().nullable(),\n entityDescription: z.string().nullable(),\n entityTwitter: z.string().nullable(),\n entityWebsite: z.string().nullable(),\n entityGithub: z.string().nullable(),\n entityDiscord: z.string().nullable(),\n entityTelegram: z.string().nullable(),\n});\n\nexport type WalletMetadataOutput = z.infer<typeof WalletMetadataOutput>;\n",
|
|
20
21
|
"import { z } from 'zod';\n\nexport const AllAssetsParamsSchema = z.object({\n fields: z.string().optional().default(''),\n});\n\nexport type AllAssetsParams = z.input<typeof AllAssetsParamsSchema>;\n\nexport const AllAssetsResponseSchema = z.object({\n data: z.array(\n z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n price: z.number().nullable().optional(),\n price_change_1h: z.number().optional(),\n price_change_24h: z.number().optional(),\n price_change_7d: z.number().optional(),\n price_change_1m: z.number().optional(),\n price_change_1y: z.number().optional(),\n market_cap: z.number().optional(),\n liquidity: z.number().optional(),\n volume: z.number().optional(),\n blockchains: z.array(z.string()).optional(),\n contracts: z.array(z.string()).optional(),\n decimals: z.array(z.number()).optional(),\n website: z.string().nullish().optional(),\n twitter: z.string().nullish().optional(),\n chat: z.string().nullish().optional(),\n }),\n ),\n});\n\n//Response Type\nexport type AllAssetsResponse = z.infer<typeof AllAssetsResponseSchema>;\n",
|
|
21
22
|
"import { z } from 'zod';\n\nconst TokenSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n type: z.enum(['eth', 'stable', 'other']),\n decimals: z.number(),\n denom: z.string().optional(),\n});\n\nconst ExtendedTokenSchema = TokenSchema.extend({\n logo: z.string(),\n blockchain: z.string(),\n blockchains: z.array(z.string()),\n contracts: z.array(z.string()),\n});\n\nexport const BlockchainsResponseSchema = z.object({\n data: z.array(\n z.object({\n name: z.string(),\n shortName: z.string().optional(),\n explorer: z.string(),\n color: z.string(),\n chainId: z.string(),\n evmChainId: z.number().optional(),\n cosmosChainId: z.string().optional(),\n\n testnet: z.boolean().optional(),\n\n multicall_contract: z.string().optional(),\n\n uniswapV3Factory: z.array(z.string()).optional(),\n\n eth: TokenSchema.extend({\n logo: z.string(),\n id: z.number().optional(),\n }).optional(),\n stable: ExtendedTokenSchema.optional(),\n\n routers: z.array(\n z.object({\n address: z.string(),\n name: z.string(),\n factory: z.string().optional(),\n fee: z.number().optional(),\n }),\n ),\n tokens: z.array(\n z.object({\n address: z.string(),\n name: z.string(),\n symbol: z.string().optional(),\n decimals: z.number().optional(),\n type: z.string().optional(),\n }),\n ),\n\n supportedProtocols: z.array(z.string()),\n logo: z.string(),\n\n coingeckoChain: z.string().optional(),\n dexscreenerChain: z.string().optional(),\n isLayer2: z.boolean().optional(),\n coverage: z.array(z.string().optional()).optional(),\n }),\n ),\n});\n\nexport type BlockchainsResponse = z.infer<typeof BlockchainsResponseSchema>;\n",
|
|
22
23
|
"import { z } from 'zod';\n\nexport const createFeedQuery = z.object({\n quoteId: z.coerce.number().optional(),\n assetId: z.coerce.number(),\n});\n",
|
|
23
|
-
"import { z } from 'zod';\n\nexport const FundingRateParamsSchema = z.object({\n symbol: z.string(),\n quote: z.string().optional(),\n exchange: z\n .string()\n .optional()\n .refine(\n (val) => !val || /^[a-zA-Z0-9,-]+$/.test(val),\n 'Exchange must be a comma-separated string (e.g., \"binance,bybit\")',\n ),\n});\n\nexport type FundingRateParams = z.input<typeof FundingRateParamsSchema>;\n\nexport const FundingRateResponseSchema = z.object({\n binanceFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.string(),\n epochDurationMs: z.number(),\n })\n .optional(),\n deribitFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n bybitFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n okxFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n hyperliquidFundingRate: z\n .union([\n // Single funding rate object\n z.object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n }),\n\n // Or an array of them\n z.array(\n z.object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.number().nullable().optional(),\n epochDurationMs: z.number(),\n }),\n ),\n ])\n .optional(),\n gateFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n /**\n * Lighter funding rate.\n * Sign convention: positive = longs pay shorts, negative = shorts pay longs.\n * Epoch duration: 1 hour (3600000ms).\n */\n lighterFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n queryDetails: z.object({\n base: z.string(),\n quote: z.string().nullable(),\n }),\n});\n\nexport type FundingRateResponse = z.infer<typeof FundingRateResponseSchema>;\n",
|
|
24
|
-
"import { z } from 'zod';\n\nexport const MarketTokenHoldersParamsSchema = z\n .object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n limit: z.coerce.number().max(100).optional().default(20),\n offset: z.coerce.number().optional().default(0),\n backfill: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n includeZeroBalance: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n })\n .transform(({ blockchain, asset, symbol, limit, offset, backfill, includeZeroBalance }) => ({\n blockchain: blockchain,\n asset: asset || symbol ? { name: asset, symbol: symbol } : undefined,\n limit,\n offset,\n backfill,\n includeZeroBalance,\n }));\n\nexport type MarketTokenHoldersParams = z.input<typeof MarketTokenHoldersParamsSchema>;\n\nexport const MarketTokenHoldersResponseSchema = z.object({\n data: z.array(\n z.object({\n address: z.string(),\n tag: z.string(),\n amountRaw: z.string(),\n amount: z.number(),\n chainId: z.string(),\n totalSupplyShare: z.number(),\n amountUSD: z.number(),\n }),\n ),\n total_count: z.number(),\n});\n\nexport type MarketTokenHoldersResponse = z.infer<typeof MarketTokenHoldersResponseSchema>;\n",
|
|
25
|
-
"import { z } from 'zod';\nimport type { PoolsStatsFilter } from '../../utils/functions/queryFilters.ts';\nimport { PoolData } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const dateFields = ['latest_trade_date', 'created_at'] as const;\nexport const nonNumericPoolValues = ['type', 'explicit'] as const;\nexport const nonNumericValues = ['source', 'deployer'] as const;\n\nexport const MarketBlockchainPairsParamsSchema = z.object({\n blockchain: z.string().optional(),\n blockchains: z.string().optional(),\n sortBy: z.string().optional().default('latest_trade_date'),\n sortOrder: z.enum(['asc', 'desc']).optional().default('desc'),\n factory: z.string().optional(),\n limit: z.coerce.number().max(100).optional().default(100),\n offset: z.coerce.number().optional().default(0),\n advancedFilters: z\n .string()\n .optional()\n .transform((val) => {\n return JSON.parse(val ?? '{}');\n }),\n filters: z\n .string()\n .optional()\n .transform((val) => {\n return val ? val.split(',') : [];\n })\n .transform((filters) => {\n const whereClause: PoolsStatsFilter = {};\n for (const filter of filters) {\n if (filter.includes(':')) {\n const [field, filterMinValue, filterMaxValue] = filter.split(':');\n\n if (field && nonNumericPoolValues.includes(field as (typeof nonNumericPoolValues)[number])) {\n if (!whereClause.pools) {\n whereClause.pools = {};\n }\n (whereClause.pools as any)[field] = {\n equals: filterMinValue === 'false' ? false : filterMinValue === 'true' ? true : filterMinValue,\n };\n } else if (field && nonNumericValues.includes(field as (typeof nonNumericValues)[number])) {\n (whereClause as any)[field] = {\n equals: filterMinValue,\n };\n } else if (field && dateFields.includes(field as (typeof dateFields)[number])) {\n (whereClause as any)[field] = {\n gte: filterMinValue\n ? new Date(Number.isNaN(Number(filterMinValue)) ? filterMinValue : Number(filterMinValue))\n : undefined,\n lte: filterMaxValue\n ? new Date(Number.isNaN(Number(filterMaxValue)) ? filterMaxValue : Number(filterMaxValue))\n : undefined,\n };\n } else if (field) {\n (whereClause as any)[field] = {\n gte: filterMinValue ? Number(filterMinValue) : undefined,\n lte: filterMaxValue ? Number(filterMaxValue) : undefined,\n };\n }\n }\n }\n return whereClause;\n }),\n excludeBonded: z.coerce.boolean().optional().default(false),\n});\n\nexport type MarketBlockchainPairsParams = z.input<typeof MarketBlockchainPairsParamsSchema>;\n\nexport const MarketBlockchainPairsResponseSchema = z.object({\n data: z.array(\n z.object({\n price: z.number(),\n price_change_5min: z.number(),\n price_change_1h: z.number(),\n price_change_4h: z.number(),\n price_change_6h: z.number(),\n price_change_12h: z.number(),\n price_change_24h: z.number(),\n last_trade: z.coerce.date().nullable(),\n created_at: z.coerce.date().nullable(),\n holders_count: z.number(),\n volume_1min: z.number(),\n volume_5min: z.number(),\n volume_15min: z.number(),\n volume_1h: z.number(),\n volume_4h: z.number(),\n volume_6h: z.number(),\n volume_12h: z.number(),\n volume_24h: z.number(),\n trades_1min: z.number(),\n trades_5min: z.number(),\n trades_15min: z.number(),\n trades_1h: z.number(),\n trades_4h: z.number(),\n trades_6h: z.number(),\n trades_12h: z.number(),\n trades_24h: z.number(),\n liquidity: z.number(),\n pair: PoolData,\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n }),\n ),\n factories: z.record(z.string(), z.any()),\n});\n\nexport type MarketBlockchainPairsResponse = z.infer<typeof MarketBlockchainPairsResponseSchema>;\n",
|
|
24
|
+
"import { z } from 'zod';\n\nexport const FundingRateParamsSchema = z.object({\n symbol: z.string(),\n quote: z.string().optional(),\n exchange: z\n .string()\n .optional()\n .refine(\n (val) => !val || /^[a-zA-Z0-9,-]+$/.test(val),\n 'Exchange must be a comma-separated string (e.g., \"binance,bybit\")',\n ),\n protocol: z.enum(['xyz', 'flx', 'vntl', 'hyna', 'km', 'cash']).optional(),\n});\n\nexport type FundingRateParams = z.input<typeof FundingRateParamsSchema>;\n\nexport const FundingRateResponseSchema = z.object({\n binanceFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.string(),\n epochDurationMs: z.number(),\n })\n .optional(),\n deribitFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n bybitFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n okxFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n hyperliquidFundingRate: z\n .union([\n // Single funding rate object\n z.object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n }),\n\n // Or an array of them\n z.array(\n z.object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n marketPrice: z.number().nullable().optional(),\n epochDurationMs: z.number(),\n }),\n ),\n ])\n .optional(),\n gateFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n /**\n * Lighter funding rate.\n * Sign convention: positive = longs pay shorts, negative = shorts pay longs.\n * Epoch duration: 1 hour (3600000ms).\n */\n lighterFundingRate: z\n .object({\n symbol: z.string(),\n fundingTime: z.number(),\n fundingRate: z.number(),\n epochDurationMs: z.number(),\n })\n .optional(),\n queryDetails: z.object({\n base: z.string(),\n quote: z.string().nullable(),\n }),\n});\n\nexport type FundingRateResponse = z.infer<typeof FundingRateResponseSchema>;\n",
|
|
25
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\n\nexport const MarketTokenHoldersParamsSchema = z\n .object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n limit: z.coerce.number().max(100).optional().default(20),\n offset: z.coerce.number().optional().default(0),\n backfill: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n includeZeroBalance: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n })\n .transform(({ blockchain, asset, symbol, limit, offset, backfill, includeZeroBalance }) => ({\n blockchain: blockchain,\n asset: asset || symbol ? { name: asset, symbol: symbol } : undefined,\n limit,\n offset,\n backfill,\n includeZeroBalance,\n }));\n\nexport type MarketTokenHoldersParams = z.input<typeof MarketTokenHoldersParamsSchema>;\n\nexport const MarketTokenHoldersParamsSchemaOpenAPI = createOpenAPIParams(MarketTokenHoldersParamsSchema, {\n omit: ['backfill', 'includeZeroBalance'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n asset: 'Token contract address',\n symbol: 'Token symbol',\n limit: 'Number of holders per page (max 100, default: 20)',\n offset: 'Offset for pagination (default: 0)',\n },\n});\n\nexport const MarketTokenHoldersResponseSchema = z.object({\n data: z.array(\n z.object({\n address: z.string(),\n tag: z.string(),\n amountRaw: z.string(),\n amount: z.number(),\n chainId: z.string(),\n totalSupplyShare: z.number(),\n amountUSD: z.number(),\n }),\n ),\n total_count: z.number(),\n});\n\nexport type MarketTokenHoldersResponse = z.infer<typeof MarketTokenHoldersResponseSchema>;\n",
|
|
26
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport type { PoolsStatsFilter } from '../../utils/functions/queryFilters.ts';\nimport { PoolData } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const dateFields = ['latest_trade_date', 'created_at'] as const;\nexport const nonNumericPoolValues = ['type', 'explicit'] as const;\nexport const nonNumericValues = ['source', 'deployer'] as const;\n\nexport const MarketBlockchainPairsParamsSchema = z.object({\n blockchain: z.string().optional(),\n blockchains: z.string().optional(),\n sortBy: z.string().optional().default('latest_trade_date'),\n sortOrder: z.enum(['asc', 'desc']).optional().default('desc'),\n factory: z.string().optional(),\n limit: z.coerce.number().max(100).optional().default(100),\n offset: z.coerce.number().optional().default(0),\n advancedFilters: z\n .string()\n .optional()\n .transform((val) => {\n return JSON.parse(val ?? '{}');\n }),\n filters: z\n .string()\n .optional()\n .transform((val) => {\n return val ? val.split(',') : [];\n })\n .transform((filters) => {\n const whereClause: PoolsStatsFilter = {};\n for (const filter of filters) {\n if (filter.includes(':')) {\n const [field, filterMinValue, filterMaxValue] = filter.split(':');\n\n if (field && nonNumericPoolValues.includes(field as (typeof nonNumericPoolValues)[number])) {\n if (!whereClause.pools) {\n whereClause.pools = {};\n }\n (whereClause.pools as any)[field] = {\n equals: filterMinValue === 'false' ? false : filterMinValue === 'true' ? true : filterMinValue,\n };\n } else if (field && nonNumericValues.includes(field as (typeof nonNumericValues)[number])) {\n (whereClause as any)[field] = {\n equals: filterMinValue,\n };\n } else if (field && dateFields.includes(field as (typeof dateFields)[number])) {\n (whereClause as any)[field] = {\n gte: filterMinValue\n ? new Date(Number.isNaN(Number(filterMinValue)) ? filterMinValue : Number(filterMinValue))\n : undefined,\n lte: filterMaxValue\n ? new Date(Number.isNaN(Number(filterMaxValue)) ? filterMaxValue : Number(filterMaxValue))\n : undefined,\n };\n } else if (field) {\n (whereClause as any)[field] = {\n gte: filterMinValue ? Number(filterMinValue) : undefined,\n lte: filterMaxValue ? Number(filterMaxValue) : undefined,\n };\n }\n }\n }\n return whereClause;\n }),\n excludeBonded: z.coerce.boolean().optional().default(false),\n});\n\nexport type MarketBlockchainPairsParams = z.input<typeof MarketBlockchainPairsParamsSchema>;\n\nexport const MarketBlockchainPairsParamsSchemaOpenAPI = createOpenAPIParams(MarketBlockchainPairsParamsSchema, {\n omit: ['advancedFilters', 'filters'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n blockchains: 'Comma-separated blockchain IDs',\n sortBy: 'Sort field (default: latest_trade_date)',\n sortOrder: 'Sort order: asc or desc (default: desc)',\n factory: 'Filter by DEX factory address',\n limit: 'Number of pairs per page (max 100, default: 100)',\n offset: 'Offset for pagination (default: 0)',\n excludeBonded: 'Exclude bonded pairs (default: false)',\n },\n});\n\nexport const MarketBlockchainPairsResponseSchema = z.object({\n data: z.array(\n z.object({\n price: z.number(),\n price_change_5min: z.number(),\n price_change_1h: z.number(),\n price_change_4h: z.number(),\n price_change_6h: z.number(),\n price_change_12h: z.number(),\n price_change_24h: z.number(),\n last_trade: z.coerce.date().nullable(),\n created_at: z.coerce.date().nullable(),\n holders_count: z.number(),\n volume_1min: z.number(),\n volume_5min: z.number(),\n volume_15min: z.number(),\n volume_1h: z.number(),\n volume_4h: z.number(),\n volume_6h: z.number(),\n volume_12h: z.number(),\n volume_24h: z.number(),\n trades_1min: z.number(),\n trades_5min: z.number(),\n trades_15min: z.number(),\n trades_1h: z.number(),\n trades_4h: z.number(),\n trades_6h: z.number(),\n trades_12h: z.number(),\n trades_24h: z.number(),\n liquidity: z.number(),\n pair: PoolData,\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n }),\n ),\n factories: z.record(z.string(), z.any()),\n});\n\nexport type MarketBlockchainPairsResponse = z.infer<typeof MarketBlockchainPairsResponseSchema>;\n",
|
|
26
27
|
"import { z } from 'zod';\n\nexport const MarketBlockchainStatsParamsSchema = z.object({\n blockchain: z.string(),\n factory: z.string().optional(),\n});\n\nexport type MarketBlockchainStatsParams = z.input<typeof MarketBlockchainStatsParamsSchema>;\n\nexport const MarketBlockchainStatsResponseSchema = z.object({\n data: z.object({\n volume_history: z.array(z.array(z.number())),\n volume_change_24h: z.number(),\n volume_change_total: z.number().nullable(),\n liquidity_history: z.array(z.array(z.number())),\n liquidity_change_24h: z.number(),\n liquidity_change_total: z.number().nullable(),\n tokens_history: z.array(z.array(z.number())),\n tokens_change_24h: z.number(),\n tokens_change_total: z.number().nullable(),\n }),\n});\n\nexport type MarketBlockchainStatsResponse = z.infer<typeof MarketBlockchainStatsResponseSchema>;\n",
|
|
27
|
-
"import { z } from 'zod';\n\n// Main AssetQuery schema\nexport const AssetQuery = z\n .object({\n blockchain: z.string().optional(), // Optional blockchain/chainId\n asset: z.string().optional(), // Could be address or name\n symbol: z.string().optional(), // Symbol if provided\n id: z.coerce.number().optional(), // ID if provided\n shouldFetchPriceChange: z\n .union([z.literal('24h'), z.coerce.boolean()])\n .optional()\n .default('24h'),\n })\n .refine(\n (data) => {\n // Ensure at least one of id, asset, or symbol is provided\n return !!(data.id || data.asset || data.symbol);\n },\n {\n message: 'At least one of id, asset, or symbol must be provided.',\n },\n );\n\nexport type AssetQuery = z.infer<typeof AssetQuery>;\nexport type AssetQueryParams = z.input<typeof AssetQuery>;\n\nconst Asset = z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number().nullable(),\n logo: z.string().nullable(),\n rank: z.number().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n market_cap_diluted: z.number(),\n volume: z.number().nullable(),\n volume_change_24h: z.number().nullable(),\n volume_7d: z.number().nullable(),\n liquidity: z.number(),\n liquidityMax: z.number(),\n ath: z.number().nullable(),\n atl: z.number().nullable(),\n off_chain_volume: z.number().nullable(),\n is_listed: z.boolean(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n price_change_1m: z.number(),\n price_change_1y: z.number(),\n total_supply: z.number(),\n circulating_supply: z.number(),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchainId: z.string(),\n blockchain: z.string(),\n decimals: z.number(),\n }),\n ),\n native: z\n .object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n type: z.string(),\n decimals: z.number(),\n logo: z.string(),\n })\n .optional(),\n priceNative: z.number().optional(),\n});\n\nexport const MarketDataResponseSchema = z.object({\n data: Asset,\n});\n\nexport type MarketDataResponse = z.infer<typeof MarketDataResponseSchema>;\n\nexport interface AssetMarketDataOutput {\n id: number | null;\n name: string;\n symbol: string;\n decimals: number | null;\n logo: string | null;\n rank: number | null;\n price: number | null;\n market_cap: number;\n market_cap_diluted: number;\n volume: number;\n volume_change_24h: number | null;\n volume_7d: number | null;\n liquidity: number;\n liquidity_change_24h?: number;\n ath: number | null;\n atl: number | null;\n off_chain_volume: number | null;\n is_listed?: boolean;\n price_change_1h: number;\n price_change_24h: number;\n price_change_7d: number;\n price_change_1m: number;\n price_change_1y: number;\n total_supply: number;\n circulating_supply: number;\n priceNative?: number;\n native?: {\n name: string;\n symbol: string;\n address: string;\n type: 'eth' | 'stable' | 'other' | 'native';\n decimals: number;\n denom?: string;\n logo: string | null;\n id?: number;\n };\n contracts: {\n address: string;\n blockchainId: string;\n blockchain: string;\n decimals: number;\n }[];\n}\n",
|
|
28
|
-
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\nexport const MarketHistoryPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.union([z.string(), z.array(z.string())]).optional(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return '5m';\n }),\n amount: z.coerce.number().optional(),\n usd: z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n }),\n mode: z\n .enum(['asset', 'pair', 'pool'])\n .optional()\n .default('pair')\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset'),\n});\n\nexport type MarketHistoryPairParams = z.input<typeof MarketHistoryPairParamsSchema>;\n\nexport type MarketHistoryPairInferType = z.infer<typeof MarketHistoryPairParamsSchema>;\n\nexport const MarketHistoryPairResponseSchema = z.object({\n data: z.array(\n z.object({\n volume: z.number(),\n open: z.number(),\n high: z.number(),\n low: z.number(),\n close: z.number(),\n time: z.number(),\n }),\n ),\n});\n\nexport type MarketHistoryPairResponse = z.infer<typeof MarketHistoryPairResponseSchema>;\n",
|
|
28
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\n\n// Main AssetQuery schema\nexport const AssetQuery = z\n .object({\n blockchain: z.string().optional(), // Optional blockchain/chainId\n asset: z.string().optional(), // Could be address or name\n symbol: z.string().optional(), // Symbol if provided\n id: z.coerce.number().optional(), // ID if provided\n shouldFetchPriceChange: z\n .union([z.literal('24h'), z.coerce.boolean()])\n .optional()\n .default('24h'),\n })\n .refine(\n (data) => {\n // Ensure at least one of id, asset, or symbol is provided\n return !!(data.id || data.asset || data.symbol);\n },\n {\n message: 'At least one of id, asset, or symbol must be provided.',\n },\n );\n\nexport type AssetQuery = z.infer<typeof AssetQuery>;\nexport type AssetQueryParams = z.input<typeof AssetQuery>;\n\nexport const AssetQueryOpenAPI = createOpenAPIParams(AssetQuery, {\n omit: ['shouldFetchPriceChange'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n asset: 'Token contract address or name',\n symbol: 'Token symbol',\n id: 'Asset ID',\n },\n});\n\nconst Asset = z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number().nullable(),\n logo: z.string().nullable(),\n rank: z.number().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n market_cap_diluted: z.number(),\n volume: z.number().nullable(),\n volume_change_24h: z.number().nullable(),\n volume_7d: z.number().nullable(),\n liquidity: z.number(),\n liquidityMax: z.number(),\n ath: z.number().nullable(),\n atl: z.number().nullable(),\n off_chain_volume: z.number().nullable(),\n is_listed: z.boolean(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n price_change_1m: z.number(),\n price_change_1y: z.number(),\n total_supply: z.number(),\n circulating_supply: z.number(),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchainId: z.string(),\n blockchain: z.string(),\n decimals: z.number(),\n }),\n ),\n native: z\n .object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n type: z.string(),\n decimals: z.number(),\n logo: z.string(),\n })\n .optional(),\n priceNative: z.number().optional(),\n});\n\nexport const MarketDataResponseSchema = z.object({\n data: Asset,\n});\n\nexport type MarketDataResponse = z.infer<typeof MarketDataResponseSchema>;\n\nexport interface AssetMarketDataOutput {\n id: number | null;\n name: string;\n symbol: string;\n decimals: number | null;\n logo: string | null;\n rank: number | null;\n price: number | null;\n market_cap: number;\n market_cap_diluted: number;\n volume: number;\n volume_change_24h: number | null;\n volume_7d: number | null;\n liquidity: number;\n liquidity_change_24h?: number;\n ath: number | null;\n atl: number | null;\n off_chain_volume: number | null;\n is_listed?: boolean;\n price_change_1h: number;\n price_change_24h: number;\n price_change_7d: number;\n price_change_1m: number;\n price_change_1y: number;\n total_supply: number;\n circulating_supply: number;\n priceNative?: number;\n native?: {\n name: string;\n symbol: string;\n address: string;\n type: 'eth' | 'stable' | 'other' | 'native';\n decimals: number;\n denom?: string;\n logo: string | null;\n id?: number;\n };\n contracts: {\n address: string;\n blockchainId: string;\n blockchain: string;\n decimals: number;\n }[];\n}\n",
|
|
29
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\nexport const MarketHistoryPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.union([z.string(), z.array(z.string())]).optional(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return '5m';\n }),\n amount: z.coerce.number().optional(),\n usd: z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n }),\n mode: z\n .enum(['asset', 'pair', 'pool'])\n .optional()\n .default('pair')\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset'),\n});\n\nexport type MarketHistoryPairParams = z.input<typeof MarketHistoryPairParamsSchema>;\n\nexport const MarketHistoryPairParamsSchemaOpenAPI = createOpenAPIParams(MarketHistoryPairParamsSchema, {\n omit: ['usd', 'mode'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n asset: 'Token contract address',\n symbol: 'Token symbol',\n address: 'Pool/pair address',\n baseToken: 'Base token address',\n from: 'Start date (timestamp or ISO string)',\n to: 'End date (timestamp or ISO string)',\n period: 'Candle period (e.g., \"5m\", \"1h\", \"24h\")',\n amount: 'Token amount for price calculation',\n },\n});\n\nexport type MarketHistoryPairInferType = z.infer<typeof MarketHistoryPairParamsSchema>;\n\nexport const MarketHistoryPairResponseSchema = z.object({\n data: z.array(\n z.object({\n volume: z.number(),\n open: z.number(),\n high: z.number(),\n low: z.number(),\n close: z.number(),\n time: z.number(),\n }),\n ),\n});\n\nexport type MarketHistoryPairResponse = z.infer<typeof MarketHistoryPairResponseSchema>;\n",
|
|
29
30
|
"import { z } from 'zod';\n\nconst DateQuery = z.union([z.coerce.number().int().optional(), z.coerce.date().optional()]).transform((val) => {\n if (typeof val === 'undefined') {\n return val;\n }\n\n if (typeof val === 'number') {\n return new Date(val);\n }\n\n if (val instanceof Date) {\n return val;\n }\n\n throw new Error('Invalid date');\n});\nexport type DateQuery = z.infer<typeof DateQuery>;\nexport default DateQuery;\n",
|
|
30
31
|
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\n\nexport const MarketHistoryParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return undefined;\n }),\n id: z.coerce.number().optional(),\n from: z.coerce.number().default(0),\n to: z.coerce.number().default(() => Date.now()),\n});\n\nexport type MarketHistoryParams = z.input<typeof MarketHistoryParamsSchema>;\n\nexport const MarketHistoryResponseSchema = z.object({\n data: z.object({\n price_history: z.array(z.array(z.number().nullable())),\n volume_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_diluted_history: z.array(z.array(z.number().nullable())).optional(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n blockchain: z.string().optional(),\n address: z.string().optional(),\n }),\n});\n\nexport type MarketHistoryResponse = z.infer<typeof MarketHistoryResponseSchema>;\n",
|
|
31
|
-
"import { z } from 'zod';\
|
|
32
|
+
"import { z } from 'zod';\n\nconst TimeframeMetricsSchema = z.object({\n '15min': z.number(),\n '1h': z.number(),\n '6h': z.number(),\n '24h': z.number(),\n});\n\nconst TimeframeChangeSchema = z.object({\n '15min': z.number().nullable(),\n '1h': z.number().nullable(),\n '6h': z.number().nullable(),\n '24h': z.number().nullable(),\n});\n\nconst MetricsSchema = z.object({\n volumeUSD: TimeframeMetricsSchema,\n volumeUSDChange: TimeframeChangeSchema,\n trades: TimeframeMetricsSchema,\n tradesChange: TimeframeChangeSchema,\n buys: TimeframeMetricsSchema,\n buysChange: TimeframeChangeSchema,\n sells: TimeframeMetricsSchema,\n sellsChange: TimeframeChangeSchema,\n feesPaidUSD: TimeframeMetricsSchema,\n feesPaidUSDChange: TimeframeChangeSchema,\n});\n\nconst ChainEntrySchema = MetricsSchema.extend({\n name: z.string(),\n logo: z.string(),\n});\n\nconst DexEntrySchema = MetricsSchema.extend({\n name: z.string(),\n logo: z.string().nullable(),\n});\n\nconst PlatformEntrySchema = MetricsSchema.extend({\n name: z.string(),\n logo: z.string().nullable(),\n});\n\nexport const MarketLighthouseResponseSchema = z.object({\n data: z.object({\n total: MetricsSchema,\n byChain: z.array(ChainEntrySchema),\n byDex: z.array(DexEntrySchema),\n byLaunchpad: z.array(DexEntrySchema),\n byPlatform: z.array(PlatformEntrySchema),\n }),\n});\n\nexport type MarketLighthouseResponse = z.infer<typeof MarketLighthouseResponseSchema>;\n",
|
|
33
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\n\n// Schema for assets (addresses or names)\nconst assetEntry = z.object({\n type: z.enum(['address', 'name']),\n value: z.string(),\n});\n\nexport const MarketMultiDataAssetParamsSchema = z.object({\n // IDs of assets (string or array, transformed into an array of strings)\n ids: stringOrArray.optional(),\n\n // Symbols of assets (string or array, transformed into an array of strings)\n symbols: stringOrArray.optional(),\n\n // Blockchains (string or array, transformed into an array of chain IDs)\n blockchains: stringOrArray.optional(),\n\n // Assets (addresses or names, string or array of objects)\n assets: z\n .union([\n z.string(), // Ex. \"0x123,bitcoin\"\n z.array(assetEntry), // Or an array of objects { type, value }\n ])\n .optional(),\n\n // Option to fetch price changes (string \"24h\" or boolean)\n shouldFetchPriceChange: z\n .union([z.literal('24h'), z.coerce.boolean()])\n .optional()\n .default(false),\n});\n\nexport type MarketMultiDataAssetParams = z.input<typeof MarketMultiDataAssetParamsSchema>;\n\nexport const MarketMultiDataAssetParamsSchemaOpenAPI = createOpenAPIParams(MarketMultiDataAssetParamsSchema, {\n omit: ['shouldFetchPriceChange'],\n describe: {\n ids: 'Comma-separated asset IDs',\n symbols: 'Comma-separated token symbols',\n blockchains: 'Comma-separated blockchain IDs',\n assets: 'Comma-separated token addresses or names',\n },\n});\n\nconst Asset = z.object({\n key: z.string(),\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number().nullable(),\n logo: z.string().nullable(),\n rank: z.number().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n market_cap_diluted: z.number(),\n volume: z.number(),\n volume_change_24h: z.number(),\n volume_7d: z.number(),\n liquidity: z.number(),\n ath: z.number().nullable(),\n atl: z.number().nullable(),\n off_chain_volume: z.number(),\n is_listed: z.boolean(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n price_change_1m: z.number(),\n price_change_1y: z.number(),\n total_supply: z.number(),\n circulating_supply: z.number(),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchainId: z.string(),\n blockchain: z.string(),\n decimals: z.number(),\n }),\n ),\n});\n\nexport const MarketMultiDataResponseSchema = z.object({\n data: z.record(z.string(), Asset),\n dataArray: z.array(Asset.nullable()),\n});\n\nexport type MarketMultiDataResponse = z.infer<typeof MarketMultiDataResponseSchema>;\n",
|
|
32
34
|
"import { z } from 'zod';\n\nexport const stringOrArray = z.union([z.string(), z.array(z.string())]).transform((value) => {\n if (typeof value === 'string') {\n return value.split(',').map((item) => item.trim()); // Transform a string into an array, removing spaces\n }\n return value; // Return the array as is\n});\n",
|
|
33
|
-
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\n\nexport const MarketMultiHistoryParamsSchema = z.object({\n assets: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return undefined;\n }),\n symbols: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n ids: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((i) => Number(i));\n }\n return [];\n }),\n from: z.string().optional(),\n froms: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((v) => Number(v));\n }\n return undefined;\n }),\n to: z.string().optional(),\n tos: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((v) => Number(v));\n }\n return undefined;\n }),\n});\n\nexport type MarketMultiHistoryParams = z.input<typeof MarketMultiHistoryParamsSchema>;\n\nexport const MarketMultiHistoryResponseSchema = z.object({\n data: z.array(\n z.object({\n price_history: z.array(z.array(z.number().nullable())).optional(),\n volume_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_diluted_history: z.array(z.array(z.number().nullable())).optional(),\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n id: z.number().nullable().optional(),\n }),\n ),\n});\n\nexport type MarketMultiHistoryResponse = z.infer<typeof MarketMultiHistoryResponseSchema>;\n",
|
|
35
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport normalizePeriod from '../../utils/functions/period.ts';\n\nexport const MarketMultiHistoryParamsSchema = z.object({\n assets: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return undefined;\n }),\n symbols: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n ids: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((i) => Number(i));\n }\n return [];\n }),\n from: z.string().optional(),\n froms: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((v) => Number(v));\n }\n return undefined;\n }),\n to: z.string().optional(),\n tos: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',').map((v) => Number(v));\n }\n return undefined;\n }),\n});\n\nexport type MarketMultiHistoryParams = z.input<typeof MarketMultiHistoryParamsSchema>;\n\nexport const MarketMultiHistoryParamsSchemaOpenAPI = createOpenAPIParams(MarketMultiHistoryParamsSchema, {\n omit: ['froms', 'tos'],\n describe: {\n assets: 'Comma-separated token contract addresses',\n period: 'Time period (e.g., \"1h\", \"24h\", \"7d\")',\n symbols: 'Comma-separated token symbols',\n blockchains: 'Comma-separated blockchain IDs',\n ids: 'Comma-separated asset IDs',\n from: 'Start timestamp',\n to: 'End timestamp',\n },\n});\n\nexport const MarketMultiHistoryResponseSchema = z.object({\n data: z.array(\n z.object({\n price_history: z.array(z.array(z.number().nullable())).optional(),\n volume_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_history: z.array(z.array(z.number().nullable())).optional(),\n market_cap_diluted_history: z.array(z.array(z.number().nullable())).optional(),\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n id: z.number().nullable().optional(),\n }),\n ),\n});\n\nexport type MarketMultiHistoryResponse = z.infer<typeof MarketMultiHistoryResponseSchema>;\n",
|
|
34
36
|
"import { z } from 'zod';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\n\n// Schema for assets (addresses or names)\nconst assetEntry = z.object({\n type: z.enum(['address', 'name']),\n value: z.string(),\n});\n\nexport const MarketMultiPricesParamsSchema = z.object({\n // Blockchains (string or array, transformed into an array of chain IDs)\n blockchains: stringOrArray.optional(),\n\n // Assets (addresses or names, string or array of objects)\n assets: z\n .union([\n z.string(), // Ex. \"0x123,bitcoin\"\n z.array(assetEntry), // Or an array of objects { type, value }\n ])\n .optional(),\n});\n\nexport type MarketMultiPricesParams = z.input<typeof MarketMultiPricesParamsSchema>;\n\nexport const MarketMultiPricesResponseSchema = z.object({\n data: z.record(\n z.string(),\n z.object({\n price: z.number().nullable(),\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n logo: z.string().nullable(),\n marketCap: z.number().nullable(),\n marketCapDiluted: z.number().nullable(),\n liquidity: z.number().nullable(),\n liquidityMax: z.number().nullable(),\n }),\n ),\n});\n\nexport type MarketMultiPricesResponse = z.infer<typeof MarketMultiPricesResponseSchema>;\n",
|
|
35
37
|
"import { z } from 'zod';\n\nexport const MarketNftParamsSchema = z.object({\n asset: z.string(),\n chain: z.string(),\n});\n\nexport type MarketNftParams = z.input<typeof MarketNftParamsSchema>;\n\nexport const MarketNftResponseSchema = z.object({\n data: z.object({\n price: z.number(),\n priceETH: z.number(),\n }),\n});\n\nexport type MarketNftResponse = z.infer<typeof MarketNftResponseSchema>;\n",
|
|
36
|
-
"import { z } from 'zod';\nimport { EnrichedPoolDataSchema } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const MarketPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.string().optional(),\n stats: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n force: z.coerce.boolean().optional().default(false),\n});\n\nexport type MarketPairParams = z.input<typeof MarketPairParamsSchema>;\n\nexport const MarketPairResponseSchema = z.object({\n data: EnrichedPoolDataSchema,\n});\n\nexport type MarketPairResponse = z.infer<typeof MarketPairResponseSchema>;\n",
|
|
37
|
-
"import { z } from 'zod';\nimport { EnrichedPoolDataSchema } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const MarketPairsParamsSchema = z.object({\n // Common pagination parameters\n limit: z.coerce.number().max(25).default(25),\n offset: z.string().default('0'),\n // Asset identification fields (mutually exclusive in behavior)\n id: z.coerce.number().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n blockchain: z.string().optional(),\n tokens: z.string().optional(),\n blockchains: z.string().optional(),\n excludeBonded: z.coerce.boolean().optional().default(false),\n poolType: z.string().optional(),\n});\n\nexport type MarketPairsParams = z.input<typeof MarketPairsParamsSchema>;\nexport type MarketPairInferParams = z.infer<typeof MarketPairsParamsSchema>;\n\nexport const MarketPairsResponseSchema = z.object({\n data: z.object({\n pairs: z.array(EnrichedPoolDataSchema),\n total_count: z.number(),\n }),\n});\n\nexport type MarketPairsResponse = z.infer<typeof MarketPairsResponseSchema>;\n",
|
|
38
|
-
"import { z } from 'zod';\nimport type { GenericWhere } from '../../utils/functions/queryFilters.ts';\n\nconst allowedFields = [\n 'price',\n 'price_change_1h',\n 'price_change_7d',\n 'liquidity',\n 'market_cap',\n 'volume',\n 'price_change_24h',\n 'off_chain_volume',\n] as const;\n\nconst allowedFieldsToNewFormat: Record<(typeof allowedFields)[number], (typeof allowedFieldsNewFormat)[number]> = {\n price: 'priceUSD',\n price_change_1h: 'priceChange1hPercent',\n price_change_7d: 'priceChange7dPercent',\n liquidity: 'liquidityUSD',\n market_cap: 'marketCapUSD',\n volume: 'volume24hUSD',\n price_change_24h: 'priceChange24hPercent',\n off_chain_volume: 'offChainVolumeUSD',\n};\n\nconst allowedFieldsNewFormat = [\n 'priceUSD',\n 'priceChange1hPercent',\n 'priceChange7dPercent',\n 'liquidityUSD',\n 'marketCapUSD',\n 'volume24hUSD',\n 'priceChange24hPercent',\n 'offChainVolumeUSD',\n] as const;\n\nconst allowedFieldsEnum = z.enum(allowedFields);\nconst allowedFieldsNewFormatEnum = z.enum(allowedFieldsNewFormat);\ntype AllowedFieldsType = z.infer<typeof allowedFieldsEnum>;\ntype NewFormatAllowFieldsType = z.infer<typeof allowedFieldsNewFormatEnum>;\n\nconst getNewFormatField = (input: AllowedFieldsType): NewFormatAllowFieldsType => {\n return allowedFieldsToNewFormat[input];\n};\n\nexport const MarketQueryParamsSchema = z\n .object({\n sortBy: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return getNewFormatField(allowedFieldsEnum.parse(val));\n }\n return null;\n }),\n sortOrder: z.string().default('desc'),\n filters: z\n .string()\n .optional()\n .transform((values) => {\n const filters = values ? values.split(',') : [];\n\n if (filters.length > 0) {\n const tmpSubQuery: GenericWhere = {};\n\n for (const filter of filters) {\n if (filter.includes(':')) {\n const orStatements = filter.split('||');\n\n for (const statement of orStatements) {\n const filterPart = statement.split(':');\n\n if (filterPart.length === 2) {\n filterPart.push('');\n }\n\n const [field, min, max] = z\n .tuple([\n allowedFieldsEnum,\n z.coerce.string().default('0'),\n z.coerce.string().default('100000000000000000'),\n ])\n .parse(filterPart);\n\n if (allowedFields.includes(field)) {\n tmpSubQuery[getNewFormatField(field)] = {\n gte: min ? z.coerce.number().parse(min) : undefined,\n lte: max ? z.coerce.number().parse(max) : undefined,\n };\n }\n }\n }\n }\n\n return { AND: [tmpSubQuery] };\n }\n\n return {};\n }),\n blockchain: z.string().optional(),\n blockchains: z\n .string()\n .optional()\n .transform((blockchainsString) => {\n if (!blockchainsString) {\n return [];\n }\n return blockchainsString\n .split(',')\n .map((blockchain) => blockchain.trim())\n .filter((b) => b.length > 0);\n }),\n categories: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n limit: z.coerce.number().default(20),\n offset: z.coerce.number().default(0),\n })\n .transform(({ filters, sortOrder, sortBy, ...data }) => ({\n where: filters,\n orderBy: sortBy ? { [sortBy]: sortOrder } : undefined,\n ...data,\n }));\n\nexport type MarketQueryParams = z.input<typeof MarketQueryParamsSchema>;\n\nexport type MarketQueryInferType = z.infer<typeof MarketQueryParamsSchema>;\n\nexport const MarketQueryResponseSchema = z.array(\n z.object({\n name: z.string(),\n logo: z.string().nullable(),\n symbol: z.string(),\n liquidity: z.number(),\n market_cap: z.number(),\n volume: z.number(),\n off_chain_volume: z.number(),\n price: z.number(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n categories: z.array(z.string().optional()),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n blockchainId: z.string(),\n decimals: z.number(),\n }),\n ),\n id: z.number(),\n rank: z.number().nullable(),\n }),\n);\n\nexport type MarketQueryResponse = z.infer<typeof MarketQueryResponseSchema>;\n",
|
|
38
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport { EnrichedPoolDataSchema } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const MarketPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.string().optional(),\n stats: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n force: z.coerce.boolean().optional().default(false),\n});\n\nexport type MarketPairParams = z.input<typeof MarketPairParamsSchema>;\n\nexport const MarketPairParamsSchemaOpenAPI = createOpenAPIParams(MarketPairParamsSchema, {\n omit: ['force'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n asset: 'Token contract address',\n symbol: 'Token symbol',\n address: 'Pool/pair address',\n baseToken: 'Base token address',\n stats: 'Include pool statistics',\n },\n});\n\nexport const MarketPairResponseSchema = z.object({\n data: EnrichedPoolDataSchema,\n});\n\nexport type MarketPairResponse = z.infer<typeof MarketPairResponseSchema>;\n",
|
|
39
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport { EnrichedPoolDataSchema } from '../../utils/schemas/EnrichedMarketData.ts';\n\nexport const MarketPairsParamsSchema = z.object({\n // Common pagination parameters\n limit: z.coerce.number().max(25).default(25),\n offset: z.string().default('0'),\n // Asset identification fields (mutually exclusive in behavior)\n id: z.coerce.number().optional(),\n asset: z.string().optional(),\n symbol: z.string().optional(),\n blockchain: z.string().optional(),\n tokens: z.string().optional(),\n blockchains: z.string().optional(),\n excludeBonded: z.coerce.boolean().optional().default(false),\n poolType: z.string().optional(),\n});\n\nexport type MarketPairsParams = z.input<typeof MarketPairsParamsSchema>;\n\nexport const MarketPairsParamsSchemaOpenAPI = createOpenAPIParams(MarketPairsParamsSchema, {\n omit: ['blockchain', 'tokens'],\n describe: {\n limit: 'Maximum number of results (max: 25)',\n offset: 'Offset for pagination',\n id: 'Asset ID',\n asset: 'Token contract address or name',\n symbol: 'Token symbol',\n blockchains: 'Comma-separated blockchain IDs',\n excludeBonded: 'Exclude bonded pairs',\n poolType: 'Filter by pool type',\n },\n});\nexport type MarketPairInferParams = z.infer<typeof MarketPairsParamsSchema>;\n\nexport const MarketPairsResponseSchema = z.object({\n data: z.object({\n pairs: z.array(EnrichedPoolDataSchema),\n total_count: z.number(),\n }),\n});\n\nexport type MarketPairsResponse = z.infer<typeof MarketPairsResponseSchema>;\n",
|
|
40
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport type { GenericWhere } from '../../utils/functions/queryFilters.ts';\n\nconst allowedFields = [\n 'price',\n 'price_change_1h',\n 'price_change_7d',\n 'liquidity',\n 'market_cap',\n 'volume',\n 'price_change_24h',\n 'off_chain_volume',\n] as const;\n\nconst allowedFieldsToNewFormat: Record<(typeof allowedFields)[number], (typeof allowedFieldsNewFormat)[number]> = {\n price: 'priceUSD',\n price_change_1h: 'priceChange1hPercent',\n price_change_7d: 'priceChange7dPercent',\n liquidity: 'liquidityUSD',\n market_cap: 'marketCapUSD',\n volume: 'volume24hUSD',\n price_change_24h: 'priceChange24hPercent',\n off_chain_volume: 'offChainVolumeUSD',\n};\n\nconst allowedFieldsNewFormat = [\n 'priceUSD',\n 'priceChange1hPercent',\n 'priceChange7dPercent',\n 'liquidityUSD',\n 'marketCapUSD',\n 'volume24hUSD',\n 'priceChange24hPercent',\n 'offChainVolumeUSD',\n] as const;\n\nconst allowedFieldsEnum = z.enum(allowedFields);\nconst allowedFieldsNewFormatEnum = z.enum(allowedFieldsNewFormat);\ntype AllowedFieldsType = z.infer<typeof allowedFieldsEnum>;\ntype NewFormatAllowFieldsType = z.infer<typeof allowedFieldsNewFormatEnum>;\n\nconst getNewFormatField = (input: AllowedFieldsType): NewFormatAllowFieldsType => {\n return allowedFieldsToNewFormat[input];\n};\n\nexport const MarketQueryParamsSchema = z\n .object({\n sortBy: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return getNewFormatField(allowedFieldsEnum.parse(val));\n }\n return null;\n }),\n sortOrder: z.string().default('desc'),\n filters: z\n .string()\n .optional()\n .transform((values) => {\n const filters = values ? values.split(',') : [];\n\n if (filters.length > 0) {\n const tmpSubQuery: GenericWhere = {};\n\n for (const filter of filters) {\n if (filter.includes(':')) {\n const orStatements = filter.split('||');\n\n for (const statement of orStatements) {\n const filterPart = statement.split(':');\n\n if (filterPart.length === 2) {\n filterPart.push('');\n }\n\n const [field, min, max] = z\n .tuple([\n allowedFieldsEnum,\n z.coerce.string().default('0'),\n z.coerce.string().default('100000000000000000'),\n ])\n .parse(filterPart);\n\n if (allowedFields.includes(field)) {\n tmpSubQuery[getNewFormatField(field)] = {\n gte: min ? z.coerce.number().parse(min) : undefined,\n lte: max ? z.coerce.number().parse(max) : undefined,\n };\n }\n }\n }\n }\n\n return { AND: [tmpSubQuery] };\n }\n\n return {};\n }),\n blockchain: z.string().optional(),\n blockchains: z\n .string()\n .optional()\n .transform((blockchainsString) => {\n if (!blockchainsString) {\n return [];\n }\n return blockchainsString\n .split(',')\n .map((blockchain) => blockchain.trim())\n .filter((b) => b.length > 0);\n }),\n categories: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val.split(',');\n }\n return [];\n }),\n limit: z.coerce.number().default(20),\n offset: z.coerce.number().default(0),\n })\n .transform(({ filters, sortOrder, sortBy, ...data }) => ({\n where: filters,\n orderBy: sortBy ? { [sortBy]: sortOrder } : undefined,\n ...data,\n }));\n\nexport type MarketQueryParams = z.input<typeof MarketQueryParamsSchema>;\n\nexport type MarketQueryInferType = z.infer<typeof MarketQueryParamsSchema>;\n\nexport const MarketQueryParamsSchemaOpenAPI = createOpenAPIParams(MarketQueryParamsSchema, {\n omit: ['blockchain'],\n describe: {\n sortBy: 'Sort field (e.g. price, liquidity, market_cap, volume)',\n sortOrder: 'Sort order: asc or desc (default: desc)',\n filters: 'Comma-separated filters in format field:min:max (e.g. liquidity:1000:,market_cap:100000:1000000)',\n blockchains: 'Comma-separated blockchain IDs',\n categories: 'Comma-separated category names',\n limit: 'Maximum number of results (default: 20)',\n offset: 'Offset for pagination',\n },\n});\n\nexport const MarketQueryResponseSchema = z.array(\n z.object({\n name: z.string(),\n logo: z.string().nullable(),\n symbol: z.string(),\n liquidity: z.number(),\n market_cap: z.number(),\n volume: z.number(),\n off_chain_volume: z.number(),\n price: z.number(),\n price_change_1h: z.number(),\n price_change_24h: z.number(),\n price_change_7d: z.number(),\n categories: z.array(z.string().optional()),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n blockchainId: z.string(),\n decimals: z.number(),\n }),\n ),\n id: z.number(),\n rank: z.number().nullable(),\n }),\n);\n\nexport type MarketQueryResponse = z.infer<typeof MarketQueryResponseSchema>;\n",
|
|
39
41
|
"import { z } from 'zod';\n\nexport const MarketSparklineResponseSchema = z.object({\n url: z.string(),\n});\n\nexport type MarketSparklineResponse = z.infer<typeof MarketSparklineResponseSchema>;\n\nexport const MarketSparklineParamsSchema = z.object({\n asset: z.string().optional(),\n blockchain: z.string().optional(),\n symbol: z.string().optional(),\n id: z.string().optional(),\n timeFrame: z.string().optional().default('24h'),\n png: z.string().optional().default('false'),\n});\n\nexport type MarketSparklineParams = z.input<typeof MarketSparklineParamsSchema>;\n",
|
|
40
42
|
"import { z } from 'zod';\n\nexport const MarketTokenVsMarketParamsSchema = z.object({\n tag: z.string(),\n});\n\nexport type MarketTokenVsMarketParams = z.input<typeof MarketTokenVsMarketParamsSchema>;\n\nexport const selectAssetTokenVsCategory = {\n marketCapUSD: true,\n priceUSD: true,\n priceChange1hPercent: true,\n priceChange24hPercent: true,\n priceChange7dPercent: true,\n priceChange1mPercent: true,\n name: true,\n symbol: true,\n} as const;\n\nexport const selectCategoryTokenVsCategory = {\n id: true,\n marketCapUSD: true,\n marketCapChange24hPercent: true,\n marketCapChange7dPercent: true,\n marketCapChange1mPercent: true,\n name: true,\n volumeUSD: true,\n} as const;\n\nexport const MarketTokenVsMarketResponseSchema = z.object({\n data: z.array(\n z.union([\n z\n .object({\n marketCapUSD: z.number(),\n priceUSD: z.number().nullable(),\n priceChange1hPercent: z.number(),\n priceChange24hPercent: z.number(),\n priceChange7dPercent: z.number(),\n priceChange1mPercent: z.number(),\n name: z.string(),\n symbol: z.string(),\n })\n .nullable(),\n z\n .object({\n id: z.number(),\n marketCapUSD: z.number(),\n marketCapChange24hPercent: z.number(),\n marketCapChange7dPercent: z.number(),\n marketCapChange1mPercent: z.number(),\n name: z.string(),\n volumeUSD: z.number(),\n })\n .nullable(),\n ]),\n ),\n});\n\nexport type MarketTokenVsMarketResponse = z.infer<typeof MarketTokenVsMarketResponseSchema>;\n",
|
|
41
43
|
"import { z } from 'zod';\n\nexport const MarketTotalResponseSchema = z.object({\n market_cap_history: z.array(z.tuple([z.number(), z.number()])),\n market_cap_change_24h: z.string(),\n btc_dominance_history: z.array(z.tuple([z.number(), z.number()])),\n});\n\nexport type MarketTotalResponse = z.infer<typeof MarketTotalResponseSchema>;\n",
|
|
42
44
|
"import { z } from 'zod';\nimport { PlatformMetadataOutput } from '../../utils/schemas/PlatformMetadataOutput.ts';\n\nconst allowedFields = ['date', 'amount_usd', 'token_in_amount', 'token_out_amount'] as const;\n\nconst allowedFieldsToNewFormat: Record<(typeof allowedFields)[number], (typeof allowedFieldsNewFormat)[number]> = {\n date: 'date',\n amount_usd: 'volumeUSD',\n token_in_amount: 'amount0',\n token_out_amount: 'amount1',\n};\n\nconst allowedFieldsNewFormat = ['date', 'volumeUSD', 'amount0', 'amount1'] as const;\n\nconst allowedFieldsEnum = z.enum(allowedFields);\nconst allowedFieldsNewFormatEnum = z.enum(allowedFieldsNewFormat);\ntype AllowedFieldsType = z.infer<typeof allowedFieldsEnum>;\ntype NewFormatAllowFieldsType = z.infer<typeof allowedFieldsNewFormatEnum>;\n\nconst getNewFormatField = (input: AllowedFieldsType): NewFormatAllowFieldsType => {\n return allowedFieldsToNewFormat[input];\n};\n\nexport const MarketTradesPairParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z\n .string()\n .transform((val) => val.trim())\n .optional(),\n address: z.string().optional(),\n symbol: z.string().optional(),\n limit: z.coerce.number().optional(),\n amount: z.coerce.number().optional(),\n sortBy: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return getNewFormatField(allowedFieldsEnum.parse(val));\n }\n return 'date';\n }),\n sortOrder: z.enum(['asc', 'desc']).default('desc'),\n offset: z.coerce.number().default(0),\n mode: z\n .enum(['pair', 'pool', 'asset'])\n .default('pair')\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset'),\n transactionSenderAddress: z.string().optional(),\n});\n\nexport type MarketTradesPairParams = z.input<typeof MarketTradesPairParamsSchema>;\n\nexport const MarketTradesPairResponseSchema = z.object({\n data: z.array(\n z.object({\n blockchain: z.string(),\n hash: z.string(),\n pair: z.string(),\n date: z.number(),\n token_price_vs: z.number(),\n token_price: z.number(),\n token_amount: z.number(),\n token_amount_vs: z.number(),\n token_amount_usd: z.number(),\n type: z.string(),\n sender: z.string().nullable(),\n transaction_sender_address: z.string().nullable(),\n token_amount_raw: z.string(),\n token_amount_raw_vs: z.string(),\n operation: z.string(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n }),\n ),\n});\n\nexport type MarketTradesPairResponse = z.infer<typeof MarketTradesPairResponseSchema>;\n",
|
|
43
45
|
"import { z } from 'zod';\n\nexport const MetadataCategoriesResponseSchema = z.array(\n z.object({\n name: z.string(),\n market_cap: z.number(),\n market_cap_change_24h: z.number(),\n market_cap_change_7d: z.number(),\n }),\n);\nexport type MetadataCategoriesResponse = z.infer<typeof MetadataCategoriesResponseSchema>;\n",
|
|
44
46
|
"import { z } from 'zod';\n\nexport const MetadataNewsParamsSchema = z.object({\n symbols: z.string().transform((val, ctx) => {\n const values = val.split(',');\n if (values.length > 5) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Too many symbols',\n });\n }\n return values;\n }),\n});\n\nexport type MetadataNewsParams = z.input<typeof MetadataNewsParamsSchema>;\n\nexport const CryptoNewsDataSchema = z.array(\n z.object({\n news_url: z.string(),\n image_url: z.string(),\n title: z.string(),\n text: z.string(),\n source_name: z.string(),\n date: z.string(),\n topics: z.array(z.string()),\n sentiment: z.string(),\n type: z.string(),\n tickers: z.array(z.string()),\n }),\n);\n\nexport const MetadataNewsResponseSchema = z.object({\n data: z.array(\n z.object({\n news_url: z.string(),\n image_url: z.string(),\n title: z.string(),\n text: z.string(),\n source_name: z.string(),\n date: z.string(),\n topics: z.array(z.string()),\n sentiment: z.string(),\n type: z.string(),\n tickers: z.array(z.string()),\n }),\n ),\n});\n\nexport type MetadataNewsResponse = z.infer<typeof MetadataNewsResponseSchema>;\n",
|
|
45
|
-
"import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';\nimport { z } from 'zod';\n\nextendZodWithOpenApi(z);\n\nexport const MetadataParamsSchema = z\n .object({\n symbol: z.string().optional(),\n id: z.string().optional(),\n asset: z.string().optional(),\n blockchain: z.string().optional(),\n force: z.coerce.boolean().optional().default(false),\n full: z.coerce.boolean().optional().default(true),\n })\n .strict();\n\nexport type MetadataParams = z.input<typeof MetadataParamsSchema>;\n\nexport const MultiMetadataParamsSchema = z\n .object({\n ids: z.string().optional(),\n assets: z.string().optional(),\n blockchains: z.string().optional(),\n symbols: z.string().optional(),\n })\n .strict()\n .transform((data) => {\n return {\n ids: data.ids ? data.ids.split(',') : undefined,\n assets: data.assets ? data.assets.split(',') : undefined,\n blockchains: data.blockchains ? data.blockchains.split(',') : undefined,\n symbols: data.symbols ? data.symbols.split(',') : undefined,\n };\n });\n\nexport type MultiMetadataParams = z.input<typeof MultiMetadataParamsSchema>;\n\nexport const MetadataResponseSchema = z.object({\n data: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n rank: z.number().nullable().optional(),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n decimals: z.array(z.number()),\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n logo: z.string().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n liquidity: z.number(),\n volume: z.number(),\n description: z.string().nullable(),\n kyc: z.string().nullable(),\n audit: z.string().nullable(),\n total_supply_contracts: z.array(z.string()),\n circulating_supply_addresses: z.array(z.string()),\n total_supply: z.number(),\n circulating_supply: z.number(),\n discord: z.string().nullable(),\n max_supply: z.number().nullable(),\n chat: z.string().nullable(),\n tags: z.array(z.string()),\n investors: z.array(\n z.object({\n lead: z.boolean(),\n name: z.string(),\n type: z.string(),\n image: z.string(),\n country_name: z.string(),\n description: z.string(),\n }),\n ),\n distribution: z.array(\n z.object({\n percentage: z.number(),\n name: z.string(),\n }),\n ),\n release_schedule: z.array(\n z.object({\n allocation_details: z.record(z.string(), z.number()),\n tokens_to_unlock: z.number(),\n unlock_date: z.number(),\n }),\n ),\n cexs: z.array(\n z.object({\n logo: z.string().nullable(),\n name: z.string().nullable(),\n id: z.string(),\n }),\n ),\n listed_at: z.coerce.date().nullable(),\n deployer: z.string().nullable(),\n source: z.string().nullable(),\n others: z.record(z.string(), z.unknown()).nullable().optional(),\n dexscreener_listed: z.boolean().nullable().optional(),\n dexscreener_header: z.string().nullable().optional(),\n dexscreener_ad_paid: z.boolean().nullable().optional(),\n live_status: z.string().nullable().optional(),\n live_thumbnail: z.string().nullable().optional(),\n livestream_title: z.string().nullable().optional(),\n live_reply_count: z.number().nullable().optional(),\n telegram: z.string().nullable().optional(),\n twitterRenameCount: z.number().nullable().optional(),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .nullable()\n .optional(),\n }),\n});\n\nexport type MetadataResponse = z.infer<typeof MetadataResponseSchema>;\n\nexport const MultiMetadataResponseSchema = z.object({\n data: z.array(MetadataResponseSchema.optional()),\n});\n\nexport type MultiMetadataResponse = z.infer<typeof MultiMetadataResponseSchema>;\n",
|
|
47
|
+
"import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';\nimport { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\n\nextendZodWithOpenApi(z);\n\nexport const MetadataParamsSchema = z\n .object({\n symbol: z.string().optional(),\n id: z.string().optional(),\n asset: z.string().optional(),\n blockchain: z.string().optional(),\n force: z.coerce.boolean().optional().default(false),\n full: z.coerce.boolean().optional().default(true),\n })\n .strict();\n\nexport type MetadataParams = z.input<typeof MetadataParamsSchema>;\n\nexport const MetadataParamsSchemaOpenAPI = createOpenAPIParams(MetadataParamsSchema, {\n omit: ['force', 'full'],\n describe: {\n symbol: 'Token symbol',\n id: 'Asset ID',\n asset: 'Token contract address',\n blockchain: 'Blockchain name or chain ID',\n },\n});\n\nexport const MultiMetadataParamsSchema = z\n .object({\n ids: z.string().optional(),\n assets: z.string().optional(),\n blockchains: z.string().optional(),\n symbols: z.string().optional(),\n })\n .strict()\n .transform((data) => {\n return {\n ids: data.ids ? data.ids.split(',') : undefined,\n assets: data.assets ? data.assets.split(',') : undefined,\n blockchains: data.blockchains ? data.blockchains.split(',') : undefined,\n symbols: data.symbols ? data.symbols.split(',') : undefined,\n };\n });\n\nexport type MultiMetadataParams = z.input<typeof MultiMetadataParamsSchema>;\n\nexport const MultiMetadataParamsSchemaOpenAPI = createOpenAPIParams(MultiMetadataParamsSchema, {\n describe: {\n ids: 'Comma-separated asset IDs',\n assets: 'Comma-separated token contract addresses',\n blockchains: 'Comma-separated blockchain IDs',\n symbols: 'Comma-separated token symbols',\n },\n});\n\nexport const MetadataResponseSchema = z.object({\n data: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n rank: z.number().nullable().optional(),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n decimals: z.array(z.number()),\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n logo: z.string().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n liquidity: z.number(),\n volume: z.number(),\n description: z.string().nullable(),\n kyc: z.string().nullable(),\n audit: z.string().nullable(),\n total_supply_contracts: z.array(z.string()),\n circulating_supply_addresses: z.array(z.string()),\n total_supply: z.number(),\n circulating_supply: z.number(),\n discord: z.string().nullable(),\n max_supply: z.number().nullable(),\n chat: z.string().nullable(),\n tags: z.array(z.string()),\n investors: z.array(\n z.object({\n lead: z.boolean(),\n name: z.string(),\n type: z.string(),\n image: z.string(),\n country_name: z.string(),\n description: z.string(),\n }),\n ),\n distribution: z.array(\n z.object({\n percentage: z.number(),\n name: z.string(),\n }),\n ),\n release_schedule: z.array(\n z.object({\n allocation_details: z.record(z.string(), z.number()),\n tokens_to_unlock: z.number(),\n unlock_date: z.number(),\n }),\n ),\n cexs: z.array(\n z.object({\n logo: z.string().nullable(),\n name: z.string().nullable(),\n id: z.string(),\n }),\n ),\n listed_at: z.coerce.date().nullable(),\n deployer: z.string().nullable(),\n source: z.string().nullable(),\n others: z.record(z.string(), z.unknown()).nullable().optional(),\n dexscreener_listed: z.boolean().nullable().optional(),\n dexscreener_header: z.string().nullable().optional(),\n dexscreener_ad_paid: z.boolean().nullable().optional(),\n live_status: z.string().nullable().optional(),\n live_thumbnail: z.string().nullable().optional(),\n livestream_title: z.string().nullable().optional(),\n live_reply_count: z.number().nullable().optional(),\n telegram: z.string().nullable().optional(),\n twitterRenameCount: z.number().nullable().optional(),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n last_checked: z.string(),\n }),\n )\n .nullable()\n .optional(),\n }),\n});\n\nexport type MetadataResponse = z.infer<typeof MetadataResponseSchema>;\n\nexport const MultiMetadataResponseSchema = z.object({\n data: z.array(MetadataResponseSchema.optional()),\n});\n\nexport type MultiMetadataResponse = z.infer<typeof MultiMetadataResponseSchema>;\n",
|
|
46
48
|
"import { z } from 'zod';\n\nexport const MetadataTrendingsParamsSchema = z\n .object({\n platform: z.string().transform((x) => (x !== undefined && x !== null ? x.toLocaleLowerCase() : x)),\n blockchain: z.string().transform((x) => (x !== undefined && x !== null ? x.toLocaleLowerCase() : x)),\n })\n .partial();\n\nexport type MetadataTrendingsParams = z.input<typeof MetadataTrendingsParamsSchema>;\n\nexport const MetadataTrendingsResponseSchema = z.array(\n z.object({\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n contracts: z.array(\n z\n .object({\n address: z.string(),\n blockchain: z.string(),\n decimals: z.number(),\n })\n .optional(),\n ),\n price_change_24h: z.number(),\n price: z.number(),\n logo: z.string().nullable(),\n trending_score: z.number(),\n pair: z.string().nullable(),\n platforms: z.array(\n z.object({\n name: z.string(),\n rank: z.number(),\n weigth: z.number(),\n }),\n ),\n }),\n);\n\nexport type MetadataTrendingsResponse = z.infer<typeof MetadataTrendingsResponseSchema>;\n",
|
|
47
49
|
"import { z } from 'zod';\n\nexport const SystemMetadataResponseSchema = z.object({\n data: z.object({\n poolTypes: z.array(z.string()),\n chains: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n blockExplorers: z\n .object({\n default: z.object({\n name: z.string(),\n url: z.string(),\n apiUrl: z.string().optional(),\n }),\n })\n .optional(),\n }),\n ),\n factories: z.array(\n z.object({\n chainId: z.string(),\n address: z.string(),\n name: z.string().optional(),\n ui_name: z.string().optional(),\n logo: z.string().optional(),\n }),\n ),\n }),\n});\n\nexport type SystemMetadataResponse = z.infer<typeof SystemMetadataResponseSchema>;\n",
|
|
48
50
|
"import { z } from 'zod';\nexport const walletSchema = z.object({\n wallet: z.string(),\n});\n",
|
|
49
51
|
"import { z } from 'zod';\n\nexport const formattedJSONSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n type: z.string(),\n description: z.string(),\n categories: z.array(z.string()),\n completed: z.boolean(),\n links: z.object({\n website: z.string(),\n twitter: z.string(),\n telegram: z.string(),\n discord: z.string(),\n github: z.string(),\n audits: z.array(z.string()),\n kycs: z.array(z.string()),\n }),\n contracts: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n blockchain_id: z.number(),\n }),\n ),\n totalSupplyContracts: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n blockchain_id: z.number(),\n }),\n ),\n excludedFromCirculationAddresses: z.array(z.string()),\n tokenomics: z.object({\n distribution: z.array(z.string()),\n sales: z.array(z.string()),\n vestingSchedule: z.array(z.string()),\n fees: z.array(z.string()),\n }),\n init: z.boolean(),\n logo: z.string(),\n});\n",
|
|
50
52
|
"import { z } from 'zod';\n\nexport const logoUrlSchema = z.object({\n assetName: z.string(),\n logoUrl: z.string(),\n});\n",
|
|
51
53
|
"import { z } from 'zod';\nimport {\n type EnrichedPoolData,\n EnrichedPoolDataSchema,\n type EnrichedTokenData,\n EnrichedTokenDataSchema,\n} from '../../utils/schemas/EnrichedMarketData.ts';\n\n// Pulse V2 model - current version\nexport const PulsePayloadParamsSchema = z.object({\n model: z.enum(['default']).optional(),\n subscriptionId: z.string().optional(),\n compressed: z.coerce.boolean().optional().default(false),\n assetMode: z.coerce.boolean().optional().default(false),\n chainId: z.union([z.string(), z.array(z.string())]).optional(),\n poolTypes: z.union([z.string(), z.array(z.string())]).optional(),\n excludeDuplicates: z.coerce.boolean().optional().default(true),\n instanceTracking: z.coerce.boolean().optional().default(false),\n pagination: z.coerce.boolean().optional(),\n views: z\n .array(\n z.object({\n name: z.string(),\n model: z.enum(['new', 'bonding', 'bonded']).optional(),\n chainId: z.union([z.string(), z.array(z.string())]).optional(),\n poolTypes: z.union([z.string(), z.array(z.string())]).optional(),\n token: z\n .union([z.string(), z.record(z.unknown())])\n .optional()\n .transform((val) => {\n if (typeof val === 'object' && val !== null) {\n return val;\n }\n\n if (typeof val === 'string') {\n try {\n const parsed = JSON.parse(val);\n if (typeof parsed === 'object' && parsed !== null) {\n return parsed;\n }\n } catch {\n // If parsing fails, treat as address filter\n return { address: val };\n }\n }\n\n return undefined;\n }),\n assets: z.union([z.string(), z.array(z.string())]).optional(),\n sortBy: z.string().optional(),\n sortOrder: z.enum(['asc', 'desc']).optional(),\n limit: z.coerce.number().max(100).optional().default(30),\n offset: z.coerce.number().optional().default(0),\n addressToExclude: z.union([z.string(), z.array(z.string())]).optional(),\n baseTokenToExclude: z.union([z.string(), z.array(z.string())]).optional(),\n filters: z\n .union([z.string(), z.record(z.unknown())])\n .optional()\n .transform((val) => {\n if (typeof val === 'object' && val !== null) {\n return val;\n }\n\n if (typeof val === 'string') {\n try {\n const parsed = JSON.parse(val);\n if (typeof parsed === 'object' && parsed !== null) {\n return parsed;\n }\n } catch {\n const filters = val.split(',');\n const whereClause: Record<string, unknown> = {};\n\n for (const filter of filters) {\n if (filter.includes(':')) {\n const [field, filterMinValue, filterMaxValue] = filter.split(':');\n\n if (field && ['source', 'deployer'].includes(field)) {\n whereClause[field] = {\n equals: filterMinValue,\n };\n } else if (field && ['latest_trade_date', 'created_at'].includes(field)) {\n const getDateValue = (value: string | undefined) => {\n if (!value || value === 'null' || value === 'undefined') return undefined;\n const numValue = Number(value);\n const date = Number.isNaN(numValue) ? new Date(value) : new Date(numValue);\n return Number.isNaN(date.getTime()) ? undefined : date;\n };\n\n const gteDate = getDateValue(filterMinValue);\n const lteDate = getDateValue(filterMaxValue);\n\n if (gteDate || lteDate) {\n whereClause[field] = {\n ...(gteDate && { gte: gteDate }),\n ...(lteDate && { lte: lteDate }),\n };\n }\n } else if (field === 'market_cap') {\n whereClause[field] = {\n not: filterMinValue === 'null' ? null : undefined,\n gte: filterMinValue && filterMinValue !== 'null' ? Number(filterMinValue) : undefined,\n lte: filterMaxValue ? Number(filterMaxValue) : undefined,\n };\n } else if (field) {\n whereClause[field] = {\n gte: filterMinValue ? Number(filterMinValue) : undefined,\n lte: filterMaxValue ? Number(filterMaxValue) : undefined,\n };\n }\n }\n }\n return whereClause;\n }\n }\n\n return {};\n }),\n\n min_socials: z\n .union([\n z.number().int().min(1).max(3),\n z\n .string()\n .transform((val) => {\n const num = Number(val);\n if (Number.isNaN(num)) throw new Error('Invalid number');\n return num;\n })\n .pipe(z.number().int().min(1).max(3)),\n ])\n .optional(),\n pagination: z.coerce.boolean().optional(),\n }),\n )\n .max(10)\n .optional()\n .default([]),\n});\n\nexport type PulsePayloadParams = z.input<typeof PulsePayloadParamsSchema>;\n\nexport const PausePulsePayloadParamsSchema = z.object({\n action: z.enum(['pause', 'unpause']),\n views: z.array(z.string()).min(1),\n});\n\nexport type PausePayloadParams = z.input<typeof PausePulsePayloadParamsSchema>;\nexport type PausePayloadInferType = z.infer<typeof PausePulsePayloadParamsSchema>;\n\nexport type PulseViewData = {\n data: EnrichedPoolData[] | EnrichedTokenData[];\n pagination?: number;\n};\n\nexport interface PulseResponseData {\n [key: string]: PulseViewData | string;\n}\n\nexport type PulseResponse = PulseResponseData | Buffer;\n\nconst ViewPaginationSchema = z.object({\n pagination: z.number(),\n});\n\n// The entire response is a record with string keys and pagination objects\nexport const PulsePaginationResponseSchema = z.record(ViewPaginationSchema);\nexport type PulsePaginationResponse = z.infer<typeof PulsePaginationResponseSchema>;\n\nexport const DebugPulseViewsResponseSchema = z.object({\n success: z.boolean(),\n hostname: z.string(),\n viewKeys: z.record(z.array(z.string())).optional(),\n error: z.string().optional(),\n redirectTo: z.string().optional(),\n hint: z.string().optional(),\n});\n\nexport type DebugPulseViewsResponse = z.infer<typeof DebugPulseViewsResponseSchema>;\n\nexport const PulseQuerySchema = z.object({\n blockchains: z.string().optional(),\n //factory: z.string().optional(),\n factories: z.string().optional(),\n});\n\nexport type PulseQuery = z.infer<typeof PulseQuerySchema>;\nexport const poolDataSchema = EnrichedPoolDataSchema;\nexport type PoolDataSchema = z.infer<typeof poolDataSchema>;\nexport const tokenDataSchema = EnrichedTokenDataSchema;\nexport type TokenDataSchema = z.infer<typeof tokenDataSchema>;\n\nexport const syncMessageSchema = z.object({\n type: z.literal('sync'),\n payload: z.record(\n z.string(),\n z.object({\n data: z.array(poolDataSchema),\n }),\n ),\n});\n\nexport const newPoolMessageSchema = z.object({\n type: z.literal('new-pool'),\n payload: z.object({\n viewName: z.string(),\n pool: poolDataSchema,\n }),\n});\n\nexport const updatePoolMessageSchema = z.object({\n type: z.literal('update-pool'),\n payload: z.object({\n viewName: z.string(),\n pool: poolDataSchema,\n }),\n});\n\nexport const removePoolMessageSchema = z.object({\n type: z.literal('remove-pool'),\n payload: z.object({\n viewName: z.string(),\n poolAddress: z.string(),\n }),\n});\n\nexport const WebSocketMessageSchema = z.discriminatedUnion('type', [\n syncMessageSchema,\n newPoolMessageSchema,\n updatePoolMessageSchema,\n removePoolMessageSchema,\n]);\n\nexport const PulseOutputSchema = WebSocketMessageSchema;\n\nexport type PulseOutput = z.infer<typeof PulseOutputSchema>;\nexport type WebSocketMessage = z.infer<typeof WebSocketMessageSchema>;\nexport type SyncMessage = z.infer<typeof syncMessageSchema>;\nexport type NewPoolMessage = z.infer<typeof newPoolMessageSchema>;\nexport type UpdatePoolMessage = z.infer<typeof updatePoolMessageSchema>;\nexport type RemovePoolMessage = z.infer<typeof removePoolMessageSchema>;\n",
|
|
52
|
-
"import { z } from 'zod';\nimport { PoolData } from '../../utils/schemas/EnrichedMarketData.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\n/**\n * Internal snake_case sort field values (used in SQL queries)\n */\nexport type SearchSortByInternal =\n | 'volume_24h'\n | 'market_cap'\n | 'created_at'\n | 'volume_1h'\n | 'fees_paid_5min'\n | 'fees_paid_1h'\n | 'fees_paid_24h'\n | 'volume_5min'\n | 'holders_count'\n | 'organic_volume_1h'\n | 'total_fees_paid_usd'\n | 'search_score'\n | 'trending_score_24h';\n\nexport const SearchParamsSchema = z.object({\n input: z.string(),\n type: z.enum(['tokens', 'assets', 'pairs']).optional(),\n filters: z\n .string()\n .optional()\n .transform((filtersString) => {\n if (!filtersString) return {};\n try {\n // Replace unquoted keys with quoted keys, but only match keys (not values)\n // Match pattern: (start of string, comma, or opening brace) + optional whitespace + unquoted key + optional whitespace + colon\n const parsed = JSON.parse(filtersString.replace(/(^|[,{]\\s*)([a-zA-Z0-9_]+)(\\s*):/g, '$1\"$2\"$3:')) as Record<\n string,\n unknown\n >;\n return {\n blockchains: parsed['blockchains'] || undefined,\n factory: parsed['factory'] || undefined,\n poolTypes: parsed['poolTypes'] || undefined,\n factoriesAddresses: parsed['factoriesAddresses'] || undefined,\n excludeBonded: parsed['excludeBonded'] || undefined,\n bondedOnly: parsed['bondedOnly'] || undefined,\n };\n } catch {\n return {};\n }\n })\n .pipe(\n z.object({\n blockchains: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .transform((blockchainsInput) => {\n if (!blockchainsInput) {\n return [];\n }\n\n // Handle array input (from JSON parse)\n const blockchainsString = Array.isArray(blockchainsInput) ? blockchainsInput.join(',') : blockchainsInput;\n\n return blockchainsString\n .split(',')\n .map((chain) => chain.trim())\n .filter((chain) => chain.length > 0);\n }),\n type: z.enum(['tokens', 'assets', 'pairs']).optional(),\n factory: z.string().optional(),\n poolTypes: z\n .string()\n .optional()\n .transform((poolTypesString) => {\n if (poolTypesString) {\n return poolTypesString?.split(',').map((poolType) => poolType.trim());\n }\n return [];\n }),\n factoriesAddresses: z\n .string()\n .optional()\n .transform((factoriesAddressesString) => {\n return factoriesAddressesString?.split(',').map((factoryAddress) => factoryAddress.trim());\n }),\n excludeBonded: z.coerce.boolean().optional().default(false),\n bondedOnly: z.coerce.boolean().optional().default(false),\n }),\n ),\n mode: z.enum(['trendings', 'og']).optional().default('trendings'),\n /**\n * Sort field for search results.\n * Accepts both camelCase (preferred) and snake_case (legacy) values.\n * All values are internally converted to snake_case for SQL queries.\n *\n * camelCase values (preferred):\n * - volume24h, marketCap, createdAt, volume1h, feesPaid5min, feesPaid1h,\n * - feesPaid24h, volume5min, holdersCount, organicVolume1h, totalFeesPaidUsd,\n * - searchScore, trendingScore24h\n *\n * snake_case values (legacy, for backwards compatibility):\n * - volume_24h, market_cap, created_at, etc.\n */\n sortBy: z\n .enum([\n // camelCase (preferred)\n 'volume24h',\n 'marketCap',\n 'createdAt',\n 'volume1h',\n 'feesPaid5min',\n 'feesPaid1h',\n 'feesPaid24h',\n 'volume5min',\n 'holdersCount',\n 'organicVolume1h',\n 'totalFeesPaidUsd',\n 'searchScore',\n 'trendingScore24h',\n // snake_case (legacy, for backwards compatibility)\n 'volume_24h',\n 'market_cap',\n 'created_at',\n 'volume_1h',\n 'fees_paid_5min',\n 'fees_paid_1h',\n 'fees_paid_24h',\n 'volume_5min',\n 'holders_count',\n 'organic_volume_1h',\n 'total_fees_paid_usd',\n 'search_score',\n 'trending_score_24h',\n ])\n .optional()\n .default('searchScore')\n .transform((val): SearchSortByInternal => {\n // Map camelCase to snake_case for SQL queries\n const mapping: Record<string, SearchSortByInternal> = {\n volume24h: 'volume_24h',\n marketCap: 'market_cap',\n createdAt: 'created_at',\n volume1h: 'volume_1h',\n feesPaid5min: 'fees_paid_5min',\n feesPaid1h: 'fees_paid_1h',\n feesPaid24h: 'fees_paid_24h',\n volume5min: 'volume_5min',\n holdersCount: 'holders_count',\n organicVolume1h: 'organic_volume_1h',\n totalFeesPaidUsd: 'total_fees_paid_usd',\n searchScore: 'search_score',\n trendingScore24h: 'trending_score_24h',\n };\n return mapping[val] ?? (val as SearchSortByInternal);\n }),\n excludeBonded: z.coerce.boolean().optional(),\n limit: z.coerce.number().min(1).max(20).optional().default(5),\n});\n\nexport type SearchParams = z.input<typeof SearchParamsSchema>;\nexport type SearchInferType = z.infer<typeof SearchParamsSchema>;\n\nconst TokenSchema = z.object({\n address: z.string(),\n price: z.number().nullable(),\n priceToken: z.number(),\n priceTokenString: z.string(),\n approximateReserveUSD: z.number(),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.number(),\n symbol: z.string(),\n name: z.string(),\n id: z.number().nullable().optional(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n chainId: z.string(),\n logo: z.string().nullable(),\n});\n\nconst PairSchema = z\n .object({\n token0: TokenSchema,\n token1: TokenSchema,\n volume24h: z.number(),\n liquidity: z.number(),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n baseToken: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n quoteToken: z.string(),\n price: z.number().nullable(),\n priceToken: z.number(),\n priceTokenString: z.string(),\n extraData: z.record(z.any()).nullable(),\n })\n .optional();\n\nconst TokenDataSchema = z.object({\n logo: z.string().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.array(z.number().optional()),\n volume_24h: z.number().optional(),\n price_change_24h: z.number().optional(),\n price_change_1h: z.number().optional(),\n blockchains: z.array(z.string().optional()),\n contracts: z.array(z.string().optional()),\n price: z.number().nullable(),\n total_supply: z.number(),\n market_cap: z.number(),\n pairs: z.array(PairSchema),\n type: z.literal('token'),\n});\n\nconst AssetDataSchema = z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n contracts: z.array(z.string().optional()),\n blockchains: z.array(z.string().optional()),\n decimals: z.array(z.number().optional()),\n twitter: z.string().nullable().optional(),\n website: z.string().nullable().optional(),\n logo: z.string().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n total_supply: z.number(),\n liquidity: z.number(),\n volume: z.number(),\n pairs: z.array(PairSchema),\n type: z.literal('asset'),\n price_change_24h: z.number().nullable(),\n price_change_1h: z.number().nullable(),\n});\n\nexport const SearchResponseSchema = z.object({\n data: z.array(z.union([TokenDataSchema, AssetDataSchema, PoolData])),\n});\n\nexport type SearchResponse = z.infer<typeof SearchResponseSchema>;\n\nexport const SearchFastResponseSchema = z.object({\n data: z.array(TokenDetailsOutput),\n});\n\nexport type SearchFastResponse = z.infer<typeof SearchFastResponseSchema>;\n",
|
|
53
|
-
"import { z } from 'zod';\nimport { HoldersStatsSchema } from './EnrichedHoldersData.ts';\nimport { TokenTypeSchema } from './EnrichedMarketData.ts';\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\nexport const TokenDetailsOutput = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n priceUSD: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCapUSD: z.coerce.number().default(0),\n marketCapDilutedUSD: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n originLogoUrl: z.string().nullable().optional(),\n rank: z.coerce.number().nullable().default(null),\n cexs: z.array(z.string()).default([]),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n\n liquidityUSD: z.coerce.number().optional(),\n liquidityMaxUSD: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n tokenType: TokenTypeSchema,\n\n deployer: z.string().nullable().optional(),\n bondedAt: z.coerce.date().nullable(),\n athUSD: z.coerce.number().optional(),\n atlUSD: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n\n priceChange1minPercentage: z.coerce.number().default(0),\n priceChange5minPercentage: z.coerce.number().default(0),\n priceChange1hPercentage: z.coerce.number().default(0),\n priceChange4hPercentage: z.coerce.number().default(0),\n priceChange6hPercentage: z.coerce.number().default(0),\n priceChange12hPercentage: z.coerce.number().default(0),\n priceChange24hPercentage: z.coerce.number().default(0),\n\n volume1minUSD: z.coerce.number().default(0),\n volume5minUSD: z.coerce.number().default(0),\n volume15minUSD: z.coerce.number().default(0),\n volume1hUSD: z.coerce.number().default(0),\n volume4hUSD: z.coerce.number().default(0),\n volume6hUSD: z.coerce.number().default(0),\n volume12hUSD: z.coerce.number().default(0),\n volume24hUSD: z.coerce.number().default(0),\n\n volumeBuy1minUSD: z.coerce.number().default(0),\n volumeBuy5minUSD: z.coerce.number().default(0),\n volumeBuy15minUSD: z.coerce.number().default(0),\n volumeBuy1hUSD: z.coerce.number().default(0),\n volumeBuy4hUSD: z.coerce.number().default(0),\n volumeBuy6hUSD: z.coerce.number().default(0),\n volumeBuy12hUSD: z.coerce.number().default(0),\n volumeBuy24hUSD: z.coerce.number().default(0),\n\n volumeSell1minUSD: z.coerce.number().default(0),\n volumeSell5minUSD: z.coerce.number().default(0),\n volumeSell15minUSD: z.coerce.number().default(0),\n volumeSell1hUSD: z.coerce.number().default(0),\n volumeSell4hUSD: z.coerce.number().default(0),\n volumeSell6hUSD: z.coerce.number().default(0),\n volumeSell12hUSD: z.coerce.number().default(0),\n volumeSell24hUSD: z.coerce.number().default(0),\n\n trades1min: z.coerce.number().default(0),\n trades5min: z.coerce.number().default(0),\n trades15min: z.coerce.number().default(0),\n trades1h: z.coerce.number().default(0),\n trades4h: z.coerce.number().default(0),\n trades6h: z.coerce.number().default(0),\n trades12h: z.coerce.number().default(0),\n trades24h: z.coerce.number().default(0),\n\n buys1min: z.coerce.number().default(0),\n buys5min: z.coerce.number().default(0),\n buys15min: z.coerce.number().default(0),\n buys1h: z.coerce.number().default(0),\n buys4h: z.coerce.number().default(0),\n buys6h: z.coerce.number().default(0),\n buys12h: z.coerce.number().default(0),\n buys24h: z.coerce.number().default(0),\n\n sells1min: z.coerce.number().default(0),\n sells5min: z.coerce.number().default(0),\n sells15min: z.coerce.number().default(0),\n sells1h: z.coerce.number().default(0),\n sells4h: z.coerce.number().default(0),\n sells6h: z.coerce.number().default(0),\n sells12h: z.coerce.number().default(0),\n sells24h: z.coerce.number().default(0),\n\n buyers1min: z.coerce.number().default(0),\n buyers5min: z.coerce.number().default(0),\n buyers15min: z.coerce.number().default(0),\n buyers1h: z.coerce.number().default(0),\n buyers4h: z.coerce.number().default(0),\n buyers6h: z.coerce.number().default(0),\n buyers12h: z.coerce.number().default(0),\n buyers24h: z.coerce.number().default(0),\n\n sellers1min: z.coerce.number().default(0),\n sellers5min: z.coerce.number().default(0),\n sellers15min: z.coerce.number().default(0),\n sellers1h: z.coerce.number().default(0),\n sellers4h: z.coerce.number().default(0),\n sellers6h: z.coerce.number().default(0),\n sellers12h: z.coerce.number().default(0),\n sellers24h: z.coerce.number().default(0),\n\n traders1min: z.coerce.number().default(0),\n traders5min: z.coerce.number().default(0),\n traders15min: z.coerce.number().default(0),\n traders1h: z.coerce.number().default(0),\n traders4h: z.coerce.number().default(0),\n traders6h: z.coerce.number().default(0),\n traders12h: z.coerce.number().default(0),\n traders24h: z.coerce.number().default(0),\n\n feesPaid1minUSD: z.coerce.number().default(0),\n feesPaid5minUSD: z.coerce.number().default(0),\n feesPaid15minUSD: z.coerce.number().default(0),\n feesPaid1hUSD: z.coerce.number().default(0),\n feesPaid4hUSD: z.coerce.number().default(0),\n feesPaid6hUSD: z.coerce.number().default(0),\n feesPaid12hUSD: z.coerce.number().default(0),\n feesPaid24hUSD: z.coerce.number().default(0),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.string().default('0'),\n\n organicTrades1min: z.coerce.number().default(0),\n organicTrades5min: z.coerce.number().default(0),\n organicTrades15min: z.coerce.number().default(0),\n organicTrades1h: z.coerce.number().default(0),\n organicTrades4h: z.coerce.number().default(0),\n organicTrades6h: z.coerce.number().default(0),\n organicTrades12h: z.coerce.number().default(0),\n organicTrades24h: z.coerce.number().default(0),\n\n organicTraders1min: z.coerce.number().default(0),\n organicTraders5min: z.coerce.number().default(0),\n organicTraders15min: z.coerce.number().default(0),\n organicTraders1h: z.coerce.number().default(0),\n organicTraders4h: z.coerce.number().default(0),\n organicTraders6h: z.coerce.number().default(0),\n organicTraders12h: z.coerce.number().default(0),\n organicTraders24h: z.coerce.number().default(0),\n\n organicVolume1minUSD: z.coerce.number().default(0),\n organicVolume5minUSD: z.coerce.number().default(0),\n organicVolume15minUSD: z.coerce.number().default(0),\n organicVolume1hUSD: z.coerce.number().default(0),\n organicVolume4hUSD: z.coerce.number().default(0),\n organicVolume6hUSD: z.coerce.number().default(0),\n organicVolume12hUSD: z.coerce.number().default(0),\n organicVolume24hUSD: z.coerce.number().default(0),\n\n organicVolumeBuy1minUSD: z.coerce.number().default(0),\n organicVolumeBuy5minUSD: z.coerce.number().default(0),\n organicVolumeBuy15minUSD: z.coerce.number().default(0),\n organicVolumeBuy1hUSD: z.coerce.number().default(0),\n organicVolumeBuy4hUSD: z.coerce.number().default(0),\n organicVolumeBuy6hUSD: z.coerce.number().default(0),\n organicVolumeBuy12hUSD: z.coerce.number().default(0),\n organicVolumeBuy24hUSD: z.coerce.number().default(0),\n\n organicVolumeSell1minUSD: z.coerce.number().default(0),\n organicVolumeSell5minUSD: z.coerce.number().default(0),\n organicVolumeSell15minUSD: z.coerce.number().default(0),\n organicVolumeSell1hUSD: z.coerce.number().default(0),\n organicVolumeSell4hUSD: z.coerce.number().default(0),\n organicVolumeSell6hUSD: z.coerce.number().default(0),\n organicVolumeSell12hUSD: z.coerce.number().default(0),\n organicVolumeSell24hUSD: z.coerce.number().default(0),\n\n organicBuys1min: z.coerce.number().default(0),\n organicBuys5min: z.coerce.number().default(0),\n organicBuys15min: z.coerce.number().default(0),\n organicBuys1h: z.coerce.number().default(0),\n organicBuys4h: z.coerce.number().default(0),\n organicBuys6h: z.coerce.number().default(0),\n organicBuys12h: z.coerce.number().default(0),\n organicBuys24h: z.coerce.number().default(0),\n\n organicSells1min: z.coerce.number().default(0),\n organicSells5min: z.coerce.number().default(0),\n organicSells15min: z.coerce.number().default(0),\n organicSells1h: z.coerce.number().default(0),\n organicSells4h: z.coerce.number().default(0),\n organicSells6h: z.coerce.number().default(0),\n organicSells12h: z.coerce.number().default(0),\n organicSells24h: z.coerce.number().default(0),\n\n organicBuyers1min: z.coerce.number().default(0),\n organicBuyers5min: z.coerce.number().default(0),\n organicBuyers15min: z.coerce.number().default(0),\n organicBuyers1h: z.coerce.number().default(0),\n organicBuyers4h: z.coerce.number().default(0),\n organicBuyers6h: z.coerce.number().default(0),\n organicBuyers12h: z.coerce.number().default(0),\n organicBuyers24h: z.coerce.number().default(0),\n\n organicSellers1min: z.coerce.number().default(0),\n organicSellers5min: z.coerce.number().default(0),\n organicSellers15min: z.coerce.number().default(0),\n organicSellers1h: z.coerce.number().default(0),\n organicSellers4h: z.coerce.number().default(0),\n organicSellers6h: z.coerce.number().default(0),\n organicSellers12h: z.coerce.number().default(0),\n organicSellers24h: z.coerce.number().default(0),\n\n createdAt: z.coerce.date().nullable(),\n latestTradeDate: z.coerce.date().nullable(),\n\n holdersCount: z.coerce.number().default(0),\n\n description: z.string().nullable(),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n\n security: SecurityFlagsSchema.nullable(),\n\n twitterReusesCount: z.coerce.number().nullable().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n lastChecked: z.string(),\n }),\n )\n .default([]),\n\n deployerMigrationsCount: z.coerce.number().default(0),\n deployerTokensCount: z.coerce.number().default(0),\n dexscreenerListed: z.boolean().nullable().default(false),\n dexscreenerHeader: z.string().nullable().default(null),\n dexscreenerAdPaid: z.boolean().nullable().default(false),\n dexscreenerAdPaidDate: z.coerce.date().nullable().default(null),\n dexscreenerSocialPaid: z.boolean().nullable().default(false),\n dexscreenerSocialPaidDate: z.coerce.date().nullable().default(null),\n\n liveStatus: z.string().nullable(),\n liveThumbnail: z.string().nullable(),\n livestreamTitle: z.string().nullable(),\n liveReplyCount: z.number().nullable(),\n dexscreenerBoosted: z.boolean().nullable().default(false),\n dexscreenerBoostedDate: z.coerce.date().nullable().default(null),\n dexscreenerBoostedAmount: z.number().nullable().default(0),\n\n // Trending score fields\n trendingScore1min: z.coerce.number().default(0),\n trendingScore5min: z.coerce.number().default(0),\n trendingScore15min: z.coerce.number().default(0),\n trendingScore1h: z.coerce.number().default(0),\n trendingScore4h: z.coerce.number().default(0),\n trendingScore6h: z.coerce.number().default(0),\n trendingScore12h: z.coerce.number().default(0),\n trendingScore24h: z.coerce.number().default(0),\n })\n .merge(HoldersStatsSchema);\n\nexport type TokenDetailsOutputType = z.infer<typeof TokenDetailsOutput>;\n",
|
|
54
|
+
"import { z } from 'zod';\nimport { PoolData } from '../../utils/schemas/EnrichedMarketData.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\n/**\n * Internal snake_case sort field values (used in SQL queries)\n */\nexport type SearchSortByInternal =\n | 'volume_24h'\n | 'market_cap'\n | 'created_at'\n | 'volume_1h'\n | 'fees_paid_5min'\n | 'fees_paid_1h'\n | 'fees_paid_24h'\n | 'volume_5min'\n | 'holders_count'\n | 'organic_volume_1h'\n | 'total_fees_paid_usd'\n | 'search_score'\n | 'trending_score_24h';\n\nexport const SearchParamsSchema = z.object({\n input: z.string(),\n type: z.enum(['tokens', 'assets', 'pairs']).optional(),\n filters: z\n .string()\n .optional()\n .transform((filtersString) => {\n if (!filtersString) return {};\n try {\n // Replace unquoted keys with quoted keys, but only match keys (not values)\n // Match pattern: (start of string, comma, or opening brace) + optional whitespace + unquoted key + optional whitespace + colon\n const parsed = JSON.parse(filtersString.replace(/(^|[,{]\\s*)([a-zA-Z0-9_]+)(\\s*):/g, '$1\"$2\"$3:')) as Record<\n string,\n unknown\n >;\n return {\n blockchains: parsed['blockchains'] || undefined,\n factory: parsed['factory'] || undefined,\n poolTypes: parsed['poolTypes'] || undefined,\n factoriesAddresses: parsed['factoriesAddresses'] || undefined,\n excludeBonded: parsed['excludeBonded'] || undefined,\n bondedOnly: parsed['bondedOnly'] || undefined,\n };\n } catch {\n return {};\n }\n })\n .pipe(\n z.object({\n blockchains: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .transform((blockchainsInput) => {\n if (!blockchainsInput) {\n return [];\n }\n\n // Handle array input (from JSON parse)\n const blockchainsString = Array.isArray(blockchainsInput) ? blockchainsInput.join(',') : blockchainsInput;\n\n return blockchainsString\n .split(',')\n .map((chain) => chain.trim())\n .filter((chain) => chain.length > 0);\n }),\n type: z.enum(['tokens', 'assets', 'pairs']).optional(),\n factory: z.string().optional(),\n poolTypes: z\n .string()\n .optional()\n .transform((poolTypesString) => {\n if (poolTypesString) {\n return poolTypesString?.split(',').map((poolType) => poolType.trim());\n }\n return [];\n }),\n factoriesAddresses: z\n .string()\n .optional()\n .transform((factoriesAddressesString) => {\n return factoriesAddressesString?.split(',').map((factoryAddress) => factoryAddress.trim());\n }),\n excludeBonded: z.coerce.boolean().optional().default(false),\n bondedOnly: z.coerce.boolean().optional().default(false),\n }),\n ),\n mode: z.enum(['trendings', 'og']).optional().default('trendings'),\n /**\n * Sort field for search results.\n * Accepts both camelCase (preferred) and snake_case (legacy) values.\n * All values are internally converted to snake_case for SQL queries.\n *\n * camelCase values (preferred):\n * - volume24h, marketCap, createdAt, volume1h, feesPaid5min, feesPaid1h,\n * - feesPaid24h, volume5min, holdersCount, organicVolume1h, totalFeesPaidUsd,\n * - searchScore, trendingScore24h\n *\n * snake_case values (legacy, for backwards compatibility):\n * - volume_24h, market_cap, created_at, etc.\n */\n sortBy: z\n .enum([\n // camelCase (preferred)\n 'volume24h',\n 'marketCap',\n 'createdAt',\n 'volume1h',\n 'feesPaid5min',\n 'feesPaid1h',\n 'feesPaid24h',\n 'volume5min',\n 'holdersCount',\n 'organicVolume1h',\n 'totalFeesPaidUsd',\n 'searchScore',\n 'trendingScore24h',\n // snake_case (legacy, for backwards compatibility)\n 'volume_24h',\n 'market_cap',\n 'created_at',\n 'volume_1h',\n 'fees_paid_5min',\n 'fees_paid_1h',\n 'fees_paid_24h',\n 'volume_5min',\n 'holders_count',\n 'organic_volume_1h',\n 'total_fees_paid_usd',\n 'search_score',\n 'trending_score_24h',\n ])\n .optional()\n .default('searchScore')\n .transform((val): SearchSortByInternal => {\n // Map camelCase to snake_case for SQL queries\n const mapping: Record<string, SearchSortByInternal> = {\n volume24h: 'volume_24h',\n marketCap: 'market_cap',\n createdAt: 'created_at',\n volume1h: 'volume_1h',\n feesPaid5min: 'fees_paid_5min',\n feesPaid1h: 'fees_paid_1h',\n feesPaid24h: 'fees_paid_24h',\n volume5min: 'volume_5min',\n holdersCount: 'holders_count',\n organicVolume1h: 'organic_volume_1h',\n totalFeesPaidUsd: 'total_fees_paid_usd',\n searchScore: 'search_score',\n trendingScore24h: 'trending_score_24h',\n };\n return mapping[val] ?? (val as SearchSortByInternal);\n }),\n excludeBonded: z.coerce.boolean().optional(),\n limit: z.coerce.number().min(1).max(20).optional().default(5),\n});\n\nexport type SearchParams = z.input<typeof SearchParamsSchema>;\nexport type SearchInferType = z.infer<typeof SearchParamsSchema>;\n\n// OpenAPI variant: only expose camelCase sortBy values, hide 'og' mode\nexport const SearchParamsSchemaOpenAPI = z.object({\n input: z.string().describe('Search query string'),\n type: z.enum(['tokens', 'assets', 'pairs']).optional().describe('Type of results to return'),\n filters: z\n .string()\n .optional()\n .describe('JSON string with filter options: blockchains, poolTypes, excludeBonded, bondedOnly'),\n sortBy: z\n .enum([\n 'volume24h',\n 'marketCap',\n 'createdAt',\n 'volume1h',\n 'feesPaid5min',\n 'feesPaid1h',\n 'feesPaid24h',\n 'volume5min',\n 'holdersCount',\n 'organicVolume1h',\n 'totalFeesPaidUsd',\n 'searchScore',\n 'trendingScore24h',\n ])\n .optional()\n .describe('Sort field for search results'),\n excludeBonded: z.boolean().optional().describe('Exclude bonded tokens from results'),\n limit: z.number().optional().describe('Maximum number of results (1-20, default: 5)'),\n});\n\nconst TokenSchema = z.object({\n address: z.string(),\n price: z.number().nullable(),\n priceToken: z.number(),\n priceTokenString: z.string(),\n approximateReserveUSD: z.number(),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.number(),\n symbol: z.string(),\n name: z.string(),\n id: z.number().nullable().optional(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n chainId: z.string(),\n logo: z.string().nullable(),\n});\n\nconst PairSchema = z\n .object({\n token0: TokenSchema,\n token1: TokenSchema,\n volume24h: z.number(),\n liquidity: z.number(),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n baseToken: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n quoteToken: z.string(),\n price: z.number().nullable(),\n priceToken: z.number(),\n priceTokenString: z.string(),\n extraData: z.record(z.any()).nullable(),\n })\n .optional();\n\nconst TokenDataSchema = z.object({\n logo: z.string().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.array(z.number().optional()),\n volume_24h: z.number().optional(),\n price_change_24h: z.number().optional(),\n price_change_1h: z.number().optional(),\n blockchains: z.array(z.string().optional()),\n contracts: z.array(z.string().optional()),\n price: z.number().nullable(),\n total_supply: z.number(),\n market_cap: z.number(),\n pairs: z.array(PairSchema),\n type: z.literal('token'),\n});\n\nconst AssetDataSchema = z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n contracts: z.array(z.string().optional()),\n blockchains: z.array(z.string().optional()),\n decimals: z.array(z.number().optional()),\n twitter: z.string().nullable().optional(),\n website: z.string().nullable().optional(),\n logo: z.string().nullable(),\n price: z.number().nullable(),\n market_cap: z.number(),\n total_supply: z.number(),\n liquidity: z.number(),\n volume: z.number(),\n pairs: z.array(PairSchema),\n type: z.literal('asset'),\n price_change_24h: z.number().nullable(),\n price_change_1h: z.number().nullable(),\n});\n\nexport const SearchResponseSchema = z.object({\n data: z.array(z.union([TokenDataSchema, AssetDataSchema, PoolData])),\n});\n\nexport type SearchResponse = z.infer<typeof SearchResponseSchema>;\n\nexport const SearchFastResponseSchema = z.object({\n data: z.array(TokenDetailsOutput),\n});\n\nexport type SearchFastResponse = z.infer<typeof SearchFastResponseSchema>;\n",
|
|
55
|
+
"import { z } from 'zod';\nimport { HoldersStatsSchema } from './EnrichedHoldersData.ts';\nimport { TokenTypeSchema } from './EnrichedMarketData.ts';\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\nexport const TokenDetailsOutput = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n priceUSD: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCapUSD: z.coerce.number().default(0),\n marketCapDilutedUSD: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n originLogoUrl: z.string().nullable().optional(),\n rank: z.coerce.number().nullable().default(null),\n cexs: z.array(z.string()).default([]),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n sourceMetadata: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .nullable()\n .optional(),\n\n liquidityUSD: z.coerce.number().optional(),\n liquidityMaxUSD: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n tokenType: TokenTypeSchema,\n\n deployer: z.string().nullable().optional(),\n bondedAt: z.coerce.date().nullable(),\n athUSD: z.coerce.number().optional(),\n atlUSD: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n\n priceChange1minPercentage: z.coerce.number().default(0),\n priceChange5minPercentage: z.coerce.number().default(0),\n priceChange1hPercentage: z.coerce.number().default(0),\n priceChange4hPercentage: z.coerce.number().default(0),\n priceChange6hPercentage: z.coerce.number().default(0),\n priceChange12hPercentage: z.coerce.number().default(0),\n priceChange24hPercentage: z.coerce.number().default(0),\n\n volume1minUSD: z.coerce.number().default(0),\n volume5minUSD: z.coerce.number().default(0),\n volume15minUSD: z.coerce.number().default(0),\n volume1hUSD: z.coerce.number().default(0),\n volume4hUSD: z.coerce.number().default(0),\n volume6hUSD: z.coerce.number().default(0),\n volume12hUSD: z.coerce.number().default(0),\n volume24hUSD: z.coerce.number().default(0),\n\n volumeBuy1minUSD: z.coerce.number().default(0),\n volumeBuy5minUSD: z.coerce.number().default(0),\n volumeBuy15minUSD: z.coerce.number().default(0),\n volumeBuy1hUSD: z.coerce.number().default(0),\n volumeBuy4hUSD: z.coerce.number().default(0),\n volumeBuy6hUSD: z.coerce.number().default(0),\n volumeBuy12hUSD: z.coerce.number().default(0),\n volumeBuy24hUSD: z.coerce.number().default(0),\n\n volumeSell1minUSD: z.coerce.number().default(0),\n volumeSell5minUSD: z.coerce.number().default(0),\n volumeSell15minUSD: z.coerce.number().default(0),\n volumeSell1hUSD: z.coerce.number().default(0),\n volumeSell4hUSD: z.coerce.number().default(0),\n volumeSell6hUSD: z.coerce.number().default(0),\n volumeSell12hUSD: z.coerce.number().default(0),\n volumeSell24hUSD: z.coerce.number().default(0),\n\n trades1min: z.coerce.number().default(0),\n trades5min: z.coerce.number().default(0),\n trades15min: z.coerce.number().default(0),\n trades1h: z.coerce.number().default(0),\n trades4h: z.coerce.number().default(0),\n trades6h: z.coerce.number().default(0),\n trades12h: z.coerce.number().default(0),\n trades24h: z.coerce.number().default(0),\n\n buys1min: z.coerce.number().default(0),\n buys5min: z.coerce.number().default(0),\n buys15min: z.coerce.number().default(0),\n buys1h: z.coerce.number().default(0),\n buys4h: z.coerce.number().default(0),\n buys6h: z.coerce.number().default(0),\n buys12h: z.coerce.number().default(0),\n buys24h: z.coerce.number().default(0),\n\n sells1min: z.coerce.number().default(0),\n sells5min: z.coerce.number().default(0),\n sells15min: z.coerce.number().default(0),\n sells1h: z.coerce.number().default(0),\n sells4h: z.coerce.number().default(0),\n sells6h: z.coerce.number().default(0),\n sells12h: z.coerce.number().default(0),\n sells24h: z.coerce.number().default(0),\n\n buyers1min: z.coerce.number().default(0),\n buyers5min: z.coerce.number().default(0),\n buyers15min: z.coerce.number().default(0),\n buyers1h: z.coerce.number().default(0),\n buyers4h: z.coerce.number().default(0),\n buyers6h: z.coerce.number().default(0),\n buyers12h: z.coerce.number().default(0),\n buyers24h: z.coerce.number().default(0),\n\n sellers1min: z.coerce.number().default(0),\n sellers5min: z.coerce.number().default(0),\n sellers15min: z.coerce.number().default(0),\n sellers1h: z.coerce.number().default(0),\n sellers4h: z.coerce.number().default(0),\n sellers6h: z.coerce.number().default(0),\n sellers12h: z.coerce.number().default(0),\n sellers24h: z.coerce.number().default(0),\n\n traders1min: z.coerce.number().default(0),\n traders5min: z.coerce.number().default(0),\n traders15min: z.coerce.number().default(0),\n traders1h: z.coerce.number().default(0),\n traders4h: z.coerce.number().default(0),\n traders6h: z.coerce.number().default(0),\n traders12h: z.coerce.number().default(0),\n traders24h: z.coerce.number().default(0),\n\n feesPaid1minUSD: z.coerce.number().default(0),\n feesPaid5minUSD: z.coerce.number().default(0),\n feesPaid15minUSD: z.coerce.number().default(0),\n feesPaid1hUSD: z.coerce.number().default(0),\n feesPaid4hUSD: z.coerce.number().default(0),\n feesPaid6hUSD: z.coerce.number().default(0),\n feesPaid12hUSD: z.coerce.number().default(0),\n feesPaid24hUSD: z.coerce.number().default(0),\n totalFeesPaidUSD: z.coerce.number().default(0),\n totalFeesPaidNativeRaw: z.coerce.string().default('0'),\n\n organicTrades1min: z.coerce.number().default(0),\n organicTrades5min: z.coerce.number().default(0),\n organicTrades15min: z.coerce.number().default(0),\n organicTrades1h: z.coerce.number().default(0),\n organicTrades4h: z.coerce.number().default(0),\n organicTrades6h: z.coerce.number().default(0),\n organicTrades12h: z.coerce.number().default(0),\n organicTrades24h: z.coerce.number().default(0),\n\n organicTraders1min: z.coerce.number().default(0),\n organicTraders5min: z.coerce.number().default(0),\n organicTraders15min: z.coerce.number().default(0),\n organicTraders1h: z.coerce.number().default(0),\n organicTraders4h: z.coerce.number().default(0),\n organicTraders6h: z.coerce.number().default(0),\n organicTraders12h: z.coerce.number().default(0),\n organicTraders24h: z.coerce.number().default(0),\n\n organicVolume1minUSD: z.coerce.number().default(0),\n organicVolume5minUSD: z.coerce.number().default(0),\n organicVolume15minUSD: z.coerce.number().default(0),\n organicVolume1hUSD: z.coerce.number().default(0),\n organicVolume4hUSD: z.coerce.number().default(0),\n organicVolume6hUSD: z.coerce.number().default(0),\n organicVolume12hUSD: z.coerce.number().default(0),\n organicVolume24hUSD: z.coerce.number().default(0),\n\n organicVolumeBuy1minUSD: z.coerce.number().default(0),\n organicVolumeBuy5minUSD: z.coerce.number().default(0),\n organicVolumeBuy15minUSD: z.coerce.number().default(0),\n organicVolumeBuy1hUSD: z.coerce.number().default(0),\n organicVolumeBuy4hUSD: z.coerce.number().default(0),\n organicVolumeBuy6hUSD: z.coerce.number().default(0),\n organicVolumeBuy12hUSD: z.coerce.number().default(0),\n organicVolumeBuy24hUSD: z.coerce.number().default(0),\n\n organicVolumeSell1minUSD: z.coerce.number().default(0),\n organicVolumeSell5minUSD: z.coerce.number().default(0),\n organicVolumeSell15minUSD: z.coerce.number().default(0),\n organicVolumeSell1hUSD: z.coerce.number().default(0),\n organicVolumeSell4hUSD: z.coerce.number().default(0),\n organicVolumeSell6hUSD: z.coerce.number().default(0),\n organicVolumeSell12hUSD: z.coerce.number().default(0),\n organicVolumeSell24hUSD: z.coerce.number().default(0),\n\n organicBuys1min: z.coerce.number().default(0),\n organicBuys5min: z.coerce.number().default(0),\n organicBuys15min: z.coerce.number().default(0),\n organicBuys1h: z.coerce.number().default(0),\n organicBuys4h: z.coerce.number().default(0),\n organicBuys6h: z.coerce.number().default(0),\n organicBuys12h: z.coerce.number().default(0),\n organicBuys24h: z.coerce.number().default(0),\n\n organicSells1min: z.coerce.number().default(0),\n organicSells5min: z.coerce.number().default(0),\n organicSells15min: z.coerce.number().default(0),\n organicSells1h: z.coerce.number().default(0),\n organicSells4h: z.coerce.number().default(0),\n organicSells6h: z.coerce.number().default(0),\n organicSells12h: z.coerce.number().default(0),\n organicSells24h: z.coerce.number().default(0),\n\n organicBuyers1min: z.coerce.number().default(0),\n organicBuyers5min: z.coerce.number().default(0),\n organicBuyers15min: z.coerce.number().default(0),\n organicBuyers1h: z.coerce.number().default(0),\n organicBuyers4h: z.coerce.number().default(0),\n organicBuyers6h: z.coerce.number().default(0),\n organicBuyers12h: z.coerce.number().default(0),\n organicBuyers24h: z.coerce.number().default(0),\n\n organicSellers1min: z.coerce.number().default(0),\n organicSellers5min: z.coerce.number().default(0),\n organicSellers15min: z.coerce.number().default(0),\n organicSellers1h: z.coerce.number().default(0),\n organicSellers4h: z.coerce.number().default(0),\n organicSellers6h: z.coerce.number().default(0),\n organicSellers12h: z.coerce.number().default(0),\n organicSellers24h: z.coerce.number().default(0),\n\n createdAt: z.coerce.date().nullable(),\n latestTradeDate: z.coerce.date().nullable(),\n\n holdersCount: z.coerce.number().default(0),\n\n description: z.string().nullable(),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n\n security: SecurityFlagsSchema.nullable(),\n\n twitterReusesCount: z.coerce.number().nullable().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n lastChecked: z.string(),\n }),\n )\n .default([]),\n\n deployerMigrationsCount: z.coerce.number().default(0),\n deployerTokensCount: z.coerce.number().default(0),\n dexscreenerListed: z.boolean().nullable().default(false),\n dexscreenerHeader: z.string().nullable().default(null),\n dexscreenerAdPaid: z.boolean().nullable().default(false),\n dexscreenerAdPaidDate: z.coerce.date().nullable().default(null),\n dexscreenerSocialPaid: z.boolean().nullable().default(false),\n dexscreenerSocialPaidDate: z.coerce.date().nullable().default(null),\n\n liveStatus: z.string().nullable(),\n liveThumbnail: z.string().nullable(),\n livestreamTitle: z.string().nullable(),\n liveReplyCount: z.number().nullable(),\n dexscreenerBoosted: z.boolean().nullable().default(false),\n dexscreenerBoostedDate: z.coerce.date().nullable().default(null),\n dexscreenerBoostedAmount: z.number().nullable().default(0),\n\n // Trending score fields\n trendingScore1min: z.coerce.number().default(0),\n trendingScore5min: z.coerce.number().default(0),\n trendingScore15min: z.coerce.number().default(0),\n trendingScore1h: z.coerce.number().default(0),\n trendingScore4h: z.coerce.number().default(0),\n trendingScore6h: z.coerce.number().default(0),\n trendingScore12h: z.coerce.number().default(0),\n trendingScore24h: z.coerce.number().default(0),\n\n isMayhemMode: z.boolean().nullable().default(null),\n isCashbackCoin: z.boolean().nullable().default(null),\n isAgentMode: z.boolean().nullable().default(null),\n })\n .merge(HoldersStatsSchema);\n\nexport type TokenDetailsOutputType = z.infer<typeof TokenDetailsOutput>;\n",
|
|
54
56
|
"import { z } from 'zod';\n\nexport const TokenFirstBuyersParamsSchema = z.object({\n blockchain: z.string().optional(),\n asset: z.string(),\n limit: z.coerce.number().max(100).min(1).optional().default(70),\n});\n\nexport type TokenFirstBuyersParams = z.input<typeof TokenFirstBuyersParamsSchema>;\n\nexport const TokenFirstBuyersResponseSchema = z.object({\n data: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n initialAmount: z.string(),\n currentBalance: z.string(),\n firstHoldingDate: z.coerce.date(),\n tags: z.array(z.string()),\n lastUpdate: z.coerce.date().nullable().optional(),\n }),\n ),\n});\n\nexport type TokenFirstBuyersResponse = z.infer<typeof TokenFirstBuyersResponseSchema>;\n",
|
|
55
57
|
"import { z } from 'zod';\n\nexport const WalletBalanceUSDParamsSchema = z.object({\n portfolioId: z.string().min(1, 'portfolioId is required').regex(/^\\d+$/, 'portfolioId must be a valid number'),\n});\n\nexport type WalletBalanceUSDParams = z.input<typeof WalletBalanceUSDParamsSchema>;\n\nexport const WalletBalanceUSDResponseSchema = z.object({\n success: z.number(),\n});\n\nexport type WalletBalanceUSDResponse = z.infer<typeof WalletBalanceUSDResponseSchema>;\n",
|
|
56
58
|
"import { z } from 'zod';\nimport { TokenDetailsOutput } from './TokenDetailsOutput.ts';\n\nexport const FundingInfoSchema = z.object({\n from: z.string().nullable(),\n date: z.coerce.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n});\n\nexport type FundingInfo = z.infer<typeof FundingInfoSchema>;\n\n// Wallet-level metadata (funding info, global labels from scraping_wallets)\nexport const WalletMetadataSchema = z.object({\n fundingInfo: FundingInfoSchema.nullable().default(null),\n // Entity from scraping_wallets (e.g., \"binance\", \"raydium\")\n entity: z.string().nullable().default(null),\n // Multiple labels possible per wallet (e.g., [\"LP\", \"CEX\"])\n labels: z.array(z.string()).default([]),\n});\n\nexport type WalletMetadata = z.infer<typeof WalletMetadataSchema>;\n\nexport const tokenPositionSchema = z.object({\n token: TokenDetailsOutput,\n balance: z.number(),\n rawBalance: z.string(),\n amountUSD: z.number(),\n buys: z.number(),\n sells: z.number(),\n volumeBuyToken: z.number(),\n volumeSellToken: z.number(),\n volumeBuy: z.number(),\n volumeSell: z.number(),\n avgBuyPriceUSD: z.number(),\n avgSellPriceUSD: z.number(),\n realizedPnlUSD: z.number(),\n unrealizedPnlUSD: z.number(),\n totalPnlUSD: z.number(),\n /** Total fees paid on this position (gas + platform + mev fees) - only present when using swap recipient mode */\n totalFeesPaidUSD: z.number().optional(),\n firstDate: z.coerce.date().nullable(),\n lastDate: z.coerce.date().nullable(),\n // Token-specific labels (bundler, sniper, insider, etc.)\n labels: z.array(z.string()).nullable().default([]),\n});\n\nexport const walletDeployerOutputSchema = z.object({\n data: z.array(tokenPositionSchema),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n // Wallet-level metadata (funding info, global labels)\n wallet: WalletMetadataSchema.optional(),\n});\n\nexport const WalletDeployerQuery = z.object({\n wallet: z.string(),\n blockchain: z.string(),\n page: z\n .string()\n .default('1')\n .transform((val) => {\n const parsed = Number.parseInt(val, 10);\n return parsed > 0 ? parsed : 1;\n }),\n\n limit: z\n .string()\n .default('20')\n .transform((val) => {\n const parsed = Number.parseInt(val, 10);\n return parsed > 0 ? parsed : 20;\n }),\n});\n",
|
|
57
59
|
"import { z } from 'zod';\nimport { WalletDeployerQuery, walletDeployerOutputSchema } from '../../utils/schemas/WalletDeployerSchema.ts';\n\nexport const WalletV1DeployerParamsSchema = WalletDeployerQuery;\nexport type WalletV1DeployerParams = z.input<typeof WalletV1DeployerParamsSchema>;\n\nexport const WalletV1DeployerResponseSchema = walletDeployerOutputSchema;\nexport type WalletV1DeployerResponse = z.infer<typeof WalletV1DeployerResponseSchema>;\n",
|
|
58
|
-
"import { z } from 'zod';\n\nexport const WalletHistoryParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n blockchains: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n unlistedAssets: z.string().optional(),\n period: z.string().optional(),\n accuracy: z.string().optional(),\n testnet: z.string().optional(),\n minliq: z.string().optional(),\n filterSpam: z.string().optional(),\n fetchUntrackedHistory: z.string().optional(),\n fetchAllChains: z.string().optional(),\n shouldFetchPriceChange: z.string().optional(),\n backfillTransfers: z.string().optional(),\n});\n\nexport type WalletHistoryParams = z.input<typeof WalletHistoryParamsSchema>;\n\nexport const WalletHistoryResponseSchema = z.object({\n data: z.object({\n wallets: z.array(z.string()),\n balance_usd: z.number(),\n balance_history: z.array(z.tuple([z.number(), z.number()])),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n }),\n});\n\nexport type WalletHistoryResponse = z.infer<typeof WalletHistoryResponseSchema>;\n",
|
|
59
|
-
"import { z } from 'zod';\n\nexport const WalletLabelsParamsSchema = z.object({\n walletAddresses: z.union([z.string(), z.array(z.string()).max(100)]).optional(),\n tokenAddress: z.string().optional(),\n});\n\nexport type WalletLabelsParams = z.input<typeof WalletLabelsParamsSchema>;\n\nexport const WalletLabelsResponseSchema = z.object({\n data: z.array(\n z.object({\n walletAddress: z.string(),\n labels: z.array(z.string()),\n }),\n ),\n});\n\nexport type WalletLabelsResponse = z.infer<typeof WalletLabelsResponseSchema>;\n",
|
|
60
|
-
"import { z } from 'zod';\n\nexport const WalletNFTParamsSchema = z.object({\n wallet: z.string().min(1),\n blockchains: z.string().optional(),\n page: z.string().optional().default('1'),\n offset: z.string().optional().default('0'),\n limit: z.string().optional().default('100'),\n pagination: z.string().optional().default('false'),\n});\n\nexport type WalletNFTParams = z.input<typeof WalletNFTParamsSchema>;\nexport const WalletNFTResponseSchema = z.object({\n data: z.array(\n z.object({\n token_address: z.string(),\n token_id: z.string(),\n token_uri: z.string(),\n amount: z.string(),\n owner_of: z.string(),\n name: z.string(),\n symbol: z.string(),\n blockchain: z.string(),\n chain_id: z.string(),\n }),\n ),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletNFTResponse = z.infer<typeof WalletNFTResponseSchema>;\n\nexport const NFTMetadataParamsSchema = z.object({\n address: z.string(),\n blockchain: z.string(),\n});\n\nexport type NFTMetadataParams = z.input<typeof NFTMetadataParamsSchema>;\n\nexport const NFTMetadataResponseSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n chain_id: z.string(),\n logo: z.string(),\n website: z.string(),\n telegram: z.string(),\n twitter: z.string(),\n discord: z.string(),\n totalSupply: z.bigint(),\n URI: z.string(),\n});\n\nexport type NFTMetadataResponse = z.infer<typeof NFTMetadataResponseSchema>;\n",
|
|
61
|
-
"import { z } from 'zod';\nimport { type SecurityFlags, SecurityFlagsSchema } from '../../utils/schemas/SecuritySchemas.ts';\n\n// Token type values defined locally to avoid circular dependency with @mobula/protocol\n// Solana: 2020 (SPL Token), 2022 (SPL Token 2022)\n// EVM: erc20\n// Tron: trc10, trc20\nconst WalletTokenTypeValues = ['2020', '2022', 'erc20', 'trc10', 'trc20'] as const;\nexport type WalletTokenType = (typeof WalletTokenTypeValues)[number];\nconst WalletTokenTypeSchema = z.enum(WalletTokenTypeValues).nullable().optional();\n\nexport type CrossChainBalances = Record<\n string,\n {\n balance: number;\n balanceRaw: string;\n chainId?: string;\n address?: string;\n }\n>;\n\nexport type CrossChainBalanceValues = {\n balance: number;\n balanceRaw: string;\n chainId?: string;\n address?: string;\n};\n\n// Security flags for contract balances: extend SecurityFlags with frozen flag\nconst ContractBalanceSecuritySchema = SecurityFlagsSchema.extend({\n frozen: z.boolean().optional(),\n})\n .nullable()\n .optional();\n\nexport type ContractBalanceSecurity = (SecurityFlags & { frozen?: boolean }) | null | undefined;\n\nexport type ContractBalance = {\n balance: number;\n balanceRaw: string;\n decimals: number;\n address: string;\n chainId: string;\n tokenType?: WalletTokenType;\n security?: ContractBalanceSecurity;\n /** Rent lamports for Solana token accounts (returned when account is closed). Only present for Solana SPL tokens. */\n lamports?: string | null;\n /** SPL token account pubkey (needed for closing token accounts). Only present for Solana SPL tokens. */\n tokenAccount?: string | null;\n};\n\nexport interface FormattedHolding {\n asset: {\n id: number | null;\n name: string;\n symbol: string;\n logo?: string;\n decimals: bigint[];\n contracts: string[];\n blockchains: string[];\n };\n price: number;\n liquidity: number;\n market_cap: number;\n price_change_24h: number;\n // price_change_1h: number;\n token_balance: number;\n estimated_balance: number;\n cross_chain_balances: CrossChainBalances;\n contracts_balances: ContractBalance[];\n allocation: number;\n wallets: string[];\n}\n\nexport type FormattedHoldingWithPNL = FormattedHolding & {\n realized_pnl: number;\n unrealized_pnl: number;\n price_bought: number;\n total_invested: number;\n min_buy_price: number;\n max_buy_price: number;\n};\n\nexport type PortfolioOutput = {\n total_wallet_balance: number;\n wallets: string[];\n total_realized_pnl?: number;\n total_unrealized_pnl?: number;\n total_pnl_history?: {\n '24h': {\n realized: number;\n unrealized: number;\n };\n '7d': {\n realized: number;\n unrealized: number;\n };\n '30d': {\n realized: number;\n unrealized: number;\n };\n '1y': {\n realized: number;\n unrealized: number;\n };\n };\n assets: FormattedHoldingWithPNL[] | FormattedHolding[];\n};\n\nexport const PortfolioResponseSchema = z.object({\n data: z.object({\n total_wallet_balance: z.number(),\n wallets: z.array(z.string()),\n assets: z.array(\n z.object({\n contracts_balances: z.array(\n z.object({\n address: z.string(),\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n decimals: z.number(),\n tokenType: WalletTokenTypeSchema,\n security: ContractBalanceSecuritySchema,\n lamports: z.string().nullable().optional(),\n tokenAccount: z.string().nullable().optional(),\n }),\n ),\n cross_chain_balances: z.record(\n z.string(),\n z.object({\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n address: z.string(),\n }),\n ),\n price_change_24h: z.number(),\n estimated_balance: z.number(),\n price: z.number(),\n liquidity: z.number(),\n token_balance: z.number(),\n allocation: z.number(),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n decimals: z.array(z.bigint()),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n }),\n wallets: z.array(z.string()),\n realized_pnl: z.number().optional(),\n unrealized_pnl: z.number().optional(),\n price_bought: z.number().optional(),\n total_invested: z.number().optional(),\n min_buy_price: z.number().optional(),\n max_buy_price: z.number().optional(),\n }),\n ),\n win_rate: z.number().optional(),\n tokens_distribution: z\n .object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n })\n .optional(),\n pnl_history: z\n .object({\n '1y': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '7d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '24h': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '30d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n })\n .optional(),\n total_realized_pnl: z.number().optional(),\n total_unrealized_pnl: z.number().optional(),\n total_pnl_history: z\n .object({\n '24h': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '7d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '30d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '1y': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n })\n .optional(),\n balances_length: z.number(),\n }),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n});\n\nexport type PortfolioResponse = z.infer<typeof PortfolioResponseSchema>;\n\nexport const MultiPortfolioResponseSchema = z.object({\n data: z.array(\n z.object({\n total_wallet_balance: z.number(),\n wallets: z.array(z.string()),\n assets: z.array(\n z.object({\n contracts_balances: z.array(\n z.object({\n address: z.string(),\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n decimals: z.number(),\n tokenType: WalletTokenTypeSchema,\n security: ContractBalanceSecuritySchema,\n lamports: z.string().nullable().optional(),\n tokenAccount: z.string().nullable().optional(),\n }),\n ),\n cross_chain_balances: z.record(\n z.string(),\n z.object({\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n address: z.string(),\n }),\n ),\n price_change_24h: z.number(),\n estimated_balance: z.number(),\n price: z.number(),\n liquidity: z.number(),\n token_balance: z.number(),\n allocation: z.number(),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n decimals: z.array(z.bigint()),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n }),\n wallets: z.array(z.string()),\n realized_pnl: z.number().optional(),\n unrealized_pnl: z.number().optional(),\n price_bought: z.number().optional(),\n total_invested: z.number().optional(),\n min_buy_price: z.number().optional(),\n max_buy_price: z.number().optional(),\n }),\n ),\n win_rate: z.number().optional(),\n tokens_distribution: z\n .object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n })\n .optional(),\n pnl_history: z\n .object({\n '1y': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '7d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '24h': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '30d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n })\n .optional(),\n total_realized_pnl: z.number().optional(),\n total_unrealized_pnl: z.number().optional(),\n total_pnl_history: z\n .object({\n '24h': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '7d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '30d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '1y': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n })\n .optional(),\n balances_length: z.number(),\n }),\n ),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n});\n\nexport type MultiPortfolioResponse = z.infer<typeof MultiPortfolioResponseSchema>;\n\nexport const PositionSchema = z.array(\n z.object({\n type: z.string(),\n name: z.string(),\n chain_id: z.string(),\n contract: z.string(),\n created_at: z.string().nullable(),\n tokens: z.array(\n z.object({\n name: z.string(),\n symbol: z.string(),\n contract: z.string(),\n amount: z.string(),\n amountRaw: z.string(),\n decimals: z.string(),\n amount_usd: z.string(),\n logo: z.string().nullable(),\n price_usd: z.string().nullable(),\n }),\n ),\n rewards: z\n .array(\n z.object({\n name: z.string(),\n symbol: z.string(),\n contract: z.string(),\n amount: z.string(),\n amountRaw: z.string(),\n decimals: z.string(),\n amount_usd: z.string(),\n price_usd: z.string(),\n }),\n )\n .optional(),\n extra: z\n .object({\n lp_token_amount: z.string().optional(),\n position_staked_amount: z.string().optional(),\n factory: z.string().optional(),\n share_of_pool: z.string().optional(),\n type: z.enum(['supply', 'borrow']).optional(),\n health_factor: z.number().optional(),\n reserve0: z.string().optional(),\n reserve1: z.string().optional(),\n reserve_usd: z.number().optional(),\n })\n .optional(),\n }),\n);\n\nexport type PositionOutputType = z.infer<typeof PositionSchema>;\n\nexport const DefiPositionsResponseSchema = z.object({\n data: z.array(\n z.object({\n protocol: z.object({\n name: z.string(),\n id: z.string(),\n logo: z.string(),\n url: z.string(),\n }),\n positions: PositionSchema,\n }),\n ),\n wallets: z.array(z.string()),\n});\n// Export TypeScript type from the schema\nexport type DefiPositionsResponse = z.infer<typeof DefiPositionsResponseSchema>;\n\nexport interface DefiRewardFormat {\n name: string;\n symbol: string;\n decimals: string;\n contract: string;\n logo: string | null;\n amountRaw: string;\n amount: string;\n priceUSD: string | null;\n amountUSD: string;\n}\n\nexport interface LPToken {\n rawBalance: string;\n formattedBalance: number;\n assetId: number | null;\n chainId: string;\n address: string;\n decimals: number;\n name: string;\n symbol: string; // Add more symbols as needed\n}\n\nexport interface ProtocolMetadata {\n name: string;\n id: string;\n url: string;\n logo: string;\n}\n\nexport const PortfolioParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n portfolio: z.string().optional(),\n blockchains: z.string().optional(),\n asset: z.string().optional(),\n cache: z.string().optional(),\n stale: z.string().optional(),\n recheck_contract: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n portfolio_settings: z.string().optional(),\n unlistedAssets: z.string().optional(),\n period: z.string().optional(),\n accuracy: z.string().optional(),\n testnet: z.string().optional(),\n minliq: z.string().optional(),\n filterSpam: z.string().optional(),\n fetchUntrackedHistory: z.string().optional(),\n fetchAllChains: z.string().optional(),\n shouldFetchPriceChange: z.string().optional(),\n backfillTransfers: z.string().optional(),\n fetchEmptyBalances: z.string().optional(),\n pnl: z.string().optional(),\n});\n\nexport type PortfolioParams = z.input<typeof PortfolioParamsSchema>;\n\nexport const PortfolioDefiParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n blockchains: z.string().optional(),\n testnet: z.string().optional(),\n unlistedAssets: z.string().optional(),\n});\n\nexport type PortfolioDefiParams = z.input<typeof PortfolioDefiParamsSchema>;\n\nexport type WalletUnsafeParams = {\n wallet?: string;\n wallets?: string;\n portfolio?: string;\n blockchains?: string;\n asset?: string;\n pnl?: boolean | string;\n cache?: boolean | string;\n stale?: number | string;\n recheck_contract?: boolean | string;\n from?: string;\n to?: string;\n portfolio_settings?: string;\n unlistedAssets?: boolean | string;\n period?: string;\n accuracy?: string;\n testnet?: boolean | string;\n minliq?: number | string;\n filterSpam?: boolean | string;\n shouldFetchPriceChange?: boolean | string;\n fetchUntrackedHistory?: boolean | string;\n fetchAllChains?: boolean | string;\n backfillTransfers?: boolean | string;\n fetchEmptyBalances?: boolean | string;\n};\n",
|
|
60
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\n\nexport const WalletHistoryParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n blockchains: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n unlistedAssets: z.string().optional(),\n period: z.string().optional(),\n accuracy: z.string().optional(),\n testnet: z.string().optional(),\n minliq: z.string().optional(),\n filterSpam: z.string().optional(),\n fetchUntrackedHistory: z.string().optional(),\n fetchAllChains: z.string().optional(),\n shouldFetchPriceChange: z.string().optional(),\n backfillTransfers: z.string().optional(),\n});\n\nexport type WalletHistoryParams = z.input<typeof WalletHistoryParamsSchema>;\n\nexport const WalletHistoryParamsSchemaOpenAPI = createOpenAPIParams(WalletHistoryParamsSchema, {\n omit: ['backfillTransfers', 'fetchUntrackedHistory', 'fetchAllChains', 'shouldFetchPriceChange'],\n describe: {\n wallet: 'Wallet address',\n wallets: 'Comma-separated wallet addresses',\n blockchains: 'Comma-separated blockchain IDs',\n from: 'Start date',\n to: 'End date',\n unlistedAssets: 'Include unlisted assets',\n period: 'Time period for history',\n accuracy: 'Data accuracy level',\n testnet: 'Include testnet data',\n minliq: 'Minimum liquidity threshold',\n filterSpam: 'Filter spam tokens',\n },\n});\n\nexport const WalletHistoryResponseSchema = z.object({\n data: z.object({\n wallets: z.array(z.string()),\n balance_usd: z.number(),\n balance_history: z.array(z.tuple([z.number(), z.number()])),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n }),\n});\n\nexport type WalletHistoryResponse = z.infer<typeof WalletHistoryResponseSchema>;\n",
|
|
61
|
+
"import { z } from 'zod';\n\nexport const WalletLabelsParamsSchema = z.object({\n walletAddresses: z.union([z.string(), z.array(z.string()).max(100)]).optional(),\n tokenAddress: z.string().optional(),\n});\n\nexport type WalletLabelsParams = z.input<typeof WalletLabelsParamsSchema>;\n\nexport const WalletLabelsResponseSchema = z.object({\n data: z.array(\n z.object({\n walletAddress: z.string(),\n labels: z.array(z.string()),\n walletMetadata: z\n .object({\n entityName: z.string().nullable(),\n entityLogo: z.string().nullable(),\n entityLabels: z.array(z.string()),\n entityType: z.string().nullable(),\n entityDescription: z.string().nullable(),\n entityTwitter: z.string().nullable(),\n entityWebsite: z.string().nullable(),\n entityGithub: z.string().nullable(),\n entityDiscord: z.string().nullable(),\n entityTelegram: z.string().nullable(),\n })\n .nullable()\n .optional(),\n platform: z\n .object({\n id: z.string(),\n name: z.string(),\n logo: z.string(),\n })\n .nullable()\n .optional(),\n fundingInfo: z\n .object({\n from: z.string().nullable(),\n date: z.coerce.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletTag: z.string().nullable(),\n fromWalletLogo: z.string().nullable(),\n })\n .nullable()\n .optional(),\n }),\n ),\n});\n\nexport type WalletLabelsResponse = z.infer<typeof WalletLabelsResponseSchema>;\n\n// V2 GET query params schema (query string: walletAddresses as comma-separated string)\nexport const WalletLabelsV2ParamsSchema = z.object({\n walletAddresses: z.string().optional(),\n tokenAddress: z.string().optional(),\n});\n\n// Reverse search: find wallets by entity name / type / label\nexport const WalletLabelsSearchParamsSchema = z.object({\n entityName: z.string().optional(),\n entityType: z.string().optional(),\n label: z.string().optional(),\n offset: z.coerce.number().min(0).optional().default(0),\n limit: z.coerce.number().min(1).max(100).optional().default(20),\n});\n\nexport type WalletLabelsSearchParams = z.input<typeof WalletLabelsSearchParamsSchema>;\n\nexport const WalletLabelsSearchResponseSchema = z.object({\n data: WalletLabelsResponseSchema.shape.data,\n pagination: z.object({\n total: z.number(),\n offset: z.number(),\n limit: z.number(),\n }),\n});\n\nexport type WalletLabelsSearchResponse = z.infer<typeof WalletLabelsSearchResponseSchema>;\n",
|
|
62
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\n\nexport const WalletNFTParamsSchema = z.object({\n wallet: z.string().min(1),\n blockchains: z.string().optional(),\n page: z.string().optional().default('1'),\n offset: z.string().optional().default('0'),\n limit: z.string().optional().default('100'),\n pagination: z.string().optional().default('false'),\n});\n\nexport type WalletNFTParams = z.input<typeof WalletNFTParamsSchema>;\n\nexport const WalletNFTParamsSchemaOpenAPI = createOpenAPIParams(WalletNFTParamsSchema, {\n omit: ['pagination'],\n describe: {\n wallet: 'Wallet address',\n blockchains: 'Comma-separated blockchain IDs',\n page: 'Page number (default: 1)',\n offset: 'Offset for pagination',\n limit: 'Maximum number of results (default: 100)',\n },\n});\nexport const WalletNFTResponseSchema = z.object({\n data: z.array(\n z.object({\n token_address: z.string(),\n token_id: z.string(),\n token_uri: z.string(),\n amount: z.string(),\n owner_of: z.string(),\n name: z.string(),\n symbol: z.string(),\n blockchain: z.string(),\n chain_id: z.string(),\n }),\n ),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletNFTResponse = z.infer<typeof WalletNFTResponseSchema>;\n\nexport const NFTMetadataParamsSchema = z.object({\n address: z.string(),\n blockchain: z.string(),\n});\n\nexport type NFTMetadataParams = z.input<typeof NFTMetadataParamsSchema>;\n\nexport const NFTMetadataResponseSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n address: z.string(),\n chain_id: z.string(),\n logo: z.string(),\n website: z.string(),\n telegram: z.string(),\n twitter: z.string(),\n discord: z.string(),\n totalSupply: z.bigint(),\n URI: z.string(),\n});\n\nexport type NFTMetadataResponse = z.infer<typeof NFTMetadataResponseSchema>;\n",
|
|
63
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport { type SecurityFlags, SecurityFlagsSchema } from '../../utils/schemas/SecuritySchemas.ts';\n\n// Token type values defined locally to avoid circular dependency with @mobula/protocol\n// Solana: 2020 (SPL Token), 2022 (SPL Token 2022)\n// EVM: erc20\n// Tron: trc10, trc20\nconst WalletTokenTypeValues = ['2020', '2022', 'erc20', 'trc10', 'trc20'] as const;\nexport type WalletTokenType = (typeof WalletTokenTypeValues)[number];\nconst WalletTokenTypeSchema = z.enum(WalletTokenTypeValues).nullable().optional();\n\nexport type CrossChainBalances = Record<\n string,\n {\n balance: number;\n balanceRaw: string;\n chainId?: string;\n address?: string;\n }\n>;\n\nexport type CrossChainBalanceValues = {\n balance: number;\n balanceRaw: string;\n chainId?: string;\n address?: string;\n};\n\n// Security flags for contract balances: extend SecurityFlags with frozen flag\nconst ContractBalanceSecuritySchema = SecurityFlagsSchema.extend({\n frozen: z.boolean().optional(),\n})\n .nullable()\n .optional();\n\nexport type ContractBalanceSecurity = (SecurityFlags & { frozen?: boolean }) | null | undefined;\n\nexport type ContractBalance = {\n balance: number;\n balanceRaw: string;\n decimals: number;\n address: string;\n chainId: string;\n tokenType?: WalletTokenType;\n security?: ContractBalanceSecurity;\n /** Rent lamports for Solana token accounts (returned when account is closed). Only present for Solana SPL tokens. */\n lamports?: string | null;\n /** SPL token account pubkey (needed for closing token accounts). Only present for Solana SPL tokens. */\n tokenAccount?: string | null;\n};\n\nexport interface FormattedHolding {\n asset: {\n id: number | null;\n name: string;\n symbol: string;\n logo?: string;\n decimals: bigint[];\n contracts: string[];\n blockchains: string[];\n };\n price: number;\n liquidity: number;\n market_cap: number;\n price_change_24h: number;\n // price_change_1h: number;\n token_balance: number;\n estimated_balance: number;\n cross_chain_balances: CrossChainBalances;\n contracts_balances: ContractBalance[];\n allocation: number;\n wallets: string[];\n}\n\nexport type FormattedHoldingWithPNL = FormattedHolding & {\n realized_pnl: number;\n unrealized_pnl: number;\n price_bought: number;\n total_invested: number;\n min_buy_price: number;\n max_buy_price: number;\n};\n\nexport type PortfolioOutput = {\n total_wallet_balance: number;\n wallets: string[];\n total_realized_pnl?: number;\n total_unrealized_pnl?: number;\n total_pnl_history?: {\n '24h': {\n realized: number;\n unrealized: number;\n };\n '7d': {\n realized: number;\n unrealized: number;\n };\n '30d': {\n realized: number;\n unrealized: number;\n };\n '1y': {\n realized: number;\n unrealized: number;\n };\n };\n assets: FormattedHoldingWithPNL[] | FormattedHolding[];\n};\n\nexport const PortfolioResponseSchema = z.object({\n data: z.object({\n total_wallet_balance: z.number(),\n wallets: z.array(z.string()),\n assets: z.array(\n z.object({\n contracts_balances: z.array(\n z.object({\n address: z.string(),\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n decimals: z.number(),\n tokenType: WalletTokenTypeSchema,\n security: ContractBalanceSecuritySchema,\n lamports: z.string().nullable().optional(),\n tokenAccount: z.string().nullable().optional(),\n }),\n ),\n cross_chain_balances: z.record(\n z.string(),\n z.object({\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n address: z.string(),\n }),\n ),\n price_change_24h: z.number(),\n estimated_balance: z.number(),\n price: z.number(),\n liquidity: z.number(),\n token_balance: z.number(),\n allocation: z.number(),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n decimals: z.array(z.bigint()),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n }),\n wallets: z.array(z.string()),\n realized_pnl: z.number().optional(),\n unrealized_pnl: z.number().optional(),\n price_bought: z.number().optional(),\n total_invested: z.number().optional(),\n min_buy_price: z.number().optional(),\n max_buy_price: z.number().optional(),\n }),\n ),\n win_rate: z.number().optional(),\n tokens_distribution: z\n .object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n })\n .optional(),\n pnl_history: z\n .object({\n '1y': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '7d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '24h': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '30d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n })\n .optional(),\n total_realized_pnl: z.number().optional(),\n total_unrealized_pnl: z.number().optional(),\n total_pnl_history: z\n .object({\n '24h': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '7d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '30d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '1y': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n })\n .optional(),\n balances_length: z.number(),\n }),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n});\n\nexport type PortfolioResponse = z.infer<typeof PortfolioResponseSchema>;\n\nexport const MultiPortfolioResponseSchema = z.object({\n data: z.array(\n z.object({\n total_wallet_balance: z.number(),\n wallets: z.array(z.string()),\n assets: z.array(\n z.object({\n contracts_balances: z.array(\n z.object({\n address: z.string(),\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n decimals: z.number(),\n tokenType: WalletTokenTypeSchema,\n security: ContractBalanceSecuritySchema,\n lamports: z.string().nullable().optional(),\n tokenAccount: z.string().nullable().optional(),\n }),\n ),\n cross_chain_balances: z.record(\n z.string(),\n z.object({\n balance: z.number(),\n balanceRaw: z.string(),\n chainId: z.string(),\n address: z.string(),\n }),\n ),\n price_change_24h: z.number(),\n estimated_balance: z.number(),\n price: z.number(),\n liquidity: z.number(),\n token_balance: z.number(),\n allocation: z.number(),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable().optional(),\n decimals: z.array(z.bigint()),\n contracts: z.array(z.string()),\n blockchains: z.array(z.string()),\n }),\n wallets: z.array(z.string()),\n realized_pnl: z.number().optional(),\n unrealized_pnl: z.number().optional(),\n price_bought: z.number().optional(),\n total_invested: z.number().optional(),\n min_buy_price: z.number().optional(),\n max_buy_price: z.number().optional(),\n }),\n ),\n win_rate: z.number().optional(),\n tokens_distribution: z\n .object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n })\n .optional(),\n pnl_history: z\n .object({\n '1y': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '7d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '24h': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n '30d': z.array(\n z.tuple([\n z.coerce.date(),\n z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n ]),\n ),\n })\n .optional(),\n total_realized_pnl: z.number().optional(),\n total_unrealized_pnl: z.number().optional(),\n total_pnl_history: z\n .object({\n '24h': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '7d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '30d': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n '1y': z.object({\n realized: z.number(),\n unrealized: z.number(),\n }),\n })\n .optional(),\n balances_length: z.number(),\n }),\n ),\n backfill_status: z.enum(['processed', 'processing', 'pending']).optional(),\n});\n\nexport type MultiPortfolioResponse = z.infer<typeof MultiPortfolioResponseSchema>;\n\nexport const PositionSchema = z.array(\n z.object({\n type: z.string(),\n name: z.string(),\n chain_id: z.string(),\n contract: z.string(),\n created_at: z.string().nullable(),\n tokens: z.array(\n z.object({\n name: z.string(),\n symbol: z.string(),\n contract: z.string(),\n amount: z.string(),\n amountRaw: z.string(),\n decimals: z.string(),\n amount_usd: z.string(),\n logo: z.string().nullable(),\n price_usd: z.string().nullable(),\n }),\n ),\n rewards: z\n .array(\n z.object({\n name: z.string(),\n symbol: z.string(),\n contract: z.string(),\n amount: z.string(),\n amountRaw: z.string(),\n decimals: z.string(),\n amount_usd: z.string(),\n price_usd: z.string(),\n }),\n )\n .optional(),\n extra: z\n .object({\n lp_token_amount: z.string().optional(),\n position_staked_amount: z.string().optional(),\n factory: z.string().optional(),\n share_of_pool: z.string().optional(),\n type: z.enum(['supply', 'borrow']).optional(),\n health_factor: z.number().optional(),\n reserve0: z.string().optional(),\n reserve1: z.string().optional(),\n reserve_usd: z.number().optional(),\n })\n .optional(),\n }),\n);\n\nexport type PositionOutputType = z.infer<typeof PositionSchema>;\n\nexport const DefiPositionsResponseSchema = z.object({\n data: z.array(\n z.object({\n protocol: z.object({\n name: z.string(),\n id: z.string(),\n logo: z.string(),\n url: z.string(),\n }),\n positions: PositionSchema,\n }),\n ),\n wallets: z.array(z.string()),\n});\n// Export TypeScript type from the schema\nexport type DefiPositionsResponse = z.infer<typeof DefiPositionsResponseSchema>;\n\nexport interface DefiRewardFormat {\n name: string;\n symbol: string;\n decimals: string;\n contract: string;\n logo: string | null;\n amountRaw: string;\n amount: string;\n priceUSD: string | null;\n amountUSD: string;\n}\n\nexport interface LPToken {\n rawBalance: string;\n formattedBalance: number;\n assetId: number | null;\n chainId: string;\n address: string;\n decimals: number;\n name: string;\n symbol: string; // Add more symbols as needed\n}\n\nexport interface ProtocolMetadata {\n name: string;\n id: string;\n url: string;\n logo: string;\n}\n\nexport const PortfolioParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n portfolio: z.string().optional(),\n blockchains: z.string().optional(),\n asset: z.string().optional(),\n cache: z.string().optional(),\n stale: z.string().optional(),\n recheck_contract: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n portfolio_settings: z.string().optional(),\n unlistedAssets: z.string().optional(),\n period: z.string().optional(),\n accuracy: z.string().optional(),\n testnet: z.string().optional(),\n minliq: z.string().optional(),\n filterSpam: z.string().optional(),\n fetchUntrackedHistory: z.string().optional(),\n fetchAllChains: z.string().optional(),\n shouldFetchPriceChange: z.string().optional(),\n backfillTransfers: z.string().optional(),\n fetchEmptyBalances: z.string().optional(),\n pnl: z.string().optional(),\n});\n\nexport type PortfolioParams = z.input<typeof PortfolioParamsSchema>;\n\nexport const PortfolioParamsSchemaOpenAPI = createOpenAPIParams(PortfolioParamsSchema, {\n omit: [\n 'cache',\n 'stale',\n 'recheck_contract',\n 'backfillTransfers',\n 'fetchUntrackedHistory',\n 'fetchAllChains',\n 'shouldFetchPriceChange',\n 'fetchEmptyBalances',\n ],\n describe: {\n wallet: 'Wallet address',\n wallets: 'Comma-separated wallet addresses',\n portfolio: 'Portfolio ID',\n blockchains: 'Comma-separated blockchain IDs',\n asset: 'Filter by specific asset',\n from: 'Start date',\n to: 'End date',\n portfolio_settings: 'Portfolio display settings',\n unlistedAssets: 'Include unlisted assets',\n period: 'Time period',\n accuracy: 'Data accuracy level',\n testnet: 'Include testnet data',\n minliq: 'Minimum liquidity threshold',\n filterSpam: 'Filter spam tokens',\n pnl: 'Include PnL data',\n },\n});\n\nexport const PortfolioDefiParamsSchema = z.object({\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n blockchains: z.string().optional(),\n testnet: z.string().optional(),\n unlistedAssets: z.string().optional(),\n});\n\nexport type PortfolioDefiParams = z.input<typeof PortfolioDefiParamsSchema>;\n\nexport const PortfolioDefiParamsSchemaOpenAPI = createOpenAPIParams(PortfolioDefiParamsSchema, {\n omit: ['testnet'],\n describe: {\n wallet: 'Wallet address',\n wallets: 'Comma-separated wallet addresses',\n blockchains: 'Comma-separated blockchain IDs',\n unlistedAssets: 'Include unlisted assets',\n },\n});\n\nexport type WalletUnsafeParams = {\n wallet?: string;\n wallets?: string;\n portfolio?: string;\n blockchains?: string;\n asset?: string;\n pnl?: boolean | string;\n cache?: boolean | string;\n stale?: number | string;\n recheck_contract?: boolean | string;\n from?: string;\n to?: string;\n portfolio_settings?: string;\n unlistedAssets?: boolean | string;\n period?: string;\n accuracy?: string;\n testnet?: boolean | string;\n minliq?: number | string;\n filterSpam?: boolean | string;\n shouldFetchPriceChange?: boolean | string;\n fetchUntrackedHistory?: boolean | string;\n fetchAllChains?: boolean | string;\n backfillTransfers?: boolean | string;\n fetchEmptyBalances?: boolean | string;\n};\n",
|
|
62
64
|
"import { z } from 'zod';\n\nexport const WalletSmartMoneyResponseSchema = z.object({\n data: z.array(\n z.object({\n wallet_address: z.string(),\n realized_pnl: z.number(),\n unrealized_pnl: z.number(),\n txns_count: z.number(),\n volume: z.number(),\n blockchains: z.array(z.string()),\n win_rate: z.number(),\n tokens_distribution: z.object({\n '10x+': z.number(),\n '4x - 10x': z.number(),\n '2x - 4x': z.number(),\n '10% - 2x': z.number(),\n '-10% - 10%': z.number(),\n '-50% - -10%': z.number(),\n '-100% - -50%': z.number(),\n }),\n top_3_tokens: z.array(z.record(z.string(), z.number())),\n }),\n ),\n});\n\nexport type WalletSmartMoneyResponse = z.infer<typeof WalletSmartMoneyResponseSchema>;\n",
|
|
63
65
|
"import { z } from 'zod';\nimport { PlatformMetadataOutput } from '../../utils/schemas/PlatformMetadataOutput.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\n\nexport const WalletTradesParamsSchema = z.object({\n limit: z.string().optional().default('100'),\n offset: z.string().optional().default('0'),\n page: z.string().optional().default('1'),\n order: z.string().optional(),\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n});\n\nexport type WalletTradesParams = z.input<typeof WalletTradesParamsSchema>;\nexport type WalletTradesInferType = z.infer<typeof WalletTradesParamsSchema>;\n\nexport const WalletTradesResponseSchema = z.object({\n data: z.array(\n z.object({\n chain_id: z.string(),\n swap_type: z.string(),\n raw_amount0: z.string(),\n raw_amount1: z.string(),\n raw_post_balance0: z.string().optional().nullable(),\n raw_post_balance1: z.string().optional().nullable(),\n raw_pre_balance0: z.string().optional().nullable(),\n raw_pre_balance1: z.string().optional().nullable(),\n amount0: z.coerce.number(),\n amount1: z.coerce.number(),\n ratio: z.number(),\n price_usd_token0: z.number(),\n price_usd_token1: z.number(),\n date: z.coerce.date(),\n amount_usd: z.number(),\n pool_address: z.string(),\n token0_address: z.string(),\n token1_address: z.string(),\n transaction_sender_address: z.string(),\n transaction_hash: z.string(),\n base: z.string(),\n quote: z.string(),\n side: z.string(),\n amount_quote: z.coerce.number(),\n amount_base: z.coerce.number(),\n amount_quote_raw: z.string(),\n amount_base_raw: z.string(),\n base_token: TokenDetailsOutput.optional().nullable(),\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n }),\n ),\n});\n\nexport type WalletTradesResponse = z.infer<typeof WalletTradesResponseSchema>;\n",
|
|
64
|
-
"import { z } from 'zod';\n\nexport const WalletTransactionsParamsSchema = z.object({\n limit: z.string().optional(),\n offset: z.string().optional(),\n page: z.string().optional(),\n order: z.string().optional(),\n cache: z.string().optional(),\n stale: z.string().optional(),\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n recheckContract: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n asset: z.string().optional(),\n trades: z.string().optional(),\n transactions: z.string().optional(),\n blockchains: z.string().optional(),\n unlistedAssets: z.string().optional(),\n onlyAssets: z.string().optional(),\n pagination: z.string().optional(),\n filterSpam: z.string().optional(),\n});\n\nexport type WalletTransactionsParams = z.input<typeof WalletTransactionsParamsSchema>;\n\nexport const WalletRawTransactionsParamsSchema = z\n .object({\n limit: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n offset: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n page: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n order: z.string().optional(), // Remains string\n cache: z\n .string()\n .optional()\n .transform((val) => val === 'true'), // Convert to boolean\n stale: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n wallet: z.string().optional(), // Remains string\n wallets: z.string().optional(), // Remains string\n from: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n to: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n blockchains: z.string().optional(), // Remains string\n pagination: z\n .string()\n .optional()\n .transform((val) => val === 'true'), // Convert to boolean\n })\n .strict();\n\nexport type WalletRawTransactionsParams = z.input<typeof WalletRawTransactionsParamsSchema>;\n\nexport const WalletTransactionsResponseSchema = z.object({\n data: z.object({\n transactions: z.array(\n z.object({\n id: z.string(),\n timestamp: z.number(),\n from: z.string().nullable(),\n to: z.string().nullable(),\n contract: z.string().nullable(),\n hash: z.string(),\n amount_usd: z.number(),\n amount: z.number(),\n block_number: z.number(),\n type: z.string(),\n blockchain: z.string(),\n tx_cost: z.number(),\n transaction: z.object({\n hash: z.string(),\n chainId: z.string(),\n fees: z.string(),\n feesUSD: z.number(),\n date: z.coerce.date(),\n }),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUSD: z.number(),\n logo: z.string().nullable(),\n nativeChainId: z.string().nullable(),\n contract: z.string().nullable(),\n }),\n }),\n ),\n wallets: z.array(z.string()),\n }),\n details: z.null(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletTransactionsResponse = z.infer<typeof WalletTransactionsResponseSchema>;\n\nconst RawTransactionSchema = z.object({\n id: z.bigint(),\n timestamp: z.number(),\n from: z.string().nullable(),\n to: z.string().nullable(),\n contract: z.string().nullable(),\n hash: z.string(),\n amount_usd: z.number(),\n amount: z.number(),\n block_number: z.number(),\n type: z.string(),\n blockchain: z.string(),\n tx_cost: z.number(),\n transaction: z.object({\n hash: z.string(),\n chainId: z.string(),\n fees: z.string(),\n feesUSD: z.number(),\n date: z.coerce.date(),\n }),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUSD: z.number(),\n logo: z.string().nullable(),\n nativeChainId: z.string().nullable(),\n contract: z.string().nullable(),\n }),\n});\n\nconst UnifiedTransactionSchema = z.object({\n chain_id: z.string(),\n hash: z.string().default(''),\n method: z.string().optional(),\n from: z.string().default(''),\n to: z.string().default(''),\n native_amount: z.string().default('0'),\n name: z.string().default('Unknown'),\n logo: z.string().optional(),\n amount: z.string().default('0'),\n token: z.string().default(''),\n symbol: z.string().optional(),\n timestamp: z.string().default(''),\n block_number: z.number().optional(),\n txn_fees: z.string().default('0'),\n status: z.boolean(),\n});\n\nexport const WalletRawTransactionsResponseSchema = z.object({\n raw: z.array(RawTransactionSchema),\n unified: z.array(UnifiedTransactionSchema),\n wallets: z.string().array(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletRawTransactionsResponse = z.infer<typeof WalletRawTransactionsResponseSchema>;\nexport type RawTransactionOutputType = z.infer<typeof RawTransactionSchema>;\n\nconst RawNFTTransactionSchema = z.object({\n combined_id: z.string(),\n combined_date: z.coerce.date().transform((d) => d.toISOString()),\n contract_address: z.string().nullable(),\n from_address: z.string().nullable(),\n to_address: z.string().nullable(),\n chain_id: z.string(),\n token_id: z.string().nullable(),\n fees: z.string().nullable(),\n fees_usd: z.number().nullable(), // Add from raw data, number type\n block_height: z.number().nullable(),\n transaction_hash: z.string(),\n raw_type: z.enum(['sell', 'buy']),\n});\n\nconst UnifiedNFTTransactionSchema = z.object({\n chain_id: z.string(),\n hash: z.string(),\n method: z.string().optional(),\n from: z.string(),\n to: z.string(),\n amount: z.string().optional(),\n token: z.string(),\n symbol: z.string().optional(),\n tokenId: z.string().nullable(),\n timestamp: z.coerce.date().transform((d) => d.toISOString()),\n block_number: z.number().nullable(),\n txn_fees: z.string().nullable(),\n status: z.boolean(),\n});\n\nexport const WalletNFTTransactionsResponseSchema = z\n .object({\n raw: z.array(RawNFTTransactionSchema),\n unified: z.array(UnifiedNFTTransactionSchema),\n wallets: z.string().array(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n })\n .strict();\n\nexport type WalletNFTTransactionsResponse = z.infer<typeof WalletNFTTransactionsResponseSchema>;\n",
|
|
66
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\n\nexport const WalletTransactionsParamsSchema = z.object({\n limit: z.string().optional(),\n offset: z.string().optional(),\n page: z.string().optional(),\n order: z.string().optional(),\n cache: z.string().optional(),\n stale: z.string().optional(),\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n recheckContract: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n asset: z.string().optional(),\n trades: z.string().optional(),\n transactions: z.string().optional(),\n blockchains: z.string().optional(),\n unlistedAssets: z.string().optional(),\n onlyAssets: z.string().optional(),\n pagination: z.string().optional(),\n filterSpam: z.string().optional(),\n});\n\nexport type WalletTransactionsParams = z.input<typeof WalletTransactionsParamsSchema>;\n\nexport const WalletTransactionsParamsSchemaOpenAPI = createOpenAPIParams(WalletTransactionsParamsSchema, {\n omit: ['cache', 'stale', 'recheckContract', 'trades', 'transactions', 'onlyAssets'],\n describe: {\n wallet: 'Wallet address',\n wallets: 'Comma-separated wallet addresses',\n blockchains: 'Comma-separated blockchain IDs',\n from: 'Start timestamp',\n to: 'End timestamp',\n asset: 'Filter by asset address',\n limit: 'Number of results per page',\n offset: 'Offset for pagination',\n page: 'Page number',\n order: 'Sort order (asc/desc)',\n unlistedAssets: 'Include unlisted assets',\n pagination: 'Enable pagination details',\n filterSpam: 'Filter spam transactions',\n },\n});\n\nexport const WalletRawTransactionsParamsSchemaOpenAPI = createOpenAPIParams(\n z.object({\n limit: z.string().optional(),\n offset: z.string().optional(),\n page: z.string().optional(),\n order: z.string().optional(),\n wallet: z.string().optional(),\n wallets: z.string().optional(),\n from: z.string().optional(),\n to: z.string().optional(),\n blockchains: z.string().optional(),\n pagination: z.string().optional(),\n }),\n {\n describe: {\n wallet: 'Wallet address',\n wallets: 'Comma-separated wallet addresses',\n blockchains: 'Comma-separated blockchain IDs',\n from: 'Start timestamp',\n to: 'End timestamp',\n limit: 'Number of results per page',\n offset: 'Offset for pagination',\n page: 'Page number',\n order: 'Sort order (asc/desc)',\n pagination: 'Enable pagination details',\n },\n },\n);\n\nexport const WalletRawTransactionsParamsSchema = z\n .object({\n limit: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n offset: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n page: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n order: z.string().optional(), // Remains string\n cache: z\n .string()\n .optional()\n .transform((val) => val === 'true'), // Convert to boolean\n stale: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n wallet: z.string().optional(), // Remains string\n wallets: z.string().optional(), // Remains string\n from: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n to: z\n .string()\n .optional()\n .transform((val) => (val !== undefined ? Number(val) : undefined)),\n blockchains: z.string().optional(), // Remains string\n pagination: z\n .string()\n .optional()\n .transform((val) => val === 'true'), // Convert to boolean\n })\n .strict();\n\nexport type WalletRawTransactionsParams = z.input<typeof WalletRawTransactionsParamsSchema>;\n\nexport const WalletTransactionsResponseSchema = z.object({\n data: z.object({\n transactions: z.array(\n z.object({\n id: z.string(),\n timestamp: z.number(),\n from: z.string().nullable(),\n to: z.string().nullable(),\n contract: z.string().nullable(),\n hash: z.string(),\n amount_usd: z.number(),\n amount: z.number(),\n block_number: z.number(),\n type: z.string(),\n blockchain: z.string(),\n tx_cost: z.number(),\n transaction: z.object({\n hash: z.string(),\n chainId: z.string(),\n fees: z.string(),\n feesUSD: z.number(),\n date: z.coerce.date(),\n }),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUSD: z.number(),\n logo: z.string().nullable(),\n nativeChainId: z.string().nullable(),\n contract: z.string().nullable(),\n }),\n }),\n ),\n wallets: z.array(z.string()),\n }),\n details: z.null(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletTransactionsResponse = z.infer<typeof WalletTransactionsResponseSchema>;\n\nconst RawTransactionSchema = z.object({\n id: z.bigint(),\n timestamp: z.number(),\n from: z.string().nullable(),\n to: z.string().nullable(),\n contract: z.string().nullable(),\n hash: z.string(),\n amount_usd: z.number(),\n amount: z.number(),\n block_number: z.number(),\n type: z.string(),\n blockchain: z.string(),\n tx_cost: z.number(),\n transaction: z.object({\n hash: z.string(),\n chainId: z.string(),\n fees: z.string(),\n feesUSD: z.number(),\n date: z.coerce.date(),\n }),\n asset: z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUSD: z.number(),\n logo: z.string().nullable(),\n nativeChainId: z.string().nullable(),\n contract: z.string().nullable(),\n }),\n});\n\nconst UnifiedTransactionSchema = z.object({\n chain_id: z.string(),\n hash: z.string().default(''),\n method: z.string().optional(),\n from: z.string().default(''),\n to: z.string().default(''),\n native_amount: z.string().default('0'),\n name: z.string().default('Unknown'),\n logo: z.string().optional(),\n amount: z.string().default('0'),\n token: z.string().default(''),\n symbol: z.string().optional(),\n timestamp: z.string().default(''),\n block_number: z.number().optional(),\n txn_fees: z.string().default('0'),\n status: z.boolean(),\n});\n\nexport const WalletRawTransactionsResponseSchema = z.object({\n raw: z.array(RawTransactionSchema),\n unified: z.array(UnifiedTransactionSchema),\n wallets: z.string().array(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n});\n\nexport type WalletRawTransactionsResponse = z.infer<typeof WalletRawTransactionsResponseSchema>;\nexport type RawTransactionOutputType = z.infer<typeof RawTransactionSchema>;\n\nconst RawNFTTransactionSchema = z.object({\n combined_id: z.string(),\n combined_date: z.coerce.date().transform((d) => d.toISOString()),\n contract_address: z.string().nullable(),\n from_address: z.string().nullable(),\n to_address: z.string().nullable(),\n chain_id: z.string(),\n token_id: z.string().nullable(),\n fees: z.string().nullable(),\n fees_usd: z.number().nullable(), // Add from raw data, number type\n block_height: z.number().nullable(),\n transaction_hash: z.string(),\n raw_type: z.enum(['sell', 'buy']),\n});\n\nconst UnifiedNFTTransactionSchema = z.object({\n chain_id: z.string(),\n hash: z.string(),\n method: z.string().optional(),\n from: z.string(),\n to: z.string(),\n amount: z.string().optional(),\n token: z.string(),\n symbol: z.string().optional(),\n tokenId: z.string().nullable(),\n timestamp: z.coerce.date().transform((d) => d.toISOString()),\n block_number: z.number().nullable(),\n txn_fees: z.string().nullable(),\n status: z.boolean(),\n});\n\nexport const WalletNFTTransactionsResponseSchema = z\n .object({\n raw: z.array(RawNFTTransactionSchema),\n unified: z.array(UnifiedNFTTransactionSchema),\n wallets: z.string().array(),\n pagination: z\n .object({\n total: z.number(),\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n })\n .nullable(),\n })\n .strict();\n\nexport type WalletNFTTransactionsResponse = z.infer<typeof WalletNFTTransactionsResponseSchema>;\n",
|
|
65
67
|
"import { z } from 'zod';\n\nconst BaseFilter = z.object({\n eq: z.tuple([z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])]).optional(),\n neq: z.tuple([z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])]).optional(),\n lt: z.tuple([z.string(), z.coerce.number()]).optional(),\n lte: z.tuple([z.string(), z.coerce.number()]).optional(),\n gt: z.tuple([z.string(), z.coerce.number()]).optional(),\n gte: z.tuple([z.string(), z.coerce.number()]).optional(),\n in: z.tuple([z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])]).optional(),\n});\n\ntype BaseFilter = z.infer<typeof BaseFilter>;\nexport type Filter = BaseFilter & ({ and?: Filter[] } | { or?: Filter[] });\n\nconst Filter: z.ZodType<Filter> = BaseFilter.and(\n z.union([\n BaseFilter.extend({ and: z.undefined(), or: z.undefined() }),\n BaseFilter.extend({ and: z.array(z.lazy(() => Filter)), or: z.undefined() }),\n BaseFilter.extend({ and: z.undefined(), or: z.array(z.lazy(() => Filter)) }),\n ]),\n);\n\nexport type FilterType = z.infer<typeof Filter>;\n\nexport function countOperations(filter: Filter | undefined): number {\n if (!filter) return 0;\n\n let count = 0;\n\n for (const key of ['eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in'] as const) {\n if (filter[key]) count += 1;\n }\n\n if ('and' in filter && Array.isArray(filter.and)) {\n for (const child of filter.and) {\n count += countOperations(child);\n }\n }\n\n if ('or' in filter && Array.isArray(filter.or)) {\n for (const child of filter.or) {\n count += countOperations(child);\n }\n }\n\n return count;\n}\n\nconst FilterWithLimit = Filter.superRefine((val, ctx) => {\n const total = countOperations(val);\n const max = 1000;\n if (total > max) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Your filter contains ${total} leaf operations, exceeding the maximum of ${max}. Only leaf conditions like \"eq\", \"neq\", \"lt\", \"lte\", \"gt\", \"gte\", \"in\" are counted; logical operators (\"and\", \"or\") are ignored.`,\n });\n }\n});\n\nexport default FilterWithLimit;\n\nconst UpdateWebhook = z.object({\n streamId: z.string(),\n apiKey: z.string(),\n mode: z.enum(['replace', 'merge']).default('replace'),\n filters: FilterWithLimit.optional(),\n});\ntype UpdateWebhookDto = z.infer<typeof UpdateWebhook>;\nexport { UpdateWebhook };\nexport type { UpdateWebhookDto };\nexport type UpdateWebhookParams = UpdateWebhookDto;\n\nexport const CreateWebhook = z\n .object({\n name: z.string(),\n chainIds: z.array(z.string()),\n events: z.array(z.string()),\n apiKey: z.string(),\n filters: FilterWithLimit.optional(),\n url: z.string().url(),\n })\n .strict();\nexport type CreateWebhookDto = z.infer<typeof CreateWebhook>;\nexport type CreateWebhookParams = CreateWebhookDto;\n\nexport const listWebhooksQueryParams = z.object({\n apiKey: z.string().trim().min(1, { message: 'API key is required' }),\n});\n\nexport type ListWebhooksQuery = z.infer<typeof listWebhooksQueryParams>;\nexport type ListWebhooksParams = ListWebhooksQuery;\n\nexport const deleteWebhookParams = z.object({\n id: z.string().trim().min(1, { message: 'Webhook ID is required' }),\n});\n\nexport type DeleteWebhookType = z.infer<typeof deleteWebhookParams>;\nexport type DeleteWebhookParams = DeleteWebhookType;\n\nexport const WebhookResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n chainIds: z.array(z.string()),\n events: z.array(z.string()),\n filters: z.any().nullable().optional(),\n webhookUrl: z.string().url(),\n apiKey: z.string(),\n createdAt: z.union([z.string(), z.coerce.date()]).transform((val) => (val instanceof Date ? val.toISOString() : val)),\n});\n\nexport type WebhookResponse = z.infer<typeof WebhookResponseSchema>;\n\nexport const CreateWebhookResponseSchema = WebhookResponseSchema.extend({\n webhookSecret: z.string(),\n});\nexport type CreateWebhookResponse = z.infer<typeof CreateWebhookResponseSchema>;\n\nexport const listWebhookResponseSchema = z.object({\n success: z.boolean(),\n count: z.number(),\n data: z.array(WebhookResponseSchema),\n});\n\nexport type listWebhookResponse = z.infer<typeof listWebhookResponseSchema>;\nexport type ListWebhooksResponse = listWebhookResponse;\n\nexport const updateWebhookResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n data: WebhookResponseSchema,\n});\n\nexport type updateWebhookResponse = z.infer<typeof updateWebhookResponseSchema>;\nexport type UpdateWebhookResponse = updateWebhookResponse;\n\nexport const deleteWebhookResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n id: z.string(),\n});\n\nexport type DeleteWebhookResponse = z.infer<typeof deleteWebhookResponseSchema>;\n",
|
|
66
|
-
"import { z } from 'zod';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\n// Output schema for a single token in the asset\nexport const AssetTokenDetailsOutput = TokenDetailsOutput;\n\n// Asset-level data from the assets table\nexport const AssetDataOutput = z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n description: z.string().nullable(),\n rank: z.number().nullable(),\n nativeChainId: z.string().nullable(),\n priceUSD: z.number().nullable(),\n totalSupply: z.number().default(0),\n circulatingSupply: z.number().default(0),\n marketCapUSD: z.number().default(0),\n marketCapDilutedUSD: z.number().default(0),\n athPriceDate: z.coerce.date().nullable(),\n athPriceUSD: z.number().nullable(),\n atlPriceDate: z.coerce.date().nullable(),\n atlPriceUSD: z.number().nullable(),\n isStablecoin: z.boolean().default(false),\n createdAt: z.coerce.date(),\n listedAt: z.coerce.date().nullable(),\n socials: z\n .object({\n audit: z.string().nullable(),\n github: z.string().nullable(),\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n kyc: z.string().nullable(),\n chat: z.string().nullable(),\n discord: z.string().nullable(),\n })\n .nullable(),\n});\n\nexport type AssetDataOutputType = z.infer<typeof AssetDataOutput>;\n\n// Full asset details response including tokens\nexport const AssetDetailsDataOutput = z.object({\n asset: AssetDataOutput,\n tokens: z.array(TokenDetailsOutput.or(z.object({ error: z.string().optional() })).nullable()),\n tokensCount: z.number(),\n});\n\nexport type AssetDetailsDataOutputType = z.infer<typeof AssetDetailsDataOutput>;\n\n// Query parameters schema\nconst AssetDetailsParamsSchema = z\n .object({\n // Option 1: asset ID directly\n id: z.coerce.number().optional(),\n // Option 2: address + chainId\n address: z.string().optional(),\n blockchain: z.string().optional(),\n // Limit for tokens (default 10)\n tokensLimit: z.coerce.number().min(1).max(50).default(10),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n })\n .refine((data) => data.id !== undefined || (data.address !== undefined && data.blockchain !== undefined), {\n message: 'Either id OR (address AND blockchain) must be provided',\n });\n\nexport type AssetDetailsParams =
|
|
68
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams, type SDKInput } from '../../utils/functions/openAPIHelpers.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\n// Output schema for a single token in the asset\nexport const AssetTokenDetailsOutput = TokenDetailsOutput;\n\n// Asset-level data from the assets table\nexport const AssetDataOutput = z.object({\n id: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n description: z.string().nullable(),\n rank: z.number().nullable(),\n nativeChainId: z.string().nullable(),\n priceUSD: z.number().nullable(),\n totalSupply: z.number().default(0),\n circulatingSupply: z.number().default(0),\n marketCapUSD: z.number().default(0),\n marketCapDilutedUSD: z.number().default(0),\n athPriceDate: z.coerce.date().nullable(),\n athPriceUSD: z.number().nullable(),\n atlPriceDate: z.coerce.date().nullable(),\n atlPriceUSD: z.number().nullable(),\n isStablecoin: z.boolean().default(false),\n createdAt: z.coerce.date(),\n listedAt: z.coerce.date().nullable(),\n socials: z\n .object({\n audit: z.string().nullable(),\n github: z.string().nullable(),\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n kyc: z.string().nullable(),\n chat: z.string().nullable(),\n discord: z.string().nullable(),\n })\n .nullable(),\n});\n\nexport type AssetDataOutputType = z.infer<typeof AssetDataOutput>;\n\n// Full asset details response including tokens\nexport const AssetDetailsDataOutput = z.object({\n asset: AssetDataOutput,\n tokens: z.array(TokenDetailsOutput.or(z.object({ error: z.string().optional() })).nullable()),\n tokensCount: z.number(),\n});\n\nexport type AssetDetailsDataOutputType = z.infer<typeof AssetDetailsDataOutput>;\n\n// Query parameters schema\nconst AssetDetailsParamsSchema = z\n .object({\n // Option 1: asset ID directly\n id: z.coerce.number().optional(),\n // Option 2: address + chainId\n address: z.string().optional(),\n blockchain: z.string().optional(),\n // Limit for tokens (default 10)\n tokensLimit: z.coerce.number().min(1).max(50).default(10),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n })\n .refine((data) => data.id !== undefined || (data.address !== undefined && data.blockchain !== undefined), {\n message: 'Either id OR (address AND blockchain) must be provided',\n });\n\nconst ASSET_DETAILS_HIDDEN = ['instanceTracking'] as const;\ntype AssetDetailsHiddenFields = (typeof ASSET_DETAILS_HIDDEN)[number];\n\nexport type AssetDetailsParams = SDKInput<typeof AssetDetailsParamsSchema, AssetDetailsHiddenFields>;\nexport type AssetDetailsParsedParams = z.infer<typeof AssetDetailsParamsSchema> & {\n chainId?: string;\n};\n\nexport const AssetDetailsParamsSchemaOpenAPI = createOpenAPIParams(AssetDetailsParamsSchema, {\n omit: [...ASSET_DETAILS_HIDDEN],\n describe: {\n id: 'Asset ID',\n address: 'Token contract address',\n blockchain: 'Blockchain name or chain ID',\n tokensLimit: 'Maximum number of tokens to return (1-50, default: 10)',\n },\n});\n\n// Response schemas\nexport const AssetDetailsResponseSchema = z.object({\n data: AssetDetailsDataOutput,\n hostname: z.string().optional(),\n});\n\nexport type AssetDetailsResponse = z.infer<typeof AssetDetailsResponseSchema>;\n\n// Batch item schema (for POST)\nconst AssetDetailsItemSchema = z.object({\n id: z.coerce.number().optional(),\n address: z.string().optional(),\n blockchain: z.string().optional(),\n tokensLimit: z.coerce.number().min(1).max(50).default(10),\n});\n\n// POST request schema - array of items directly\nexport const AssetDetailsBatchParamsSchema = z\n .array(AssetDetailsItemSchema)\n .min(1, 'At least one asset is required')\n .max(10, 'Maximum 10 assets per request');\n\nexport type AssetDetailsBatchParams = z.input<typeof AssetDetailsBatchParamsSchema>;\n\n// Batch response schema\nexport const AssetDetailsBatchResponseSchema = z.object({\n payload: z.array(AssetDetailsDataOutput.or(z.object({ error: z.string().optional() })).nullable()),\n hostname: z.string().optional(),\n});\n\nexport type AssetDetailsBatchResponse = z.infer<typeof AssetDetailsBatchResponseSchema>;\n\nexport { AssetDetailsParamsSchema };\n",
|
|
67
69
|
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\n\n// Single asset query schema\nconst AssetPriceHistoryItemSchema = z.object({\n address: z.string().optional(),\n chainId: z.string().optional(),\n id: z.coerce.number().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return undefined;\n }),\n from: z.coerce.number().default(0),\n to: z.coerce.number().default(() => Date.now()),\n});\n\n// GET request schema (single asset)\nexport const AssetPriceHistoryParamsSchema = AssetPriceHistoryItemSchema.refine(\n (data) => {\n return data.id !== undefined || data.address !== undefined;\n },\n {\n message: 'Either id or address must be provided',\n },\n).refine(\n (data) => {\n if (data.address !== undefined && data.chainId === undefined) {\n return false;\n }\n return true;\n },\n {\n message: 'chainId is required when using address',\n },\n);\n\nexport type AssetPriceHistoryParams = z.input<typeof AssetPriceHistoryParamsSchema>;\n\n// Array schema for batch items\nconst AssetPriceHistoryArraySchema = z\n .array(AssetPriceHistoryItemSchema)\n .min(1, 'At least one asset is required')\n .max(10, 'Maximum 10 assets per request')\n .refine(\n (assets) => {\n return assets.every((asset) => asset.id !== undefined || asset.address !== undefined);\n },\n {\n message: 'Each asset must have either id or address',\n },\n )\n .refine(\n (assets) => {\n return assets.every((asset) => {\n if (asset.address !== undefined && asset.chainId === undefined) {\n return false;\n }\n return true;\n });\n },\n {\n message: 'chainId is required when using address',\n },\n );\n\n// POST request schema - supports both array and object with 'assets' key\nexport const AssetPriceHistoryBatchParamsSchema = z.union([\n AssetPriceHistoryArraySchema,\n z.object({ assets: AssetPriceHistoryArraySchema }),\n]);\n\nexport type AssetPriceHistoryBatchParams = z.input<typeof AssetPriceHistoryBatchParamsSchema>;\n\n// Single asset response data schema\nconst AssetPriceHistoryDataSchema = z.object({\n priceHistory: z.array(z.array(z.number().nullable())),\n id: z.number().optional(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n chainId: z.string().optional(),\n address: z.string().optional(),\n error: z.string().optional(),\n});\n\n// GET response schema (single asset)\nexport const AssetPriceHistoryResponseSchema = z.object({\n data: AssetPriceHistoryDataSchema,\n});\n\nexport type AssetPriceHistoryResponse = z.infer<typeof AssetPriceHistoryResponseSchema>;\n\n// POST response schema (batch - array of assets)\nexport const AssetPriceHistoryBatchResponseSchema = z.object({\n data: z.array(AssetPriceHistoryDataSchema),\n});\n\nexport type AssetPriceHistoryBatchResponse = z.infer<typeof AssetPriceHistoryBatchResponseSchema>;\n",
|
|
68
70
|
"import { z } from 'zod';\n\nconst BlockQueryParams = z.object({\n address: z.string(),\n blockchain: z.string(),\n});\n\nexport type BlockQueryParams = z.infer<typeof BlockQueryParams>;\n\nexport const BlockQueryParamsSchema = BlockQueryParams;\n",
|
|
69
71
|
"import { z } from 'zod';\nimport { CurrenciesParamSchema } from '../../utils/schemas/CurrencySchema.ts';\nimport { MarketDetailsOutput } from '../../utils/schemas/MarketDetailsOutput.ts';\n\nconst MarketDetailsItemParams = z\n .object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n baseToken: z.string().optional(),\n currencies: z.string().optional(),\n })\n .transform(({ blockchain, address, baseToken, currencies }) => ({\n blockchain,\n address,\n baseToken,\n currencies: CurrenciesParamSchema.parse(currencies),\n asset: address ? address : undefined,\n }));\n\nconst MarketDetailsParamsSchema = MarketDetailsItemParams;\n\nconst MarketDetailsBatchParamsSchema = z.union([\n z.array(MarketDetailsItemParams),\n z.object({\n items: z.array(MarketDetailsItemParams),\n }),\n]);\n\nexport type MarketDetailsParams = z.input<typeof MarketDetailsParamsSchema>;\nexport type MarketDetailsInferType = z.infer<typeof MarketDetailsParamsSchema>;\n\nexport type MarketDetailsBatchParams = z.input<typeof MarketDetailsBatchParamsSchema>;\n\nexport const MarketDetailsResponseSchema = z.object({\n data: MarketDetailsOutput,\n hostname: z.string().optional(),\n});\nexport type MarketDetailsResponse = z.infer<typeof MarketDetailsResponseSchema>;\n\nexport const MarketDetailsBatchResponseSchema = z.object({\n payload: z.array(MarketDetailsOutput.or(z.object({ error: z.string().optional() })).nullable()),\n hostname: z.string().optional(),\n});\nexport type MarketDetailsBatchResponse = z.infer<typeof MarketDetailsBatchResponseSchema>;\n\nexport { MarketDetailsParamsSchema, MarketDetailsBatchParamsSchema };\n",
|
|
70
|
-
"import { z } from 'zod';\nimport { PerpDataMarketDetailsOutputSchema } from '../../v2/perp/PerpModels.ts';\nimport { HoldersStatsSchema } from './EnrichedHoldersData.ts';\n\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\nconst TokenDetailsSchema = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n priceUSD: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCapUSD: z.coerce.number().optional().default(0),\n marketCapDilutedUSD: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n\n liquidityUSD: z.coerce.number().optional(),\n liquidityMaxUSD: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n\n deployer: z.string().nullable().optional(),\n createdAt: z.coerce.string().optional(),\n bondedAt: z.coerce.date().nullable(),\n athUSD: z.coerce.number().optional(),\n atlUSD: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport const MarketDetailsOutput = z\n .object({\n token0: TokenDetailsSchema.optional(),\n token1: TokenDetailsSchema.optional(),\n\n base: TokenDetailsSchema,\n quote: TokenDetailsSchema,\n\n liquidityUSD: z.coerce.number().default(0),\n latestTradeDate: z.coerce.date().nullable(),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n priceUSD: z.coerce.number().optional(),\n priceToken: z.coerce.number().optional(),\n priceTokenString: z.string().optional(),\n\n baseToken: z.string(),\n quoteToken: z.string(),\n\n bonded: z.coerce.boolean(),\n bondingPercentage: z.coerce.number().nullable(),\n preBondingPoolAddress: z.string().nullable(),\n sourceFactory: z.string().nullable().optional(),\n\n totalFeesPaidUSD: z.coerce.number().nullable(),\n totalFeesPaidNativeRaw: z.coerce.string().default('0'),\n\n priceChange1minPercentage: z.coerce.number().default(0),\n priceChange5minPercentage: z.coerce.number().default(0),\n priceChange1hPercentage: z.coerce.number().default(0),\n priceChange4hPercentage: z.coerce.number().default(0),\n priceChange6hPercentage: z.coerce.number().default(0),\n priceChange12hPercentage: z.coerce.number().default(0),\n priceChange24hPercentage: z.coerce.number().default(0),\n\n volume1minUSD: z.coerce.number().default(0),\n volume5minUSD: z.coerce.number().default(0),\n volume15minUSD: z.coerce.number().default(0),\n volume1hUSD: z.coerce.number().default(0),\n volume4hUSD: z.coerce.number().default(0),\n volume6hUSD: z.coerce.number().default(0),\n volume12hUSD: z.coerce.number().default(0),\n volume24hUSD: z.coerce.number().default(0),\n\n volumeBuy1minUSD: z.coerce.number().default(0),\n volumeBuy5minUSD: z.coerce.number().default(0),\n volumeBuy15minUSD: z.coerce.number().default(0),\n volumeBuy1hUSD: z.coerce.number().default(0),\n volumeBuy4hUSD: z.coerce.number().default(0),\n volumeBuy6hUSD: z.coerce.number().default(0),\n volumeBuy12hUSD: z.coerce.number().default(0),\n volumeBuy24hUSD: z.coerce.number().default(0),\n\n volumeSell1minUSD: z.coerce.number().default(0),\n volumeSell5minUSD: z.coerce.number().default(0),\n volumeSell15minUSD: z.coerce.number().default(0),\n volumeSell1hUSD: z.coerce.number().default(0),\n volumeSell4hUSD: z.coerce.number().default(0),\n volumeSell6hUSD: z.coerce.number().default(0),\n volumeSell12hUSD: z.coerce.number().default(0),\n volumeSell24hUSD: z.coerce.number().default(0),\n\n trades1min: z.coerce.number().default(0),\n trades5min: z.coerce.number().default(0),\n trades15min: z.coerce.number().default(0),\n trades1h: z.coerce.number().default(0),\n trades4h: z.coerce.number().default(0),\n trades6h: z.coerce.number().default(0),\n trades12h: z.coerce.number().default(0),\n trades24h: z.coerce.number().default(0),\n\n buys1min: z.coerce.number().default(0),\n buys5min: z.coerce.number().default(0),\n buys15min: z.coerce.number().default(0),\n buys1h: z.coerce.number().default(0),\n buys4h: z.coerce.number().default(0),\n buys6h: z.coerce.number().default(0),\n buys12h: z.coerce.number().default(0),\n buys24h: z.coerce.number().default(0),\n\n sells1min: z.coerce.number().default(0),\n sells5min: z.coerce.number().default(0),\n sells15min: z.coerce.number().default(0),\n sells1h: z.coerce.number().default(0),\n sells4h: z.coerce.number().default(0),\n sells6h: z.coerce.number().default(0),\n sells12h: z.coerce.number().default(0),\n sells24h: z.coerce.number().default(0),\n\n buyers1min: z.coerce.number().default(0),\n buyers5min: z.coerce.number().default(0),\n buyers15min: z.coerce.number().default(0),\n buyers1h: z.coerce.number().default(0),\n buyers4h: z.coerce.number().default(0),\n buyers6h: z.coerce.number().default(0),\n buyers12h: z.coerce.number().default(0),\n buyers24h: z.coerce.number().default(0),\n\n sellers1min: z.coerce.number().default(0),\n sellers5min: z.coerce.number().default(0),\n sellers15min: z.coerce.number().default(0),\n sellers1h: z.coerce.number().default(0),\n sellers4h: z.coerce.number().default(0),\n sellers6h: z.coerce.number().default(0),\n sellers12h: z.coerce.number().default(0),\n sellers24h: z.coerce.number().default(0),\n\n traders1min: z.coerce.number().default(0),\n traders5min: z.coerce.number().default(0),\n traders15min: z.coerce.number().default(0),\n traders1h: z.coerce.number().default(0),\n traders4h: z.coerce.number().default(0),\n traders6h: z.coerce.number().default(0),\n traders12h: z.coerce.number().default(0),\n traders24h: z.coerce.number().default(0),\n\n feesPaid1minUSD: z.coerce.number().default(0),\n feesPaid5minUSD: z.coerce.number().default(0),\n feesPaid15minUSD: z.coerce.number().default(0),\n feesPaid1hUSD: z.coerce.number().default(0),\n feesPaid4hUSD: z.coerce.number().default(0),\n feesPaid6hUSD: z.coerce.number().default(0),\n feesPaid12hUSD: z.coerce.number().default(0),\n feesPaid24hUSD: z.coerce.number().default(0),\n\n holdersCount: z.coerce.number().default(0),\n\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n tokenSymbol: z.string().nullable(),\n tokenName: z.string().nullable(),\n dexscreenerListed: z.coerce.boolean().nullable(),\n deployerMigrations: z.coerce.number().default(0),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n twitterReusesCount: z.coerce.number().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n lastChecked: z.string(),\n }),\n )\n .default([]),\n perpetuals: PerpDataMarketDetailsOutputSchema.optional(),\n extraData: z.record(z.unknown()).optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport type MarketDetailsOutputType = z.infer<typeof MarketDetailsOutput>;\n",
|
|
72
|
+
"import { z } from 'zod';\nimport { PerpDataMarketDetailsOutputSchema } from '../../v2/perp/PerpModels.ts';\nimport { HoldersStatsSchema } from './EnrichedHoldersData.ts';\n\nimport { SecurityFlagsSchema } from './SecuritySchemas.ts';\n\nconst TokenDetailsSchema = z\n .object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n id: z.number().nullable().optional().default(null),\n\n priceUSD: z.coerce.number().default(0),\n priceToken: z.coerce.number().default(0),\n priceTokenString: z.string(),\n approximateReserveUSD: z.coerce.number().default(0),\n approximateReserveTokenRaw: z.string(),\n approximateReserveToken: z.coerce.number().default(0),\n totalSupply: z.coerce.number().default(0),\n circulatingSupply: z.coerce.number().default(0),\n marketCapUSD: z.coerce.number().optional().default(0),\n marketCapDilutedUSD: z.coerce.number().optional().default(0),\n logo: z.string().nullable(),\n\n exchange: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .optional(),\n\n factory: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n sourceFactory: z.string().nullable().optional(),\n sourceMetadata: z\n .object({\n name: z.string(),\n logo: z.string(),\n })\n .nullable()\n .optional(),\n\n liquidityUSD: z.coerce.number().optional(),\n liquidityMaxUSD: z.coerce.number().optional(),\n bonded: z.boolean().optional(),\n bondingPercentage: z.coerce.number().optional(),\n bondingCurveAddress: z.string().nullable().optional(),\n preBondingFactory: z.string().optional(),\n poolAddress: z.string().optional(),\n\n blockchain: z.string().optional(),\n type: z.string().optional(),\n\n isMayhemMode: z.boolean().nullable().optional().default(null),\n isCashbackCoin: z.boolean().nullable().optional().default(null),\n isAgentMode: z.boolean().nullable().optional().default(null),\n\n deployer: z.string().nullable().optional(),\n createdAt: z.coerce.string().optional(),\n bondedAt: z.coerce.date().nullable(),\n athUSD: z.coerce.number().optional(),\n atlUSD: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport const MarketDetailsOutput = z\n .object({\n token0: TokenDetailsSchema.optional(),\n token1: TokenDetailsSchema.optional(),\n\n base: TokenDetailsSchema,\n quote: TokenDetailsSchema,\n\n liquidityUSD: z.coerce.number().default(0),\n latestTradeDate: z.coerce.date().nullable(),\n blockchain: z.string(),\n address: z.string(),\n createdAt: z.coerce.date().nullable(),\n type: z.string(),\n exchange: z.object({\n name: z.string(),\n logo: z.string(),\n }),\n factory: z.string().nullable(),\n priceUSD: z.coerce.number().optional(),\n priceToken: z.coerce.number().optional(),\n priceTokenString: z.string().optional(),\n\n baseToken: z.string(),\n quoteToken: z.string(),\n\n bonded: z.coerce.boolean(),\n bondingPercentage: z.coerce.number().nullable(),\n preBondingPoolAddress: z.string().nullable(),\n sourceFactory: z.string().nullable().optional(),\n\n totalFeesPaidUSD: z.coerce.number().nullable(),\n totalFeesPaidNativeRaw: z.coerce.string().default('0'),\n\n priceChange1minPercentage: z.coerce.number().default(0),\n priceChange5minPercentage: z.coerce.number().default(0),\n priceChange1hPercentage: z.coerce.number().default(0),\n priceChange4hPercentage: z.coerce.number().default(0),\n priceChange6hPercentage: z.coerce.number().default(0),\n priceChange12hPercentage: z.coerce.number().default(0),\n priceChange24hPercentage: z.coerce.number().default(0),\n\n volume1minUSD: z.coerce.number().default(0),\n volume5minUSD: z.coerce.number().default(0),\n volume15minUSD: z.coerce.number().default(0),\n volume1hUSD: z.coerce.number().default(0),\n volume4hUSD: z.coerce.number().default(0),\n volume6hUSD: z.coerce.number().default(0),\n volume12hUSD: z.coerce.number().default(0),\n volume24hUSD: z.coerce.number().default(0),\n\n volumeBuy1minUSD: z.coerce.number().default(0),\n volumeBuy5minUSD: z.coerce.number().default(0),\n volumeBuy15minUSD: z.coerce.number().default(0),\n volumeBuy1hUSD: z.coerce.number().default(0),\n volumeBuy4hUSD: z.coerce.number().default(0),\n volumeBuy6hUSD: z.coerce.number().default(0),\n volumeBuy12hUSD: z.coerce.number().default(0),\n volumeBuy24hUSD: z.coerce.number().default(0),\n\n volumeSell1minUSD: z.coerce.number().default(0),\n volumeSell5minUSD: z.coerce.number().default(0),\n volumeSell15minUSD: z.coerce.number().default(0),\n volumeSell1hUSD: z.coerce.number().default(0),\n volumeSell4hUSD: z.coerce.number().default(0),\n volumeSell6hUSD: z.coerce.number().default(0),\n volumeSell12hUSD: z.coerce.number().default(0),\n volumeSell24hUSD: z.coerce.number().default(0),\n\n trades1min: z.coerce.number().default(0),\n trades5min: z.coerce.number().default(0),\n trades15min: z.coerce.number().default(0),\n trades1h: z.coerce.number().default(0),\n trades4h: z.coerce.number().default(0),\n trades6h: z.coerce.number().default(0),\n trades12h: z.coerce.number().default(0),\n trades24h: z.coerce.number().default(0),\n\n buys1min: z.coerce.number().default(0),\n buys5min: z.coerce.number().default(0),\n buys15min: z.coerce.number().default(0),\n buys1h: z.coerce.number().default(0),\n buys4h: z.coerce.number().default(0),\n buys6h: z.coerce.number().default(0),\n buys12h: z.coerce.number().default(0),\n buys24h: z.coerce.number().default(0),\n\n sells1min: z.coerce.number().default(0),\n sells5min: z.coerce.number().default(0),\n sells15min: z.coerce.number().default(0),\n sells1h: z.coerce.number().default(0),\n sells4h: z.coerce.number().default(0),\n sells6h: z.coerce.number().default(0),\n sells12h: z.coerce.number().default(0),\n sells24h: z.coerce.number().default(0),\n\n buyers1min: z.coerce.number().default(0),\n buyers5min: z.coerce.number().default(0),\n buyers15min: z.coerce.number().default(0),\n buyers1h: z.coerce.number().default(0),\n buyers4h: z.coerce.number().default(0),\n buyers6h: z.coerce.number().default(0),\n buyers12h: z.coerce.number().default(0),\n buyers24h: z.coerce.number().default(0),\n\n sellers1min: z.coerce.number().default(0),\n sellers5min: z.coerce.number().default(0),\n sellers15min: z.coerce.number().default(0),\n sellers1h: z.coerce.number().default(0),\n sellers4h: z.coerce.number().default(0),\n sellers6h: z.coerce.number().default(0),\n sellers12h: z.coerce.number().default(0),\n sellers24h: z.coerce.number().default(0),\n\n traders1min: z.coerce.number().default(0),\n traders5min: z.coerce.number().default(0),\n traders15min: z.coerce.number().default(0),\n traders1h: z.coerce.number().default(0),\n traders4h: z.coerce.number().default(0),\n traders6h: z.coerce.number().default(0),\n traders12h: z.coerce.number().default(0),\n traders24h: z.coerce.number().default(0),\n\n feesPaid1minUSD: z.coerce.number().default(0),\n feesPaid5minUSD: z.coerce.number().default(0),\n feesPaid15minUSD: z.coerce.number().default(0),\n feesPaid1hUSD: z.coerce.number().default(0),\n feesPaid4hUSD: z.coerce.number().default(0),\n feesPaid6hUSD: z.coerce.number().default(0),\n feesPaid12hUSD: z.coerce.number().default(0),\n feesPaid24hUSD: z.coerce.number().default(0),\n\n holdersCount: z.coerce.number().default(0),\n\n source: z.string().nullable(),\n deployer: z.string().nullable(),\n tokenSymbol: z.string().nullable(),\n tokenName: z.string().nullable(),\n dexscreenerListed: z.coerce.boolean().nullable(),\n deployerMigrations: z.coerce.number().default(0),\n socials: z.object({\n twitter: z.string().nullable(),\n website: z.string().nullable(),\n telegram: z.string().nullable(),\n others: z.record(z.unknown()).nullable(),\n uri: z.string().optional(),\n }),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n twitterReusesCount: z.coerce.number().default(0),\n twitterRenameCount: z.coerce.number().default(0),\n twitterRenameHistory: z\n .array(\n z.object({\n username: z.string(),\n lastChecked: z.string(),\n }),\n )\n .default([]),\n perpetuals: PerpDataMarketDetailsOutputSchema.optional(),\n extraData: z.record(z.unknown()).optional(),\n })\n .merge(HoldersStatsSchema);\n\nexport type MarketDetailsOutputType = z.infer<typeof MarketDetailsOutput>;\n",
|
|
71
73
|
"import { z } from 'zod';\n\nexport type ExchangeId = 'gte' | 'gains' | 'hyperliquid' | 'lighter';\n\n/**\n * @DefaultMarketSymbol This is the default market symbol, it should be used nowhere except to define @MarketId\n */\ntype DefaultMarketSymbol<TExchangeId extends ExchangeId> = `${TExchangeId}-${Lowercase<string>}-${Lowercase<string>}`;\n\n/**\n * @MarketId the universal MarketId for perps, with exchange ids specificities\n */\nexport type MarketId<TExchangeId extends ExchangeId> = TExchangeId extends 'gains'\n ? `${DefaultMarketSymbol<TExchangeId>}-${Lowercase<string>}` //addition member for collateral\n : DefaultMarketSymbol<TExchangeId>;\n\nexport type HoldingFeesTimeframes = '1h' | '8h' | '24h' | '1y';\n\nexport type FlattenedHoldingFees = {\n //1h\n fundingFeeShort1hPercentage: number; //eg. 0.005%\n totalFeeShort1hPercentage: number; //eg. 0.006%\n fundingFeeLong1hPercentage: number; //eg. 0.005%\n totalFeeLong1hPercentage: number; //eg. 0.006%\n\n //4h\n fundingFeeShort8hPercentage: number; //eg. 0.005%\n totalFeeShort8hPercentage: number; //eg. 0.006%\n fundingFeeLong8hPercentage: number; //eg. 0.005%\n totalFeeLong8hPercentage: number; //eg. 0.006%\n\n //24h\n fundingFeeShort24hPercentage: number; //eg. 0.005%\n totalFeeShort24hPercentage: number; //eg. 0.006%\n fundingFeeLong24hPercentage: number; //eg. 0.005%\n totalFeeLong24hPercentage: number; //eg. 0.006%\n\n //1y\n fundingFeeShort1yPercentage: number; //eg. 0.005%\n totalFeeShort1yPercentage: number; //eg. 0.006%\n fundingFeeLong1yPercentage: number; //eg. 0.005%\n totalFeeLong1yPercentage: number; //eg. 0.006%\n};\n\nexport type AssetClasses = 'crypto' | 'forex' | 'stocks' | 'indices' | 'commodities';\n\nconst PerpDataRedisSchemaBase = z.object({\n markPriceUSD: z.coerce.number().default(0),\n markPriceQuote: z.coerce.number().default(0),\n oraclePriceUSD: z.coerce.number().default(0),\n isDisabled: z.coerce.boolean(),\n isOpen: z.coerce.boolean(),\n assetClass: z.string().transform((value) => (!value ? 'crypto' : (value as AssetClasses))) as z.ZodType<AssetClasses>,\n spreadPercentage: z.coerce.number().default(0),\n\n fundingFeeShort1hPercentage: z.coerce.number().default(0),\n totalFeeShort1hPercentage: z.coerce.number().default(0),\n fundingFeeLong1hPercentage: z.coerce.number().default(0),\n totalFeeLong1hPercentage: z.coerce.number().default(0),\n\n fundingFeeShort8hPercentage: z.coerce.number().default(0),\n totalFeeShort8hPercentage: z.coerce.number().default(0),\n fundingFeeLong8hPercentage: z.coerce.number().default(0),\n totalFeeLong8hPercentage: z.coerce.number().default(0),\n\n fundingFeeShort24hPercentage: z.coerce.number().default(0),\n totalFeeShort24hPercentage: z.coerce.number().default(0),\n fundingFeeLong24hPercentage: z.coerce.number().default(0),\n totalFeeLong24hPercentage: z.coerce.number().default(0),\n\n fundingFeeShort1yPercentage: z.coerce.number().default(0),\n totalFeeShort1yPercentage: z.coerce.number().default(0),\n fundingFeeLong1yPercentage: z.coerce.number().default(0),\n totalFeeLong1yPercentage: z.coerce.number().default(0),\n\n collateral: z.string().optional(),\n //pairIndex: z.coerce.number().optional(),\n\n marketId: z.string(),\n});\n\nexport const PerpDataRedisSchemaFlatten = PerpDataRedisSchemaBase.extend({\n oiCollateral_oiLong: z.coerce.number().default(0),\n oiCollateral_oiShort: z.coerce.number().default(0),\n oiCollateral_max: z.coerce.number().optional(),\n\n leverage_min: z.coerce.number().default(0),\n leverage_max: z.coerce.number().default(0),\n\n defaultTradingFees_makerFeeBps: z.coerce.number().default(0),\n defaultTradingFees_takerFeeBps: z.coerce.number().default(0),\n\n liquidationParams_maxLiqSpreadPercentage: z.coerce.number().default(0),\n liquidationParams_startLiqThresholdPercentage: z.coerce.number().default(0),\n liquidationParams_endLiqThresholdPercentage: z.coerce.number().default(0),\n liquidationParams_startLeverage: z.coerce.number().default(0),\n liquidationParams_endLeverage: z.coerce.number().default(0),\n});\n\nexport type PerpDataRedisFlatten = z.infer<typeof PerpDataRedisSchemaFlatten>;\n\nexport const PerpDataRedisSchemaNested = PerpDataRedisSchemaBase.extend({\n defaultTradingFees: z.object({\n makerFeeBps: z.number().default(0),\n takerFeeBps: z.number().default(0),\n }),\n\n oiCollateral: z.object({\n oiLong: z.number().default(0),\n oiShort: z.number().default(0),\n max: z.number().optional(),\n }),\n\n leverage: z.object({\n min: z.number().default(0),\n max: z.number().default(0),\n }),\n\n liquidationParams: z.object({\n maxLiqSpreadPercentage: z.number().default(0),\n startLiqThresholdPercentage: z.number().default(0),\n endLiqThresholdPercentage: z.number().default(0),\n startLeverage: z.number().default(0),\n endLeverage: z.number().default(0),\n }),\n});\n\nexport type PerpDataRedisNested = z.infer<typeof PerpDataRedisSchemaNested>;\n\nexport const PerpDataMarketDetailsOutputSchema = PerpDataRedisSchemaNested.omit({ oiCollateral: true }).extend({\n openInterest: z.object({\n longUSD: z.number().default(0),\n longQuoteToken: z.number().default(0),\n shortUSD: z.number().default(0),\n shortQuoteToken: z.number().default(0),\n maxUSD: z.number().optional(),\n maxQuoteToken: z.number().optional(),\n }),\n});\n\nexport type PerpDataMarketDetailsOutput = z.infer<typeof PerpDataMarketDetailsOutputSchema>;\n",
|
|
72
|
-
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\n// Helper for boolean parsing from query string\nconst booleanFromString = z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n });\n\n// Single market/pool query schema (shared between GET params and POST body items)\nconst MarketOHLCVHistoryItemSchema = z.object({\n address: z.string(),\n chainId: z.string(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => (val ? normalizePeriod(val) : '5m')),\n amount: z.coerce.number().optional(),\n usd: booleanFromString,\n});\n\n// ==================== MARKET OHLCV (Pool-based) ====================\n// GET: address + chainId required\nexport const MarketOHLCVHistoryParamsSchema = MarketOHLCVHistoryItemSchema.refine(\n (data) => data.address && data.chainId,\n { message: 'address and chainId are required' },\n);\n\nexport type MarketOHLCVHistoryParams = z.input<typeof MarketOHLCVHistoryParamsSchema>;\nexport type MarketOHLCVHistoryInferType = z.infer<typeof MarketOHLCVHistoryParamsSchema>;\n\n// Array schema for batch items\nconst MarketOHLCVHistoryArraySchema = z\n .array(MarketOHLCVHistoryItemSchema)\n .min(1, 'At least one market is required')\n .max(10, 'Maximum 10 markets per request');\n\n// POST request schema - supports both array and object with 'markets' key\nexport const MarketOHLCVHistoryBatchParamsSchema = z.union([\n MarketOHLCVHistoryArraySchema,\n z.object({ markets: MarketOHLCVHistoryArraySchema }),\n]);\n\nexport type MarketOHLCVHistoryBatchParams = z.input<typeof MarketOHLCVHistoryBatchParamsSchema>;\n\n// ==================== RESPONSE SCHEMA ====================\nconst OHLCVCandleSchema = z.object({\n v: z.number(),\n o: z.number(),\n h: z.number(),\n l: z.number(),\n c: z.number(),\n t: z.number(),\n});\n\nexport const MarketOHLCVHistoryResponseSchema = z.object({\n data: z.array(OHLCVCandleSchema),\n});\n\nexport type MarketOHLCVHistoryResponse = z.infer<typeof MarketOHLCVHistoryResponseSchema>;\n\n// Single market batch response data schema\nconst MarketOHLCVHistoryDataSchema = z.object({\n ohlcv: z.array(OHLCVCandleSchema),\n address: z.string(),\n chainId: z.string(),\n error: z.string().optional(),\n});\n\n// POST response schema (batch - array of markets)\nexport const MarketOHLCVHistoryBatchResponseSchema = z.object({\n data: z.array(MarketOHLCVHistoryDataSchema),\n});\n\nexport type MarketOHLCVHistoryBatchResponse = z.infer<typeof MarketOHLCVHistoryBatchResponseSchema>;\n",
|
|
74
|
+
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\n// Helper for boolean parsing from query string\nconst booleanFromString = z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n });\n\n// Single market/pool query schema (shared between GET params and POST body items)\nconst MarketOHLCVHistoryItemSchema = z.object({\n address: z.string(),\n chainId: z.string(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => (val ? normalizePeriod(val) : '5m')),\n amount: z.coerce\n .number()\n .optional()\n .transform((val) => (val !== undefined ? Math.min(val, 2000) : undefined)),\n usd: booleanFromString,\n});\n\n// ==================== MARKET OHLCV (Pool-based) ====================\n// GET: address + chainId required\nexport const MarketOHLCVHistoryParamsSchema = MarketOHLCVHistoryItemSchema.refine(\n (data) => data.address && data.chainId,\n { message: 'address and chainId are required' },\n);\n\nexport type MarketOHLCVHistoryParams = z.input<typeof MarketOHLCVHistoryParamsSchema>;\nexport type MarketOHLCVHistoryInferType = z.infer<typeof MarketOHLCVHistoryParamsSchema>;\n\n// Array schema for batch items\nconst MarketOHLCVHistoryArraySchema = z\n .array(MarketOHLCVHistoryItemSchema)\n .min(1, 'At least one market is required')\n .max(10, 'Maximum 10 markets per request');\n\n// POST request schema - supports both array and object with 'markets' key\nexport const MarketOHLCVHistoryBatchParamsSchema = z.union([\n MarketOHLCVHistoryArraySchema,\n z.object({ markets: MarketOHLCVHistoryArraySchema }),\n]);\n\nexport type MarketOHLCVHistoryBatchParams = z.input<typeof MarketOHLCVHistoryBatchParamsSchema>;\n\n// ==================== RESPONSE SCHEMA ====================\nconst OHLCVCandleSchema = z.object({\n v: z.number(),\n o: z.number(),\n h: z.number(),\n l: z.number(),\n c: z.number(),\n t: z.number(),\n});\n\nexport const MarketOHLCVHistoryResponseSchema = z.object({\n data: z.array(OHLCVCandleSchema),\n});\n\nexport type MarketOHLCVHistoryResponse = z.infer<typeof MarketOHLCVHistoryResponseSchema>;\n\n// Single market batch response data schema\nconst MarketOHLCVHistoryDataSchema = z.object({\n ohlcv: z.array(OHLCVCandleSchema),\n address: z.string(),\n chainId: z.string(),\n error: z.string().optional(),\n});\n\n// POST response schema (batch - array of markets)\nexport const MarketOHLCVHistoryBatchResponseSchema = z.object({\n data: z.array(MarketOHLCVHistoryDataSchema),\n});\n\nexport type MarketOHLCVHistoryBatchResponse = z.infer<typeof MarketOHLCVHistoryBatchResponseSchema>;\n",
|
|
75
|
+
"import { z } from 'zod';\n\nconst booleanPreprocess = z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n}, z.boolean().optional());\n\nexport const SystemMetadataV2ParamsSchema = z.object({\n // Selection\n factories: booleanPreprocess,\n poolTypes: booleanPreprocess,\n chains: booleanPreprocess,\n\n // Factory filters\n hasMetadata: booleanPreprocess,\n status: z.enum(['APPROVED', 'WAITING_APPROVAL', 'NOT_APPROVED']).optional(),\n chainId: z.string().optional(),\n name: z.string().optional(),\n\n // Chain filters\n indexed: booleanPreprocess,\n type: z.string().optional(),\n});\n\nexport type SystemMetadataV2Params = z.input<typeof SystemMetadataV2ParamsSchema>;\n\nconst ChainOutputSchema = z.object({\n id: z.string(),\n name: z.string(),\n type: z.string(),\n chainId: z.union([z.number(), z.string()]),\n testnet: z.boolean(),\n indexing: z.boolean(),\n averageBlockTimeInSeconds: z.number().nullable(),\n native: z.object({\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n address: z.string(),\n }),\n branding: z.object({\n logo: z.string(),\n color: z.string(),\n }),\n blockExplorers: z\n .object({\n default: z.object({\n name: z.string(),\n url: z.string(),\n apiUrl: z.string().optional(),\n }),\n })\n .optional(),\n integrations: z\n .object({\n geckoterminal: z.string().optional(),\n dexscreener: z.string().optional(),\n coingecko: z.string().optional(),\n })\n .optional(),\n});\n\nconst FactoryOutputSchema = z.object({\n chainId: z.string(),\n address: z.string(),\n status: z.string(),\n name: z.string().optional(),\n metadata: z\n .object({\n ui_name: z.string().optional(),\n logo: z.string().optional(),\n website: z.string().optional(),\n })\n .optional(),\n});\n\nexport const SystemMetadataV2ResponseSchema = z.object({\n data: z.object({\n poolTypes: z.array(z.string()).optional(),\n chains: z.array(ChainOutputSchema).optional(),\n factories: z.array(FactoryOutputSchema).optional(),\n }),\n});\n\nexport type SystemMetadataV2Response = z.infer<typeof SystemMetadataV2ResponseSchema>;\n\n// OpenAPI-compatible params schema (no z.preprocess, plain booleans for spec generation)\nexport const SystemMetadataV2ParamsSchemaOpenAPI = z.object({\n factories: z.boolean().optional().describe('Include the list of registered factories.'),\n poolTypes: z.boolean().optional().describe('Include the list of supported pool types.'),\n chains: z.boolean().optional().describe('Include the list of supported chains.'),\n hasMetadata: z.boolean().optional().describe('Filter factories by metadata presence.'),\n status: z\n .enum(['APPROVED', 'WAITING_APPROVAL', 'NOT_APPROVED'])\n .optional()\n .describe('Filter factories by approval status.'),\n chainId: z.string().optional().describe('Filter factories by chain ID.'),\n name: z.string().optional().describe('Case-insensitive partial match on factory name.'),\n indexed: z.boolean().optional().describe('Filter chains by indexing status.'),\n type: z.string().optional().describe('Filter chains by type (e.g. \"evm\", \"solana\").'),\n});\n",
|
|
73
76
|
"import { z } from 'zod';\n\nexport const PerpBlocksQueryParamsSchema = z.object({\n exchange: z.string().optional(),\n chain_id: z.string().optional(),\n block_number: z.coerce.number().optional(),\n batch_number: z.coerce.number().optional(),\n block_status: z.string().optional(),\n from_block_time: z.string().optional(),\n to_block_time: z.string().optional(),\n page: z.coerce.number().min(1).default(1),\n limit: z.coerce.number().min(1).max(100).default(25),\n});\n\nexport type PerpBlocksQueryParams = z.infer<typeof PerpBlocksQueryParamsSchema>;\n\nexport const PerpBlockSchema = z.object({\n exchange: z.string().nullable(),\n chain_id: z.string().nullable(),\n block_number: z.number(),\n batch_number: z.number(),\n block_status: z.string().nullable(),\n block_time: z.string(),\n total_transactions: z.number(),\n logs_count: z.number(),\n trades_count: z.number(),\n commit_tx_hash: z.string().nullable(),\n verify_tx_hash: z.string().nullable(),\n execute_tx_hash: z.string().nullable(),\n scraped_at: z.string(),\n});\n\nexport type PerpBlock = z.infer<typeof PerpBlockSchema>;\n\nexport const PerpBlocksResponseSchema = z.object({\n data: z.array(PerpBlockSchema),\n pagination: z.object({\n page: z.number(),\n totalPages: z.number(),\n totalItems: z.number(),\n limit: z.number(),\n }),\n});\n\nexport type PerpBlocksResponse = z.infer<typeof PerpBlocksResponseSchema>;\n",
|
|
74
77
|
"import { z } from 'zod';\n\nconst SupportedDexSchema = z.enum(['gains']);\n\nconst TradeTypeSchema = z.enum(['market', 'limit', 'stop_limit']);\n\nconst PerpOrderQuotingParamsSchema = z.object({\n user: z.string(),\n baseToken: z.string(),\n quote: z.string(),\n leverage: z.coerce.number(),\n long: z.union([z.boolean(), z.string()]).transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n collateralAmount: z.coerce.number(),\n openPrice: z.coerce.number().optional(),\n tp: z.coerce.number().optional(),\n sl: z.coerce.number().optional(),\n tradeType: TradeTypeSchema.optional().default('market'),\n amountRaw: z.coerce.number().optional(),\n maxSlippageP: z.coerce.number().optional(),\n chainId: z.string().optional(),\n dex: SupportedDexSchema.optional(),\n referrer: z.string().optional(),\n});\n\ntype TradeType = z.infer<typeof TradeTypeSchema>;\ntype SupportedDex = z.infer<typeof SupportedDexSchema>;\ntype PerpOrderQuotingParams = z.infer<typeof PerpOrderQuotingParamsSchema>;\n\nexport { PerpOrderQuotingParamsSchema, type TradeType, type SupportedDex, type PerpOrderQuotingParams };\n",
|
|
75
78
|
"import { z } from 'zod';\nimport { SwapQuotingDataSchema } from './SwapQuotingOutput.ts';\n\nconst SwapQuotingBatchResultSchema = z.object({\n data: SwapQuotingDataSchema,\n error: z.string().optional(),\n index: z.number(),\n});\n\nexport const SwapQuotingBatchOutputSchema = z.object({\n results: z.array(SwapQuotingBatchResultSchema),\n totalRequests: z.number(),\n successCount: z.number(),\n errorCount: z.number(),\n});\n\nexport type SwapQuotingBatchResult = z.infer<typeof SwapQuotingBatchResultSchema>;\nexport type SwapQuotingBatchResponse = z.infer<typeof SwapQuotingBatchOutputSchema>;\n",
|
|
76
|
-
"import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';\nimport { z } from 'zod';\n\nextendZodWithOpenApi(z);\n\nconst SolanaTransactionSchema = z.object({\n serialized: z.string(),\n variant: z.enum(['legacy', 'versioned']),\n});\n\nconst EVMTransactionSchema = z.object({\n to: z.string(),\n from: z.string(),\n data: z.string(),\n value: z.string(),\n gasLimit: z.string().optional(),\n gasPrice: z.string().optional(),\n maxFeePerGas: z.string().optional(),\n maxPriorityFeePerGas: z.string().optional(),\n nonce: z.number().optional(),\n chainId: z.number(),\n});\n\nconst TokenInfoSchema = z.object({\n address: z.string(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n decimals: z.number(),\n logo: z.string().nullable().optional(),\n});\n\nconst RouteHopSchema = z.object({\n poolAddress: z.string(),\n tokenIn: TokenInfoSchema,\n tokenOut: TokenInfoSchema,\n amountInTokens: z.string(),\n amountOutTokens: z.string(),\n exchange: z.string().optional(),\n poolType: z.string().optional(),\n feePercentage: z.number().optional(),\n feeBps: z.number().optional(),\n});\n\nconst RouteDetailsSchema = z.object({\n hops: z.array(RouteHopSchema),\n totalFeePercentage: z.number().optional(),\n aggregator: z.string().optional(),\n});\n\n/**\n * Integration fee schema - represents a fee charged by the integrator\n * Fee is taken from native SOL (input or output depending on swap direction)\n */\nconst IntegrationFeeSchema = z.object({\n /** Fee amount in human-readable format (e.g., \"0.01\" for 0.01 SOL) */\n amount: z.string(),\n /** Fee percentage applied (0.01 to 99) */\n percentage: z.number(),\n /** Wallet address receiving the fee */\n wallet: z.string(),\n /** Whether fee is deducted from input (SOL→token) or output (token→SOL) */\n deductedFrom: z.enum(['input', 'output']),\n});\n\nconst BaseDataSchema = z.object({\n amountOutTokens: z.string().optional(),\n slippagePercentage: z.number().optional(),\n amountInUSD: z.number().optional(),\n amountOutUSD: z.number().optional(),\n marketImpactPercentage: z.number().optional(),\n poolFeesPercentage: z.number().optional(),\n tokenIn: TokenInfoSchema.optional(),\n tokenOut: TokenInfoSchema.optional(),\n requestId: z.string(),\n details: z\n .object({\n route: RouteDetailsSchema.optional(),\n aggregator: z.string().optional(),\n raw: z.record(z.unknown()).optional(),\n })\n .optional(),\n /** Integration fee details (if feePercentage and feeWallet were provided) */\n fee: IntegrationFeeSchema.optional(),\n});\n\nconst DataWithSolanaSchema = BaseDataSchema.extend({\n solana: z.object({\n transaction: SolanaTransactionSchema,\n /** The last block height at which the blockhash used in this transaction is valid */\n lastValidBlockHeight: z.number(),\n }),\n evm: z.null().optional(),\n});\n\nconst DataWithEVMSchema = BaseDataSchema.extend({\n evm: z.object({\n transaction: EVMTransactionSchema,\n }),\n solana: z.null().optional(),\n});\n\nconst DataWithErrorSchema = BaseDataSchema.extend({\n solana: z.null().optional(),\n evm: z.null().optional(),\n});\n\nexport const SwapQuotingDataSchema = z.union([DataWithSolanaSchema
|
|
77
|
-
"import { z } from 'zod';\n\nconst SwapQuotingBatchItemSchema = z\n .object({\n chainId: z.string(),\n tokenIn: z.string().min(1, 'tokenIn is required'),\n tokenOut: z.string().min(1, 'tokenOut is required'),\n amount: z.number().positive('Amount must be a positive number').optional(),\n amountRaw: z\n .string()\n .regex(/^\\d+$/, 'amountRaw must be a positive integer string')\n .refine((val) => BigInt(val) > 0n, 'amountRaw must be positive')\n .transform((val) => BigInt(val))\n .optional(),\n slippage: z.number().min(0).max(100, 'Slippage must be between 0 and 100').default(1),\n walletAddress: z.string().min(1, 'walletAddress is required'),\n excludedProtocols: z.array(z.string()).optional(),\n onlyProtocols: z.array(z.string()).optional(),\n poolAddress: z.string().optional(),\n onlyRouters: z\n .array(z.enum(['jupiter', 'kyberswap', 'lifi']))\n .optional()\n .transform((val) => (val?.length ? val : undefined)),\n /**\n * Priority fee configuration for Solana transactions.\n * Can be 'auto', a preset name, or a number in microLamports per CU.\n */\n priorityFee: z\n .union([\n z.literal('auto'),\n z.number().positive(),\n z.object({\n preset: z.enum(['low', 'medium', 'high', 'veryHigh']),\n }),\n ])\n .optional(),\n /**\n * Compute unit limit for Solana transactions.\n * Can be true for dynamic limit or a specific number.\n */\n computeUnitLimit: z.union([z.literal(true), z.number().positive()]).optional(),\n /**\n * Jito tip amount in lamports for Solana transactions.\n * This adds a SOL transfer instruction to a Jito tip account.\n */\n jitoTipLamports: z.number().positive().optional(),\n /**\n * Fee percentage to charge on the swap (0.01 to 99).\n * On Solana: Fee is always taken from SOL/WSOL (native token).\n */\n feePercentage: z.number().min(0.01).max(99).optional(),\n /**\n * Wallet address to receive fees (Solana only).\n * Required when feePercentage is set on Solana chains.\n */\n feeWallet: z.string().optional(),\n /**\n * Payer wallet address for Solana transactions (fee abstraction).\n * This wallet will be the fee payer (paying SOL rent/transaction fees) and the signer of the transaction.\n * The swap itself will still use the `walletAddress` for token transfers.\n *\n * Only supported for Solana chains.\n */\n payerAddress: z.string().optional(),\n })\n .refine((data) => (data.amount !== undefined) !== (data.amountRaw !== undefined), {\n message: 'Either amount or amountRaw must be provided (but not both)',\n path: ['amount'],\n });\n\nexport const SwapQuotingBatchBodySchema = z.object({\n requests: z\n .array(SwapQuotingBatchItemSchema)\n .min(1, 'At least one request is required')\n .max(30, 'Maximum 30 requests allowed per batch'),\n});\n\nexport type SwapQuotingBatchItem = z.infer<typeof SwapQuotingBatchItemSchema>;\nexport type SwapQuotingBatchBody = z.infer<typeof SwapQuotingBatchBodySchema>;\n",
|
|
79
|
+
"import { extendZodWithOpenApi } from '@asteasolutions/zod-to-openapi';\nimport { z } from 'zod';\n\nextendZodWithOpenApi(z);\n\nconst SolanaTransactionSchema = z.object({\n serialized: z.string(),\n variant: z.enum(['legacy', 'versioned']),\n});\n\nconst EVMTransactionSchema = z.object({\n to: z.string(),\n from: z.string(),\n data: z.string(),\n value: z.string(),\n gasLimit: z.string().optional(),\n gasPrice: z.string().optional(),\n maxFeePerGas: z.string().optional(),\n maxPriorityFeePerGas: z.string().optional(),\n nonce: z.number().optional(),\n chainId: z.number(),\n /** Address the user must approve the sell token to (defaults to `to` if not set) */\n approvalAddress: z.string().optional(),\n /** List of token approvals the user must execute before the swap */\n approvals: z.array(z.object({ token: z.string(), spender: z.string() })).optional(),\n});\n\nconst TokenInfoSchema = z.object({\n address: z.string(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n decimals: z.number(),\n logo: z.string().nullable().optional(),\n});\n\nconst RouteHopSchema = z.object({\n poolAddress: z.string(),\n tokenIn: TokenInfoSchema,\n tokenOut: TokenInfoSchema,\n amountInTokens: z.string(),\n amountOutTokens: z.string(),\n exchange: z.string().optional(),\n poolType: z.string().optional(),\n feePercentage: z.number().optional(),\n feeBps: z.number().optional(),\n});\n\nconst RouteDetailsSchema = z.object({\n hops: z.array(RouteHopSchema),\n totalFeePercentage: z.number().optional(),\n aggregator: z.string().optional(),\n});\n\n/**\n * Integration fee schema - represents a fee charged by the integrator\n * Fee is taken from native SOL (input or output depending on swap direction)\n */\nconst IntegrationFeeSchema = z.object({\n /** Fee amount in human-readable format (e.g., \"0.01\" for 0.01 SOL) */\n amount: z.string(),\n /** Fee percentage applied (0.01 to 99) */\n percentage: z.number(),\n /** Wallet address receiving the fee */\n wallet: z.string(),\n /** Whether fee is deducted from input (SOL→token) or output (token→SOL) */\n deductedFrom: z.enum(['input', 'output']),\n});\n\nconst BaseDataSchema = z.object({\n amountOutTokens: z.string().optional(),\n slippagePercentage: z.number().optional(),\n amountInUSD: z.number().optional(),\n amountOutUSD: z.number().optional(),\n marketImpactPercentage: z.number().optional(),\n poolFeesPercentage: z.number().optional(),\n tokenIn: TokenInfoSchema.optional(),\n tokenOut: TokenInfoSchema.optional(),\n requestId: z.string(),\n details: z\n .object({\n route: RouteDetailsSchema.optional(),\n aggregator: z.string().optional(),\n raw: z.record(z.unknown()).optional(),\n })\n .optional(),\n /** Integration fee details (if feePercentage and feeWallet were provided) */\n fee: IntegrationFeeSchema.optional(),\n});\n\nconst DataWithSolanaSchema = BaseDataSchema.extend({\n solana: z.object({\n transaction: SolanaTransactionSchema,\n /** The last block height at which the blockhash used in this transaction is valid */\n lastValidBlockHeight: z.number(),\n }),\n evm: z.null().optional(),\n});\n\nconst DataWithEVMSchema = BaseDataSchema.extend({\n evm: z.object({\n transaction: EVMTransactionSchema,\n }),\n solana: z.null().optional(),\n});\n\nconst CandidateSchema = z.object({\n /** Lander ID (e.g., 'jito', 'nozomi', 'zeroslot') */\n lander: z.string(),\n /** Base64-encoded serialized VersionedTransaction (unsigned) */\n serialized: z.string(),\n /** Tip account used for this candidate */\n tipAccount: z.string(),\n /** Tip amount in lamports */\n tipLamports: z.number(),\n});\n\nconst DataWithCandidatesSchema = BaseDataSchema.extend({\n /** Multi-lander candidate transactions (Solana only) */\n candidates: z.array(CandidateSchema).min(1),\n /** Durable nonce account public key */\n nonceAccount: z.string(),\n /** Nonce authority public key (must co-sign) */\n nonceAuthority: z.string(),\n solana: z.null().optional(),\n evm: z.null().optional(),\n});\n\nconst DataWithErrorSchema = BaseDataSchema.extend({\n solana: z.null().optional(),\n evm: z.null().optional(),\n});\n\nexport const SwapQuotingDataSchema = z.union([\n DataWithSolanaSchema,\n DataWithEVMSchema,\n DataWithCandidatesSchema,\n DataWithErrorSchema,\n]);\n\nexport const SwapQuotingOutputSchema = z.object({\n data: SwapQuotingDataSchema,\n error: z.string().optional(),\n});\n\nexport type SwapQuotingData = z.infer<typeof SwapQuotingDataSchema>;\nexport type SwapQuotingResponse = z.infer<typeof SwapQuotingOutputSchema>;\n",
|
|
80
|
+
"import { z } from 'zod';\n\nconst SwapQuotingBatchItemSchema = z\n .object({\n chainId: z.string(),\n tokenIn: z.string().min(1, 'tokenIn is required'),\n tokenOut: z.string().min(1, 'tokenOut is required'),\n amount: z.number().positive('Amount must be a positive number').optional(),\n amountRaw: z\n .string()\n .regex(/^\\d+$/, 'amountRaw must be a positive integer string')\n .refine((val) => BigInt(val) > 0n, 'amountRaw must be positive')\n .transform((val) => BigInt(val))\n .optional(),\n slippage: z.number().min(0).max(100, 'Slippage must be between 0 and 100').default(1),\n walletAddress: z.string().min(1, 'walletAddress is required'),\n excludedProtocols: z.array(z.string()).optional(),\n onlyProtocols: z.array(z.string()).optional(),\n poolAddress: z.string().optional(),\n onlyRouters: z\n .array(z.enum(['jupiter', 'naos', 'kyberswap', 'lifi']))\n .optional()\n .transform((val) => (val?.length ? val : undefined)),\n /**\n * Priority fee configuration for Solana transactions.\n * Can be 'auto', a preset name, or a number in microLamports per CU.\n */\n priorityFee: z\n .union([\n z.literal('auto'),\n z.number().positive(),\n z.object({\n preset: z.enum(['low', 'medium', 'high', 'veryHigh']),\n }),\n ])\n .optional(),\n /**\n * Compute unit limit for Solana transactions.\n * Can be true for dynamic limit or a specific number.\n */\n computeUnitLimit: z.union([z.literal(true), z.number().positive()]).optional(),\n /**\n * Jito tip amount in lamports for Solana transactions.\n * This adds a SOL transfer instruction to a Jito tip account.\n */\n jitoTipLamports: z.number().positive().optional(),\n /**\n * Fee percentage to charge on the swap (0.01 to 99).\n * On Solana: Fee is always taken from SOL/WSOL (native token).\n */\n feePercentage: z.number().min(0.01).max(99).optional(),\n /**\n * Wallet address to receive fees (Solana only).\n * Required when feePercentage is set on Solana chains.\n */\n feeWallet: z.string().optional(),\n /**\n * Payer wallet address for Solana transactions (fee abstraction).\n * This wallet will be the fee payer (paying SOL rent/transaction fees) and the signer of the transaction.\n * The swap itself will still use the `walletAddress` for token transfers.\n *\n * Only supported for Solana chains.\n */\n payerAddress: z.string().optional(),\n })\n .refine((data) => (data.amount !== undefined) !== (data.amountRaw !== undefined), {\n message: 'Either amount or amountRaw must be provided (but not both)',\n path: ['amount'],\n });\n\nexport const SwapQuotingBatchBodySchema = z.object({\n requests: z\n .array(SwapQuotingBatchItemSchema)\n .min(1, 'At least one request is required')\n .max(30, 'Maximum 30 requests allowed per batch'),\n});\n\nexport type SwapQuotingBatchItem = z.infer<typeof SwapQuotingBatchItemSchema>;\nexport type SwapQuotingBatchBody = z.infer<typeof SwapQuotingBatchBodySchema>;\n",
|
|
78
81
|
"import { z } from 'zod';\n\n/**\n * Solana instruction schema - represents a single instruction that can be\n * added to a transaction. This allows clients to add their own instructions\n * (e.g., fee transfers, Jito tips) before building the transaction.\n */\nexport const SolanaInstructionSchema = z.object({\n /** Program ID that will process this instruction */\n programId: z.string(),\n /** Account keys involved in the instruction */\n accounts: z.array(\n z.object({\n pubkey: z.string(),\n isSigner: z.boolean(),\n isWritable: z.boolean(),\n }),\n ),\n /** Instruction data as base64 encoded string */\n data: z.string(),\n});\n\n/**\n * Solana instructions response schema\n * Contains all the instructions needed to execute a swap, which the client\n * can combine with their own instructions before building and signing.\n */\nexport const SolanaInstructionsSchema = z.object({\n /** Instructions to set compute budget (priority fees, compute limits) */\n computeBudgetInstructions: z.array(SolanaInstructionSchema).optional(),\n /** Setup instructions (e.g., create token accounts) */\n setupInstructions: z.array(SolanaInstructionSchema).optional(),\n /** Swap instructions (can be multiple for multi-hop routes) */\n swapInstructions: z.array(SolanaInstructionSchema),\n /** Cleanup instructions (e.g., close token accounts) */\n cleanupInstructions: z.array(SolanaInstructionSchema).optional(),\n /** Address lookup table addresses for versioned transactions */\n addressLookupTableAddresses: z.array(z.string()).optional(),\n});\n\nconst TokenInfoSchema = z.object({\n address: z.string(),\n name: z.string().optional(),\n symbol: z.string().optional(),\n decimals: z.number(),\n logo: z.string().nullable().optional(),\n});\n\nconst RouteHopSchema = z.object({\n poolAddress: z.string(),\n tokenIn: TokenInfoSchema,\n tokenOut: TokenInfoSchema,\n amountInTokens: z.string(),\n amountOutTokens: z.string(),\n exchange: z.string().optional(),\n poolType: z.string().optional(),\n feePercentage: z.number().optional(),\n feeBps: z.number().optional(),\n});\n\nconst RouteDetailsSchema = z.object({\n hops: z.array(RouteHopSchema),\n totalFeePercentage: z.number().optional(),\n aggregator: z.string().optional(),\n});\n\n/**\n * Integration fee schema - represents a fee charged by the integrator\n * Fee is taken from native SOL (input or output depending on swap direction)\n */\nconst IntegrationFeeSchema = z.object({\n /** Fee amount in human-readable format (e.g., \"0.01\" for 0.01 SOL) */\n amount: z.string(),\n /** Fee percentage applied (0.01 to 99) */\n percentage: z.number(),\n /** Wallet address receiving the fee */\n wallet: z.string(),\n /** Whether fee is deducted from input (SOL→token) or output (token→SOL) */\n deductedFrom: z.enum(['input', 'output']),\n});\n\n/**\n * Data schema for swap quoting instructions endpoint\n * Returns instructions instead of a serialized transaction\n */\nexport const SwapQuotingInstructionsDataSchema = z.object({\n /** Estimated output amount in tokens */\n amountOutTokens: z.string().optional(),\n /** Slippage percentage */\n slippagePercentage: z.number().optional(),\n /** Input amount in USD */\n amountInUSD: z.number().optional(),\n /** Output amount in USD */\n amountOutUSD: z.number().optional(),\n /** Market impact percentage */\n marketImpactPercentage: z.number().optional(),\n /** Pool fees percentage */\n poolFeesPercentage: z.number().optional(),\n /** Token input metadata */\n tokenIn: TokenInfoSchema.optional(),\n /** Token output metadata */\n tokenOut: TokenInfoSchema.optional(),\n /** Unique request ID */\n requestId: z.string(),\n /** Route details */\n details: z\n .object({\n route: RouteDetailsSchema.optional(),\n aggregator: z.string().optional(),\n raw: z.record(z.unknown()).optional(),\n })\n .optional(),\n /** Solana instructions data */\n solana: z.object({\n /** All instructions needed to execute the swap */\n instructions: SolanaInstructionsSchema,\n /** The last block height at which the blockhash will be valid */\n lastValidBlockHeight: z.number(),\n /** Recent blockhash to use when building the transaction */\n recentBlockhash: z.string(),\n }),\n /** Integration fee details (if feePercentage and feeWallet were provided) */\n fee: IntegrationFeeSchema.optional(),\n});\n\nexport const SwapQuotingInstructionsOutputSchema = z.object({\n data: SwapQuotingInstructionsDataSchema,\n error: z.string().optional(),\n});\n\nexport type SolanaInstruction = z.infer<typeof SolanaInstructionSchema>;\nexport type SolanaInstructions = z.infer<typeof SolanaInstructionsSchema>;\nexport type SwapQuotingInstructionsData = z.infer<typeof SwapQuotingInstructionsDataSchema>;\nexport type SwapQuotingInstructionsResponse = z.infer<typeof SwapQuotingInstructionsOutputSchema>;\n",
|
|
79
|
-
"import { z } from 'zod';\n\n/**\n * Swap Quoting Query Schema\n *\n * Amount specification:\n * - Either `amount` OR `amountRaw` must be provided (but not both)\n * - `amount`: Human-readable amount (e.g., \"1.5\" for 1.5 tokens)\n * This will be converted to raw amount by multiplying by 10^decimals\n * Example: For USDC (6 decimals), amount=\"1.5\" becomes 1500000 raw units\n * - `amountRaw`: Raw amount as a string (e.g., \"1500000\" for 1.5 USDC with 6 decimals)\n * This is the exact amount that will be used in the swap without conversion\n * Useful when you already have the raw amount and want to avoid precision loss\n *\n * Decimals explanation:\n * Tokens have a decimals property (typically 18 for ETH, 6 for USDC, 8 for BTC)\n * Raw amount = human-readable amount × 10^decimals\n * Example: 1.5 USDC (6 decimals) = 1.5 × 10^6 = 1500000 raw units\n */\nexport const SwapQuotingQuerySchema = z\n .object({\n chainId: z.string(),\n tokenIn: z.string().min(1, 'tokenIn is required'),\n tokenOut: z.string().min(1, 'tokenOut is required'),\n /**\n * Human-readable amount (e.g., \"1.5\" for 1.5 tokens)\n * Will be converted to raw amount by multiplying by 10^decimals\n */\n amount: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const parsed = Number.parseFloat(val);\n if (Number.isNaN(parsed) || parsed <= 0) {\n throw new Error('Amount must be a positive number');\n }\n return parsed;\n }),\n /**\n * Raw amount as a string (e.g., \"1500000\" for 1.5 USDC with 6 decimals)\n * This is the exact amount that will be used in the swap without conversion\n * Must be a positive integer string\n */\n amountRaw: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n // Validate it's a valid positive integer string\n if (!/^\\d+$/.test(val)) {\n throw new Error('amountRaw must be a positive integer string');\n }\n const parsed = BigInt(val);\n if (parsed <= 0n) {\n throw new Error('amountRaw must be a positive integer');\n }\n return parsed;\n }),\n slippage: z\n .string()\n .optional()\n .default('1')\n .transform((val) => {\n const parsed = Number.parseFloat(val);\n if (Number.isNaN(parsed) || parsed < 0 || parsed > 100) {\n throw new Error('Slippage must be between 0 and 100');\n }\n return parsed;\n }),\n walletAddress: z.string().min(1, 'walletAddress is required'),\n excludedProtocols: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n return val\n .split(',')\n .map((f) => f.trim())\n .filter((f) => f.length > 0);\n }),\n onlyProtocols: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n // Return raw string values - no mapping, pass directly to KyberSwap\n return val\n .split(',')\n .map((t) => t.trim())\n .filter((t) => t.length > 0);\n }),\n poolAddress: z.string().optional(),\n onlyRouters: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const supportedRouters = ['jupiter', 'kyberswap', 'lifi'] as const;\n\n // Handle comma-separated values for array support\n const routers = val\n .split(',')\n .map((r) => r.trim().toLowerCase())\n .filter((r) => r.length > 0);\n\n // Validate all routers\n for (const router of routers) {\n if (!supportedRouters.includes(router as (typeof supportedRouters)[number])) {\n throw new Error(`Invalid router \"${router}\". Supported routers: ${supportedRouters.join(', ')}`);\n }\n }\n\n // Always return array (or undefined if empty)\n if (routers.length === 0) return undefined;\n return routers as Array<(typeof supportedRouters)[number]>;\n }),\n /**\n * Priority fee configuration for Solana transactions.\n * Can be:\n * - 'auto': Automatically estimate priority fee based on network conditions\n * - A number: Exact priority fee in microLamports per compute unit\n * - A preset name: 'low', 'medium', 'high', 'veryHigh'\n *\n * Presets (microLamports per CU):\n * - low: 10,000 (0.01 lamports/CU)\n * - medium: 100,000 (0.1 lamports/CU)\n * - high: 500,000 (0.5 lamports/CU)\n * - veryHigh: 1,000,000 (1 lamport/CU)\n */\n priorityFee: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n if (val === 'auto') return 'auto' as const;\n\n const presets = ['low', 'medium', 'high', 'veryHigh'] as const;\n if (presets.includes(val as (typeof presets)[number])) {\n return { preset: val as (typeof presets)[number] };\n }\n\n const numValue = Number.parseInt(val, 10);\n if (!Number.isNaN(numValue) && numValue > 0) {\n return numValue;\n }\n\n throw new Error(\n `Invalid priorityFee \"${val}\". Must be 'auto', a preset (low, medium, high, veryHigh), or a positive number`,\n );\n }),\n /**\n * Compute unit limit for Solana transactions.\n * Can be 'true' for dynamic limit or a specific number.\n * Default: 400,000\n */\n computeUnitLimit: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n if (val === 'true') return true as const;\n\n const numValue = Number.parseInt(val, 10);\n if (!Number.isNaN(numValue) && numValue > 0) {\n return numValue;\n }\n\n throw new Error(`Invalid computeUnitLimit \"${val}\". Must be 'true' or a positive number`);\n }),\n /**\n * Jito tip amount in lamports for Solana transactions.\n * This adds a SOL transfer instruction to a Jito tip account to prioritize\n * the transaction via Jito's block engine.\n *\n * The tip is sent to one of Jito's official tip accounts and helps ensure\n * faster transaction inclusion.\n *\n * Example: 10000 = 0.00001 SOL tip\n *\n * Note: This is separate from priorityFee (compute unit price).\n * For best results, use both jitoTipLamports and priorityFee together.\n */\n jitoTipLamports: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n\n const numValue = Number.parseInt(val, 10);\n if (!Number.isNaN(numValue) && numValue > 0) {\n return numValue;\n }\n\n throw new Error(`Invalid jitoTipLamports \"${val}\". Must be a positive number`);\n }),\n /**\n * Fee percentage to charge on the swap (0.01 to 99).\n * This is the percentage of the input token amount that will be charged as a fee.\n *\n * On Solana: Fee is always taken from SOL/WSOL (native token).\n * - If tokenIn is SOL/WSOL → fee is deducted from input before swap\n * - If tokenOut is SOL/WSOL → fee is deducted from output after swap\n *\n * Must be used together with feeWallet on Solana.\n */\n feePercentage: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n\n const numValue = Number.parseFloat(val);\n if (Number.isNaN(numValue) || numValue < 0.01 || numValue > 99) {\n throw new Error('feePercentage must be between 0.01 and 99');\n }\n\n return numValue;\n }),\n /**\n * Wallet address to receive fees (Solana only).\n * Must be a valid Solana wallet address.\n * Required when feePercentage is set on Solana chains.\n */\n feeWallet: z.string().optional(),\n /**\n * Payer wallet address for Solana transactions (fee abstraction).\n * This wallet will be the fee payer and signer of the transaction.\n * The swap itself uses `walletAddress` for token transfers.\n * If not provided, `walletAddress` is used as the payer.\n * Only supported for Solana chains.\n */\n payerAddress: z.string().optional(),\n })\n .refine(\n (data) => {\n const hasAmount = data.amount !== undefined;\n const hasAmountRaw = data.amountRaw !== undefined;\n return hasAmount !== hasAmountRaw; // XOR: exactly one must be provided\n },\n {\n message: 'Either amount or amountRaw must be provided (but not both)',\n path: ['amount'],\n },\n );\n\n/** Inferred type from SwapQuotingQuerySchema - includes payerAddress for fee abstraction */\nexport type SwapQuotingQueryParams = z.infer<typeof SwapQuotingQuerySchema>;\n",
|
|
80
|
-
"import { z } from 'zod';\n\nexport const SwapSendResponseSchema = z.object({\n data: z.object({\n success: z.boolean(),\n transactionHash: z.string().optional(),\n requestId: z.string(),\n }),\n error: z.string().optional(),\n});\n\nexport type SwapSendResponse = z.infer<typeof SwapSendResponseSchema>;\n",
|
|
81
|
-
"import { z } from 'zod';\n\
|
|
82
|
-
"import { z } from 'zod';\nimport { CurrenciesParamSchema } from '../../utils/schemas/CurrencySchema.ts';\n\nconst TokenAthItemParams = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n currencies: CurrenciesParamSchema,\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n});\n\nexport const TokenAthParamsSchema = TokenAthItemParams;\n\nexport const TokenAthBatchParamsSchema = z.union([\n z.array(TokenAthItemParams),\n z.object({\n items: z.array(TokenAthItemParams),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\nexport type TokenAthParams =
|
|
83
|
-
"import { z } from 'zod';\nimport { CurrenciesParamSchema } from '../../utils/schemas/CurrencySchema.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nconst TokenDetailsItemParams = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n currencies: CurrenciesParamSchema,\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n});\n\nconst TokenDetailsParamsSchema = TokenDetailsItemParams;\n\nconst TokenDetailsBatchParamsSchema = z.union([\n z.array(TokenDetailsItemParams),\n z.object({\n items: z.array(TokenDetailsItemParams),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\nexport type TokenDetailsParams =
|
|
82
|
+
"import { z } from 'zod';\n\n/**\n * Swap Quoting Query Schema\n *\n * Amount specification:\n * - Either `amount` OR `amountRaw` must be provided (but not both)\n * - `amount`: Human-readable amount (e.g., \"1.5\" for 1.5 tokens)\n * This will be converted to raw amount by multiplying by 10^decimals\n * Example: For USDC (6 decimals), amount=\"1.5\" becomes 1500000 raw units\n * - `amountRaw`: Raw amount as a string (e.g., \"1500000\" for 1.5 USDC with 6 decimals)\n * This is the exact amount that will be used in the swap without conversion\n * Useful when you already have the raw amount and want to avoid precision loss\n *\n * Decimals explanation:\n * Tokens have a decimals property (typically 18 for ETH, 6 for USDC, 8 for BTC)\n * Raw amount = human-readable amount × 10^decimals\n * Example: 1.5 USDC (6 decimals) = 1.5 × 10^6 = 1500000 raw units\n */\nexport const SwapQuotingQuerySchema = z\n .object({\n chainId: z.string(),\n tokenIn: z.string().min(1, 'tokenIn is required'),\n tokenOut: z.string().min(1, 'tokenOut is required'),\n /**\n * Human-readable amount (e.g., \"1.5\" for 1.5 tokens)\n * Will be converted to raw amount by multiplying by 10^decimals\n */\n amount: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const parsed = Number.parseFloat(val);\n if (Number.isNaN(parsed) || parsed <= 0) {\n throw new Error('Amount must be a positive number');\n }\n return parsed;\n }),\n /**\n * Raw amount as a string (e.g., \"1500000\" for 1.5 USDC with 6 decimals)\n * This is the exact amount that will be used in the swap without conversion\n * Must be a positive integer string\n */\n amountRaw: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n // Validate it's a valid positive integer string\n if (!/^\\d+$/.test(val)) {\n throw new Error('amountRaw must be a positive integer string');\n }\n const parsed = BigInt(val);\n if (parsed <= 0n) {\n throw new Error('amountRaw must be a positive integer');\n }\n return parsed;\n }),\n slippage: z\n .string()\n .optional()\n .default('1')\n .transform((val) => {\n const parsed = Number.parseFloat(val);\n if (Number.isNaN(parsed) || parsed < 0 || parsed > 100) {\n throw new Error('Slippage must be between 0 and 100');\n }\n return parsed;\n }),\n walletAddress: z.string().min(1, 'walletAddress is required'),\n excludedProtocols: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n return val\n .split(',')\n .map((f) => f.trim())\n .filter((f) => f.length > 0);\n }),\n onlyProtocols: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n // Return raw string values - no mapping, pass directly to aggregator\n return val\n .split(',')\n .map((t) => t.trim())\n .filter((t) => t.length > 0);\n }),\n poolAddress: z.string().optional(),\n onlyRouters: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const supportedRouters = ['jupiter', 'naos', 'kyberswap', 'lifi'] as const;\n\n // Handle comma-separated values for array support\n const routers = val\n .split(',')\n .map((r) => r.trim().toLowerCase())\n .filter((r) => r.length > 0);\n\n // Validate all routers\n for (const router of routers) {\n if (!supportedRouters.includes(router as (typeof supportedRouters)[number])) {\n throw new Error(`Invalid router \"${router}\". Supported routers: ${supportedRouters.join(', ')}`);\n }\n }\n\n // Always return array (or undefined if empty)\n if (routers.length === 0) return undefined;\n return routers as Array<(typeof supportedRouters)[number]>;\n }),\n /**\n * Priority fee configuration for Solana transactions.\n * Can be:\n * - 'auto': Automatically estimate priority fee based on network conditions\n * - A number: Exact priority fee in microLamports per compute unit\n * - A preset name: 'low', 'medium', 'high', 'veryHigh'\n *\n * Presets (microLamports per CU):\n * - low: 10,000 (0.01 lamports/CU)\n * - medium: 100,000 (0.1 lamports/CU)\n * - high: 500,000 (0.5 lamports/CU)\n * - veryHigh: 1,000,000 (1 lamport/CU)\n */\n priorityFee: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n if (val === 'auto') return 'auto' as const;\n\n const presets = ['low', 'medium', 'high', 'veryHigh'] as const;\n if (presets.includes(val as (typeof presets)[number])) {\n return { preset: val as (typeof presets)[number] };\n }\n\n const numValue = Number.parseInt(val, 10);\n if (!Number.isNaN(numValue) && numValue > 0) {\n return numValue;\n }\n\n throw new Error(\n `Invalid priorityFee \"${val}\". Must be 'auto', a preset (low, medium, high, veryHigh), or a positive number`,\n );\n }),\n /**\n * Compute unit limit for Solana transactions.\n * Can be 'true' for dynamic limit or a specific number.\n * Default: 400,000\n */\n computeUnitLimit: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n if (val === 'true') return true as const;\n\n const numValue = Number.parseInt(val, 10);\n if (!Number.isNaN(numValue) && numValue > 0) {\n return numValue;\n }\n\n throw new Error(`Invalid computeUnitLimit \"${val}\". Must be 'true' or a positive number`);\n }),\n /**\n * Jito tip amount in lamports for Solana transactions.\n * This adds a SOL transfer instruction to a Jito tip account to prioritize\n * the transaction via Jito's block engine.\n *\n * The tip is sent to one of Jito's official tip accounts and helps ensure\n * faster transaction inclusion.\n *\n * Example: 10000 = 0.00001 SOL tip\n *\n * Note: This is separate from priorityFee (compute unit price).\n * For best results, use both jitoTipLamports and priorityFee together.\n */\n jitoTipLamports: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n\n const numValue = Number.parseInt(val, 10);\n if (!Number.isNaN(numValue) && numValue > 0) {\n return numValue;\n }\n\n throw new Error(`Invalid jitoTipLamports \"${val}\". Must be a positive number`);\n }),\n /**\n * Fee percentage to charge on the swap (0.01 to 99).\n * This is the percentage of the input token amount that will be charged as a fee.\n *\n * On Solana: Fee is always taken from SOL/WSOL (native token).\n * - If tokenIn is SOL/WSOL → fee is deducted from input before swap\n * - If tokenOut is SOL/WSOL → fee is deducted from output after swap\n *\n * Must be used together with feeWallet on Solana.\n */\n feePercentage: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n\n const numValue = Number.parseFloat(val);\n if (Number.isNaN(numValue) || numValue < 0.01 || numValue > 99) {\n throw new Error('feePercentage must be between 0.01 and 99');\n }\n\n return numValue;\n }),\n /**\n * Wallet address to receive fees (Solana only).\n * Must be a valid Solana wallet address.\n * Required when feePercentage is set on Solana chains.\n */\n feeWallet: z.string().optional(),\n /**\n * Payer wallet address for Solana transactions (fee abstraction).\n * This wallet will be the fee payer and signer of the transaction.\n * The swap itself uses `walletAddress` for token transfers.\n * If not provided, `walletAddress` is used as the payer.\n * Only supported for Solana chains.\n */\n payerAddress: z.string().optional(),\n /**\n * Enable multi-lander mode (Solana only).\n * When 'true', returns N candidate transactions (one per active lander)\n * using a durable nonce. Only one candidate can land on-chain.\n *\n * Requires the server to have durable nonce accounts provisioned.\n * Ignores jitoTipLamports (tips are auto-generated per lander).\n */\n multiLander: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n if (val === 'true') return true as const;\n if (val === 'false') return undefined;\n throw new Error(`Invalid multiLander \"${val}\". Must be 'true' or 'false'`);\n }),\n /**\n * Tip amount in lamports for multi-lander mode.\n * Each candidate will tip this amount to its respective lander.\n * Default: use the lander's minimum tip.\n */\n landerTipLamports: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const numValue = Number.parseInt(val, 10);\n if (!Number.isNaN(numValue) && numValue > 0) {\n return numValue;\n }\n throw new Error(`Invalid landerTipLamports \"${val}\". Must be a positive number`);\n }),\n })\n .refine(\n (data) => {\n const hasAmount = data.amount !== undefined;\n const hasAmountRaw = data.amountRaw !== undefined;\n return hasAmount !== hasAmountRaw; // XOR: exactly one must be provided\n },\n {\n message: 'Either amount or amountRaw must be provided (but not both)',\n path: ['amount'],\n },\n );\n\n/** Inferred type from SwapQuotingQuerySchema - includes payerAddress for fee abstraction */\nexport type SwapQuotingQueryParams = z.infer<typeof SwapQuotingQuerySchema>;\n",
|
|
83
|
+
"import { z } from 'zod';\n\nconst SwapTokenSchema = z.object({\n address: z.string(),\n amount: z.string(),\n});\n\nexport const SwapSendResponseSchema = z.object({\n data: z.object({\n success: z.boolean(),\n transactionHash: z.string().optional(),\n requestId: z.string(),\n /** Which lander landed the transaction (batch mode only) */\n lander: z.string().optional(),\n /** Time in ms from send to first RPC acceptance */\n landingTimeMs: z.number().optional(),\n /** Landing status (only present when awaitLanding is true) */\n status: z.enum(['broadcasted', 'processed', 'confirmed', 'failed', 'timeout']).optional(),\n /** Time in ms from broadcast to on-chain confirmation */\n onchainLandingTimeMs: z.number().optional(),\n /** Parsed swap data from the confirmed transaction */\n swap: z\n .object({\n tokenIn: SwapTokenSchema,\n tokenOut: SwapTokenSchema,\n })\n .optional(),\n }),\n error: z.string().optional(),\n});\n\nexport type SwapSendResponse = z.infer<typeof SwapSendResponseSchema>;\n",
|
|
84
|
+
"import { z } from 'zod';\n\nconst base64ToBuffer = z\n .string()\n .min(1, 'signedTransaction is required')\n .transform((val) => {\n try {\n return Buffer.from(val, 'base64');\n } catch {\n throw new Error('signedTransaction must be a valid base64 string');\n }\n });\n\n/** A candidate transaction targeting a specific lander (block engine). */\nconst SwapSendCandidateSchema = z.object({\n lander: z.string().min(1, 'lander is required'),\n signedTransaction: base64ToBuffer,\n});\n\nexport type SwapSendCandidate = z.infer<typeof SwapSendCandidateSchema>;\n\n/**\n * Swap send schema — backward-compatible.\n *\n * Single mode: { chainId, signedTransaction }\n * Batch mode: { chainId, candidates: [{ lander, signedTransaction }, ...] }\n */\nexport const SwapSendSchema = z\n .object({\n chainId: z.string(),\n signedTransaction: base64ToBuffer.optional(),\n candidates: z.array(SwapSendCandidateSchema).min(1).optional(),\n /** When true, the endpoint blocks until on-chain confirmation and returns swap data. */\n awaitLanding: z.boolean().optional(),\n })\n .refine((data) => data.signedTransaction || data.candidates, {\n message: 'Either signedTransaction or candidates must be provided',\n })\n .refine((data) => !(data.signedTransaction && data.candidates), {\n message: 'Provide signedTransaction or candidates, not both',\n });\n\nexport type SwapSendParams = z.infer<typeof SwapSendSchema>;\n",
|
|
85
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams, type SDKInput } from '../../utils/functions/openAPIHelpers.ts';\nimport { CurrenciesParamSchema } from '../../utils/schemas/CurrencySchema.ts';\n\nconst TokenAthItemParams = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n currencies: CurrenciesParamSchema,\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n});\n\nexport const TokenAthParamsSchema = TokenAthItemParams;\n\nexport const TokenAthBatchParamsSchema = z.union([\n z.array(TokenAthItemParams),\n z.object({\n items: z.array(TokenAthItemParams),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\nconst TOKEN_ATH_HIDDEN = ['instanceTracking'] as const;\ntype TokenAthHiddenFields = (typeof TOKEN_ATH_HIDDEN)[number];\n\nexport type TokenAthParams = SDKInput<typeof TokenAthParamsSchema, TokenAthHiddenFields>;\nexport type TokenAthBatchParams = z.input<typeof TokenAthBatchParamsSchema>;\n\nexport const TokenAthParamsSchemaOpenAPI = createOpenAPIParams(TokenAthParamsSchema, {\n omit: [...TOKEN_ATH_HIDDEN],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Token contract address',\n currencies: 'Comma-separated list of currencies for price conversion',\n },\n});\n\nconst TokenAthItemParamsOpenAPI = createOpenAPIParams(TokenAthItemParams, {\n omit: [...TOKEN_ATH_HIDDEN],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Token contract address',\n currencies: 'Comma-separated list of currencies for price conversion',\n },\n});\n\nexport const TokenAthBatchParamsSchemaOpenAPI = z.union([\n z.array(TokenAthItemParamsOpenAPI),\n z.object({\n items: z.array(TokenAthItemParamsOpenAPI),\n }),\n]);\n\nexport const TokenAthOutput = z.object({\n address: z.string(),\n chainId: z.string(),\n symbol: z.string().nullable(),\n name: z.string().nullable(),\n athUSD: z.coerce.number().optional(),\n atlUSD: z.coerce.number().optional(),\n athDate: z.coerce.date().optional(),\n atlDate: z.coerce.date().optional(),\n priceUSD: z.coerce.number().default(0),\n});\n\nexport type TokenAthOutputType = z.infer<typeof TokenAthOutput>;\n\nexport const TokenAthResponseSchema = z.object({\n data: TokenAthOutput,\n hostname: z.string().optional(),\n});\nexport type TokenAthResponse = z.infer<typeof TokenAthResponseSchema>;\n\nexport const TokenAthBatchResponseSchema = z.object({\n payload: z.array(TokenAthOutput.or(z.object({ error: z.string().optional() })).nullable()),\n hostname: z.string().optional(),\n});\nexport type TokenAthBatchResponse = z.infer<typeof TokenAthBatchResponseSchema>;\n",
|
|
86
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams, type SDKInput } from '../../utils/functions/openAPIHelpers.ts';\nimport { CurrenciesParamSchema } from '../../utils/schemas/CurrencySchema.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nconst TokenDetailsItemParams = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n currencies: CurrenciesParamSchema,\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n});\n\nconst TokenDetailsParamsSchema = TokenDetailsItemParams;\n\nconst TokenDetailsBatchParamsSchema = z.union([\n z.array(TokenDetailsItemParams),\n z.object({\n items: z.array(TokenDetailsItemParams),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\nconst TOKEN_DETAILS_HIDDEN = ['instanceTracking'] as const;\ntype TokenDetailsHiddenFields = (typeof TOKEN_DETAILS_HIDDEN)[number];\n\nexport type TokenDetailsParams = SDKInput<typeof TokenDetailsParamsSchema, TokenDetailsHiddenFields>;\n\nexport const TokenDetailsParamsSchemaOpenAPI = createOpenAPIParams(TokenDetailsParamsSchema, {\n omit: [...TOKEN_DETAILS_HIDDEN],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Token contract address',\n currencies: 'Comma-separated list of currencies for price conversion',\n },\n});\n\nconst TokenDetailsItemParamsOpenAPI = createOpenAPIParams(TokenDetailsItemParams, {\n omit: [...TOKEN_DETAILS_HIDDEN],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Token contract address',\n currencies: 'Comma-separated list of currencies for price conversion',\n },\n});\n\nexport const TokenDetailsBatchParamsSchemaOpenAPI = z.union([\n z.array(TokenDetailsItemParamsOpenAPI),\n z.object({\n items: z.array(TokenDetailsItemParamsOpenAPI),\n }),\n]);\n\nexport const TokenDetailsResponseSchema = z.object({\n data: TokenDetailsOutput,\n hostname: z.string().optional(),\n});\nexport type TokenDetailsResponse = z.infer<typeof TokenDetailsResponseSchema>;\n\nexport const TokenDetailsBatchResponseSchema = z.object({\n payload: z.array(TokenDetailsOutput.or(z.object({ error: z.string().optional() })).nullable()),\n hostname: z.string().optional(),\n});\nexport type TokenDetailsBatchResponse = z.infer<typeof TokenDetailsBatchResponseSchema>;\n\nexport type TokenDetailsBatchParams = z.input<typeof TokenDetailsBatchParamsSchema>;\n\nexport { TokenDetailsParamsSchema, TokenDetailsBatchParamsSchema };\n",
|
|
84
87
|
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\n\nexport const TokenKlineBsPointParamsSchema = z.object({\n blockchain: z.string(),\n address: z.string(),\n bar: z.string().transform((val) => normalizePeriod(val ?? '5m', '5m')),\n fromDate: DateQuery.transform((val) => val ?? undefined),\n toDate: DateQuery.transform((val) => val ?? undefined),\n transactionSenderAddresses: stringOrArray.default([]),\n labels: stringOrArray\n .optional()\n .transform((val) => val?.map((label) => String(label).trim()).filter((label) => label.length > 0) ?? []),\n});\n\nexport type TokenKlineBsPointParams = z.input<typeof TokenKlineBsPointParamsSchema>;\nexport type TokenKlineBsPointInferType = z.infer<typeof TokenKlineBsPointParamsSchema>;\n\nexport const TokenKlineBsBubblePoint = z.object({\n volumeBuyToken: z.string(), // total base token bought in the bucket\n buys: z.string(), // number of buy trades\n avgBuyPriceUSD: z.string(), // average buy price (buyValue / buyAmount), \"0\" if no buys\n volumeBuy: z.string(), // total USD value of buys\n\n volumeSellToken: z.string(), // total base token sold in the bucket\n sells: z.string(), // number of sell trades\n avgSellPriceUSD: z.string(), // average sell price (sellValue / sellAmount), \"0\" if no sells\n volumeSell: z.string(), // total USD value of sells\n\n fromAddress: z.string(), // address-level bubble => wallet address; tag-only bubble => empty string\n fromAddressTag: z.string(), // main tag for this bubble, e.g. \"following\", \"dev\"\n\n time: z.string(), // bucket start time in ms (string)\n});\n\nexport const TokenKlineBsPointResponseSchema = z.object({\n data: z.array(TokenKlineBsBubblePoint),\n});\n\nexport type TokenKlineBsPointResponse = z.infer<typeof TokenKlineBsPointResponseSchema>;\n",
|
|
85
88
|
"import { z } from 'zod';\nimport { MarketDetailsOutput } from '../../utils/schemas/MarketDetailsOutput.ts';\n\nconst DEFAULT_MARKETS_RES_LIMIT = 10;\nconst MARKETS_MAX__RES_LIMIT = 25;\n\nexport const TokenMarketsParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string(),\n limit: z.coerce.number().min(1).max(MARKETS_MAX__RES_LIMIT).default(DEFAULT_MARKETS_RES_LIMIT),\n});\n\nexport type TokenMarketsParams = z.input<typeof TokenMarketsParamsSchema>;\n\n/**\n * The resolved data for TokenMarkets is an array of what MarketDetails resolve, so we\n * use the same schema as a base.\n */\nexport const TokenMarketsOutput = z.array(MarketDetailsOutput);\n\nexport const TokenMarketsResponseSchema = z.object({\n data: TokenMarketsOutput,\n totalCount: z.number(),\n});\n\nexport type TokenMarketsResponse = z.infer<typeof TokenMarketsResponseSchema>;\n",
|
|
86
|
-
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\n// Helper for boolean parsing from query string\nconst booleanFromString = z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n });\n\n// Single token query schema (shared between GET params and POST body items)\nconst TokenOHLCVHistoryItemSchema = z.object({\n address: z.string(),\n chainId: z.string(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => (val ? normalizePeriod(val) : '5m')),\n amount: z.coerce.number().optional(),\n usd: booleanFromString,\n});\n\n// ==================== TOKEN OHLCV ====================\n// GET: address + chainId required\nexport const TokenOHLCVHistoryParamsSchema = TokenOHLCVHistoryItemSchema.refine(\n (data) => data.address && data.chainId,\n { message: 'address and chainId are required' },\n);\n\nexport type TokenOHLCVHistoryParams = z.input<typeof TokenOHLCVHistoryParamsSchema>;\nexport type TokenOHLCVHistoryInferType = z.infer<typeof TokenOHLCVHistoryParamsSchema>;\n\n// Array schema for batch items\nconst TokenOHLCVHistoryArraySchema = z\n .array(TokenOHLCVHistoryItemSchema)\n .min(1, 'At least one token is required')\n .max(10, 'Maximum 10 tokens per request');\n\n// POST request schema - supports both array and object with 'tokens' key\nexport const TokenOHLCVHistoryBatchParamsSchema = z.union([\n TokenOHLCVHistoryArraySchema,\n z.object({ tokens: TokenOHLCVHistoryArraySchema }),\n]);\n\nexport type TokenOHLCVHistoryBatchParams = z.input<typeof TokenOHLCVHistoryBatchParamsSchema>;\n\n// ==================== RESPONSE SCHEMA ====================\nconst OHLCVCandleSchema = z.object({\n v: z.number(),\n o: z.number(),\n h: z.number(),\n l: z.number(),\n c: z.number(),\n t: z.number(),\n});\n\nexport const TokenOHLCVHistoryResponseSchema = z.object({\n data: z.array(OHLCVCandleSchema),\n});\n\nexport type TokenOHLCVHistoryResponse = z.infer<typeof TokenOHLCVHistoryResponseSchema>;\n\n// Single token batch response data schema\nconst TokenOHLCVHistoryDataSchema = z.object({\n ohlcv: z.array(OHLCVCandleSchema),\n address: z.string(),\n chainId: z.string(),\n error: z.string().optional(),\n});\n\n// POST response schema (batch - array of tokens)\nexport const TokenOHLCVHistoryBatchResponseSchema = z.object({\n data: z.array(TokenOHLCVHistoryDataSchema),\n});\n\nexport type TokenOHLCVHistoryBatchResponse = z.infer<typeof TokenOHLCVHistoryBatchResponseSchema>;\n",
|
|
87
|
-
"import { z } from 'zod';\nimport { Tags } from '../../utils/constants/constants.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\nimport { PlatformMetadataSchema } from '../wallet/WalletAnalysisQuerySchema.ts';\n\nexport const TokenPositionsParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n force: z.coerce.boolean().optional().default(false),\n label: z.nativeEnum(Tags).optional(),\n limit: z.coerce.number().optional().default(100),\n offset: z.coerce.number().optional().default(0),\n walletAddresses: stringOrArray.optional(),\n});\n\nexport type TokenPositionsParams = z.input<typeof TokenPositionsParamsSchema>;\n\nexport const TokenPositionOutput = z.object({\n chainId: z.string(),\n walletAddress: z.string(),\n tokenAddress: z.string(),\n tokenAmount: z.string(),\n tokenAmountRaw: z.string(),\n tokenAmountUSD: z.string(),\n percentageOfTotalSupply: z.string(),\n pnlUSD: z.string(),\n realizedPnlUSD: z.string(),\n unrealizedPnlUSD: z.string(),\n totalPnlUSD: z.string(),\n buys: z.number(),\n sells: z.number(),\n volumeBuyToken: z.string(),\n volumeSellToken: z.string(),\n volumeBuyUSD: z.string(),\n volumeSellUSD: z.string(),\n avgBuyPriceUSD: z.string(),\n avgSellPriceUSD: z.string(),\n walletFundAt: z.coerce.date().nullable(),\n lastActivityAt: z.coerce.date().nullable(),\n firstTradeAt: z.coerce.date().nullable(),\n lastTradeAt: z.coerce.date().nullable(),\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n // Platform used by this wallet (e.g., Axiom, Photon) or DEX for LPs (e.g., Raydium, Orca)\n platform: PlatformMetadataSchema.nullable().optional(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.coerce.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n});\n\nexport const TokenPositionsResponseSchema = z.object({\n data: z.array(TokenPositionOutput),\n totalCount: z.number(),\n});\n\nexport type TokenPositionsResponse = z.infer<typeof TokenPositionsResponseSchema>;\n\nexport type TokenPositionsOutputResponse = z.infer<typeof TokenPositionOutput>;\n",
|
|
88
|
-
"import { z } from 'zod';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\n\n// Platform metadata schema (similar to factories_metadata)\nexport const PlatformMetadataSchema = z.object({\n id: z.string(),\n name: z.string(),\n logo: z.string().nullable(),\n});\n\nexport type PlatformMetadata = z.infer<typeof PlatformMetadataSchema>;\n\n// Zod schema for wallet analysis query parameters\nexport const WalletAnalysisParamsSchema = z\n .object({\n wallet: z.string().min(1, 'Wallet address is required'),\n blockchain: z.string().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => val?.toLowerCase())\n .refine((val) => !val || ['1d', '7d', '30d', '90d'].includes(val), {\n message: 'Period must be one of: 1d, 7d, 30d, 90d',\n }),\n // Custom timeframe parameters (alternative to period)\n from: z.coerce.number().optional(), // Unix timestamp in milliseconds\n to: z.coerce.number().optional(), // Unix timestamp in milliseconds\n })\n .transform((data) => {\n // Default to '7d' period if neither period nor from/to is provided\n if (!data.period && (data.from === undefined || data.to === undefined)) {\n return { ...data, period: '7d' };\n }\n return data;\n })\n .refine(\n (data) => {\n // If from/to provided, validate the range\n if (data.from !== undefined && data.to !== undefined) {\n return data.to > data.from;\n }\n return true;\n },\n {\n message: 'to must be greater than from',\n },\n );\n\nexport type WalletAnalysisParams = z.input<typeof WalletAnalysisParamsSchema>;\n\n// OpenAPI-compatible params schema (simplified without transformations)\nexport const WalletAnalysisParamsSchemaOpenAPI = z.object({\n wallet: z.string().min(1).describe('Wallet address to analyze'),\n blockchain: z.string().optional().describe('Blockchain ID (e.g., ethereum, base, solana:solana)'),\n period: z.string().optional().describe('Analysis period: 1d, 7d, 30d, or 90d (default: 7d)'),\n from: z.number().optional().describe('Start timestamp in milliseconds (alternative to period)'),\n to: z.number().optional().describe('End timestamp in milliseconds (alternative to period)'),\n});\n\n// Calendar breakdown entry schema (day-by-day breakdown)\nexport const CalendarDayBreakdownSchema = z.object({\n date: z.coerce.date(),\n // Volume metrics\n volumeBuy: z.number(),\n volumeSell: z.number(),\n totalVolume: z.number(),\n // Trade counts\n buys: z.number(),\n sells: z.number(),\n // PnL metrics\n realizedPnlUSD: z.number(),\n});\n\nexport type CalendarDayBreakdown = z.infer<typeof CalendarDayBreakdownSchema>;\n\n// Zod schema for wallet analysis response\nexport const WalletAnalysisResponseSchema = z.object({\n data: z.object({\n winRateDistribution: z.object({\n '>500%': z.number(),\n '200%-500%': z.number(),\n '50%-200%': z.number(),\n '0%-50%': z.number(),\n '-50%-0%': z.number(),\n '<-50%': z.number(),\n }),\n marketCapDistribution: z.object({\n '>1000M': z.number(),\n '>100M': z.number(),\n '10M-100M': z.number(),\n '1M-10M': z.number(),\n '100k-1M': z.number(),\n '<100k': z.number(),\n }),\n periodTimeframes: z.array(\n z.object({\n date: z.coerce.date(),\n realized: z.number(),\n }),\n ),\n // Calendar breakdown: day-by-day volume and PnL\n calendarBreakdown: z.array(CalendarDayBreakdownSchema),\n stat: z.object({\n totalValue: z.number(),\n periodTotalPnlUSD: z.number(),\n periodRealizedPnlUSD: z.number(),\n periodRealizedRate: z.number(),\n periodActiveTokensCount: z.number(),\n periodWinCount: z.number(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.coerce.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n periodVolumeBuy: z.number(),\n periodVolumeSell: z.number(),\n periodBuys: z.number(),\n periodSells: z.number(),\n nativeBalance: z\n .object({\n rawBalance: z.string(),\n formattedBalance: z.number(),\n assetId: z.number().nullable(),\n chainId: z.string(),\n address: z.string(),\n decimals: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n price: z.number(),\n balanceUSD: z.number(),\n })\n .nullable(),\n periodBuyTokens: z.number(),\n periodSellTokens: z.number(),\n periodTradingTokens: z.number(),\n holdingTokensCount: z.number(),\n holdingDuration: z.number(),\n tradingTimeFrames: z.number(),\n winRealizedPnl: z.number(),\n winRealizedPnlRate: z.number(),\n winToken: z\n .object({\n address: z.string(),\n chainId: z.string(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n })\n .nullable(),\n }),\n labels: z.array(z.string()),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable(),\n // Platform used by the wallet with full metadata (logo, name)\n platform: PlatformMetadataSchema.nullable(),\n }),\n});\n\nexport type WalletAnalysisResponse = z.infer<typeof WalletAnalysisResponseSchema>;\n\n// OpenAPI-compatible calendar breakdown schema\nexport const CalendarDayBreakdownSchemaOpenAPI = z.object({\n date: z.string(),\n volumeBuy: z.number(),\n volumeSell: z.number(),\n totalVolume: z.number(),\n buys: z.number(),\n sells: z.number(),\n realizedPnlUSD: z.number(),\n});\n\n// OpenAPI-compatible schema (dates as strings for OpenAPI spec generation)\nexport const WalletAnalysisResponseSchemaOpenAPI = z.object({\n data: z.object({\n winRateDistribution: z.object({\n '>500%': z.number(),\n '200%-500%': z.number(),\n '50%-200%': z.number(),\n '0%-50%': z.number(),\n '-50%-0%': z.number(),\n '<-50%': z.number(),\n }),\n marketCapDistribution: z.object({\n '>1000M': z.number(),\n '>100M': z.number(),\n '10M-100M': z.number(),\n '1M-10M': z.number(),\n '100k-1M': z.number(),\n '<100k': z.number(),\n }),\n periodTimeframes: z.array(\n z.object({\n date: z.string(),\n realized: z.number(),\n }),\n ),\n calendarBreakdown: z.array(CalendarDayBreakdownSchemaOpenAPI),\n stat: z.object({\n totalValue: z.number(),\n periodTotalPnlUSD: z.number(),\n periodRealizedPnlUSD: z.number(),\n periodRealizedRate: z.number(),\n periodActiveTokensCount: z.number(),\n periodWinCount: z.number(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.string().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n periodVolumeBuy: z.number(),\n periodVolumeSell: z.number(),\n periodBuys: z.number(),\n periodSells: z.number(),\n nativeBalance: z\n .object({\n rawBalance: z.string(),\n formattedBalance: z.number(),\n assetId: z.number().nullable(),\n chainId: z.string(),\n address: z.string(),\n decimals: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n price: z.number(),\n balanceUSD: z.number(),\n })\n .nullable(),\n periodBuyTokens: z.number(),\n periodSellTokens: z.number(),\n periodTradingTokens: z.number(),\n holdingTokensCount: z.number(),\n holdingDuration: z.number(),\n tradingTimeFrames: z.number(),\n winRealizedPnl: z.number(),\n winRealizedPnlRate: z.number(),\n winToken: z\n .object({\n address: z.string(),\n chainId: z.string(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n })\n .nullable(),\n }),\n labels: z.array(z.string()),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable(),\n // Platform used by the wallet with full metadata\n platform: z\n .object({\n id: z.string(),\n name: z.string(),\n logo: z.string().nullable(),\n })\n .nullable(),\n }),\n});\n",
|
|
89
|
-
"import { z } from 'zod';\n\n/**\n * V2 Token Price Schema\n *
|
|
90
|
-
"import { z } from 'zod';\n\n
|
|
91
|
-
"import { z } from 'zod';\n\
|
|
92
|
-
"import { z } from 'zod';\nimport { SwapType, Tags } from '../../utils/constants/constants.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\nimport { PlatformMetadataOutput } from '../../utils/schemas/PlatformMetadataOutput.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\nimport { TokenMetadataMinimal } from '../../utils/schemas/TokenMetadataMinimal.ts';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\n\nexport const TokenTradesParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n offset: z.coerce.number().default(0),\n limit: z.coerce.number().optional().default(10),\n sortOrder: z.enum(['asc', 'desc']).default('desc'),\n mode: z\n .enum(['pair', 'pool', 'asset'])\n .default('pair')\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset'),\n label: z.nativeEnum(Tags).optional(),\n swapTypes: stringOrArray\n .optional()\n .transform((val) => val?.filter((v) => Object.values(SwapType).includes(v as SwapType))),\n transactionSenderAddresses: stringOrArray.optional().refine((arr) => !arr || arr.length <= 25, {\n message: 'Maximum 25 transaction sender addresses allowed',\n }),\n /** If true, filter by swap_recipient_address; if false, filter by transaction_sender_address. Same semantics as wallet positions. Default: false. */\n useSwapRecipient: z.coerce.boolean().optional().default(false),\n maxAmountUSD: z.coerce.number().optional(),\n minAmountUSD: z.coerce.number().optional(),\n fromDate: DateQuery.transform((val) => val ?? undefined),\n toDate: DateQuery.transform((val) => val ?? undefined),\n});\n\nexport type TokenTradesParams = z.input<typeof TokenTradesParamsSchema>;\nexport type TokenTradesInferType = z.infer<typeof TokenTradesParamsSchema>;\n\nexport const TokenTradeOutput = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n preBalanceBaseToken: z.string().nullable().optional(),\n preBalanceQuoteToken: z.string().nullable().optional(),\n postBalanceBaseToken: z.string().nullable().optional(),\n postBalanceQuoteToken: z.string().nullable().optional(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n /**\n * The swap recipient is the most important wallet address in a trade transaction.\n * It represents the actual beneficiary of the swap - the wallet that receives the output tokens.\n *\n * This is critical for Account Abstraction (AA) scenarios where:\n * - The transaction sender (tx.from) is often a bundler, relayer, or smart contract wallet\n * - The swap sender may be an intermediate router or aggregator contract\n * - Only the swap recipient represents the real user/beneficiary of the trade\n *\n * For accurate wallet PnL tracking and portfolio analysis, always use swapRecipient\n * instead of transactionSenderAddress when available.\n */\n swapRecipient: z.string().nullable().optional(),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n marketAddresses: z.array(z.string()).optional(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n baseToken: TokenMetadataMinimal.nullable().optional(),\n quoteToken: TokenMetadataMinimal.nullable().optional(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const TokenTradeResponseSchema = z.object({\n data: z.array(TokenTradeOutput),\n});\n\nexport type TokenTradesResponse = z.infer<typeof TokenTradeResponseSchema>;\n\n// Single trade output - uses full TokenDetailsOutput for baseToken/quoteToken (prod alignment)\nexport const SingleTokenTradeOutput = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n preBalanceBaseToken: z.string().nullable().optional(),\n preBalanceQuoteToken: z.string().nullable().optional(),\n postBalanceBaseToken: z.string().nullable().optional(),\n postBalanceQuoteToken: z.string().nullable().optional(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n swapRecipient: z.string().nullable().optional(),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n marketAddresses: z.array(z.string()).optional(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n labels: z.array(z.string()).nullable().optional().default([]),\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n baseToken: TokenDetailsOutput.optional(),\n quoteToken: TokenDetailsOutput.optional(),\n platform: PlatformMetadataOutput.nullable().optional(),\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const SingleTokenTradeResponseSchema = z.object({\n data: SingleTokenTradeOutput,\n});\n\nexport type SingleTokenTradeResponse = z.infer<typeof SingleTokenTradeResponseSchema>;\n\nexport const FormattedTokenTradeOutput = z.object({\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n pair: z.string(),\n date: z.number(),\n tokenPrice: z.number(),\n tokenPriceVs: z.number(),\n tokenAmount: z.number(),\n tokenAmountVs: z.number(),\n tokenAmountUsd: z.number(),\n tokenAmountVsUsd: z.number(),\n type: z.string(),\n operation: z.string(),\n blockchain: z.string(),\n hash: z.string(),\n sender: z.string(),\n /**\n * The swap recipient is the most important wallet address in a trade transaction.\n * It represents the actual beneficiary of the swap - the wallet that receives the output tokens.\n *\n * This is critical for Account Abstraction (AA) scenarios where:\n * - The transaction sender (tx.from) is often a bundler, relayer, or smart contract wallet\n * - The swap sender may be an intermediate router or aggregator contract\n * - Only the swap recipient represents the real user/beneficiary of the trade\n *\n * For accurate wallet PnL tracking and portfolio analysis, always use swapRecipient\n * instead of sender when available.\n */\n swapRecipient: z.string().nullable().optional(),\n tokenAmountRaw: z.string(),\n tokenAmountRawVs: z.string(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const FormattedTokenTradeResponseSchema = z.object({\n data: z.array(FormattedTokenTradeOutput),\n});\n\nexport type FormattedTokenTradesResponse = z.infer<typeof FormattedTokenTradeResponseSchema>;\n\nexport const TokenTradeParamsSchema = z.object({\n blockchain: z.string().optional(),\n transactionHash: z.string().min(1, 'Transaction hash is required'),\n});\n\nexport type TokenTradeParams = z.input<typeof TokenTradeParamsSchema>;\nexport type TokenTradeInferType = z.infer<typeof TokenTradeParamsSchema>;\n\nexport const TokenTradeParamsSchemaOpenAPI = z.object({\n blockchain: z.string().describe('Blockchain name or chain ID'),\n transactionHash: z.string().min(1).describe('Transaction hash'),\n});\n\nexport const TokenTradeOutputOpenAPI = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n /**\n * The swap recipient is the most important wallet address in a trade transaction.\n * It represents the actual beneficiary of the swap - the wallet that receives the output tokens.\n *\n * This is critical for Account Abstraction (AA) scenarios where:\n * - The transaction sender (tx.from) is often a bundler, relayer, or smart contract wallet\n * - The swap sender may be an intermediate router or aggregator contract\n * - Only the swap recipient represents the real user/beneficiary of the trade\n *\n * For accurate wallet PnL tracking and portfolio analysis, always use swapRecipient\n * instead of transactionSenderAddress when available.\n */\n swapRecipient: z\n .string()\n .nullable()\n .optional()\n .describe(\n 'The actual beneficiary wallet of the swap. Most important address for AA wallets and accurate PnL tracking.',\n ),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n marketAddresses: z.array(z.string()).optional(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n baseToken: TokenMetadataMinimal.nullable().optional(),\n quoteToken: TokenMetadataMinimal.nullable().optional(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const SingleTokenTradeResponseSchemaOpenAPI = z.object({\n data: TokenTradeOutputOpenAPI,\n});\n",
|
|
89
|
+
"import { z } from 'zod';\nimport normalizePeriod from '../../utils/functions/period.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\n\n// Helper for boolean parsing from query string\nconst booleanFromString = z\n .union([z.boolean(), z.string()])\n .optional()\n .default(true)\n .transform((val) => {\n if (typeof val === 'boolean') return val;\n if (val === 'false' || val === '0') return false;\n return true;\n });\n\n// Single token query schema (shared between GET params and POST body items)\nconst TokenOHLCVHistoryItemSchema = z.object({\n address: z.string(),\n chainId: z.string(),\n from: DateQuery.transform((val) => val ?? 0),\n to: DateQuery.transform((val) => val ?? new Date()),\n period: z\n .string()\n .optional()\n .transform((val) => (val ? normalizePeriod(val) : '5m')),\n amount: z.coerce\n .number()\n .optional()\n .transform((val) => (val !== undefined ? Math.min(val, 2000) : undefined)),\n usd: booleanFromString,\n});\n\n// ==================== TOKEN OHLCV ====================\n// GET: address + chainId required\nexport const TokenOHLCVHistoryParamsSchema = TokenOHLCVHistoryItemSchema.refine(\n (data) => data.address && data.chainId,\n { message: 'address and chainId are required' },\n);\n\nexport type TokenOHLCVHistoryParams = z.input<typeof TokenOHLCVHistoryParamsSchema>;\nexport type TokenOHLCVHistoryInferType = z.infer<typeof TokenOHLCVHistoryParamsSchema>;\n\n// Array schema for batch items\nconst TokenOHLCVHistoryArraySchema = z\n .array(TokenOHLCVHistoryItemSchema)\n .min(1, 'At least one token is required')\n .max(10, 'Maximum 10 tokens per request');\n\n// POST request schema - supports both array and object with 'tokens' key\nexport const TokenOHLCVHistoryBatchParamsSchema = z.union([\n TokenOHLCVHistoryArraySchema,\n z.object({ tokens: TokenOHLCVHistoryArraySchema }),\n]);\n\nexport type TokenOHLCVHistoryBatchParams = z.input<typeof TokenOHLCVHistoryBatchParamsSchema>;\n\n// ==================== RESPONSE SCHEMA ====================\nconst OHLCVCandleSchema = z.object({\n v: z.number(),\n o: z.number(),\n h: z.number(),\n l: z.number(),\n c: z.number(),\n t: z.number(),\n});\n\nexport const TokenOHLCVHistoryResponseSchema = z.object({\n data: z.array(OHLCVCandleSchema),\n});\n\nexport type TokenOHLCVHistoryResponse = z.infer<typeof TokenOHLCVHistoryResponseSchema>;\n\n// Single token batch response data schema\nconst TokenOHLCVHistoryDataSchema = z.object({\n ohlcv: z.array(OHLCVCandleSchema),\n address: z.string(),\n chainId: z.string(),\n error: z.string().optional(),\n});\n\n// POST response schema (batch - array of tokens)\nexport const TokenOHLCVHistoryBatchResponseSchema = z.object({\n data: z.array(TokenOHLCVHistoryDataSchema),\n});\n\nexport type TokenOHLCVHistoryBatchResponse = z.infer<typeof TokenOHLCVHistoryBatchResponseSchema>;\n",
|
|
90
|
+
"import { z } from 'zod';\nimport { Tags } from '../../utils/constants/constants.ts';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\nimport { PlatformMetadataSchema } from '../wallet/WalletAnalysisQuerySchema.ts';\n\nexport const TokenPositionsParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n force: z.coerce.boolean().optional().default(false),\n label: z.nativeEnum(Tags).optional(),\n limit: z.coerce.number().optional().default(100),\n offset: z.coerce.number().optional().default(0),\n walletAddresses: stringOrArray.optional(),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z.coerce.boolean().optional().default(true),\n /** Include fees in response (total_fees_paid_usd from wallet_positions_recipients) */\n includeFees: z.coerce.boolean().optional().default(false),\n});\n\nexport type TokenPositionsParams = z.input<typeof TokenPositionsParamsSchema>;\n\nexport const TokenPositionsParamsSchemaOpenAPI = createOpenAPIParams(TokenPositionsParamsSchema, {\n omit: ['force'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Token contract address',\n label: 'Filter by wallet label (e.g. sniper, bundler, insider)',\n limit: 'Maximum number of results (default: 100)',\n offset: 'Offset for pagination',\n walletAddresses: 'Comma-separated wallet addresses to filter',\n useSwapRecipient: 'Use swap recipient mode for accurate Account Abstraction tracking',\n includeFees: 'Include total fees paid (gas + platform + MEV) and deduct from PnL',\n },\n});\n\nexport const TokenPositionOutput = z.object({\n chainId: z.string(),\n walletAddress: z.string(),\n tokenAddress: z.string(),\n tokenAmount: z.string(),\n tokenAmountRaw: z.string(),\n tokenAmountUSD: z.string(),\n percentageOfTotalSupply: z.string(),\n pnlUSD: z.string(),\n realizedPnlUSD: z.string(),\n unrealizedPnlUSD: z.string(),\n totalPnlUSD: z.string(),\n /** Total fees paid on this position (gas + platform + mev fees) - only present when includeFees is enabled */\n totalFeesPaidUSD: z.string().optional(),\n buys: z.number(),\n sells: z.number(),\n volumeBuyToken: z.string(),\n volumeSellToken: z.string(),\n volumeBuyUSD: z.string(),\n volumeSellUSD: z.string(),\n avgBuyPriceUSD: z.string(),\n avgSellPriceUSD: z.string(),\n walletFundAt: z.coerce.date().nullable(),\n lastActivityAt: z.coerce.date().nullable(),\n firstTradeAt: z.coerce.date().nullable(),\n lastTradeAt: z.coerce.date().nullable(),\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n // Platform used by this wallet (e.g., Axiom, Photon) or DEX for LPs (e.g., Raydium, Orca)\n platform: PlatformMetadataSchema.nullable().optional(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.coerce.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n});\n\nexport const TokenPositionsResponseSchema = z.object({\n data: z.array(TokenPositionOutput),\n totalCount: z.number(),\n});\n\nexport type TokenPositionsResponse = z.infer<typeof TokenPositionsResponseSchema>;\n\nexport type TokenPositionsOutputResponse = z.infer<typeof TokenPositionOutput>;\n",
|
|
91
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams, type SDKInput } from '../../utils/functions/openAPIHelpers.ts';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\n\n// Platform metadata schema (similar to factories_metadata)\nexport const PlatformMetadataSchema = z.object({\n id: z.string(),\n name: z.string(),\n logo: z.string().nullable(),\n});\n\nexport type PlatformMetadata = z.infer<typeof PlatformMetadataSchema>;\n\n// Zod schema for wallet analysis query parameters\nexport const WalletAnalysisParamsSchema = z\n .object({\n wallet: z.string().min(1, 'Wallet address is required'),\n blockchain: z.string().optional(),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n period: z\n .string()\n .optional()\n .transform((val) => val?.toLowerCase())\n .refine((val) => !val || ['1d', '7d', '30d', '90d'].includes(val), {\n message: 'Period must be one of: 1d, 7d, 30d, 90d',\n }),\n // Custom timeframe parameters (alternative to period)\n from: z.coerce.number().optional(), // Unix timestamp in milliseconds\n to: z.coerce.number().optional(), // Unix timestamp in milliseconds\n })\n .transform((data) => {\n // Default to '7d' period if neither period nor from/to is provided\n if (!data.period && (data.from === undefined || data.to === undefined)) {\n return { ...data, period: '7d' };\n }\n return data;\n })\n .refine(\n (data) => {\n // If from/to provided, validate the range\n if (data.from !== undefined && data.to !== undefined) {\n return data.to > data.from;\n }\n return true;\n },\n {\n message: 'to must be greater than from',\n },\n );\n\n/** Fields accepted at runtime but hidden from SDK types and OpenAPI spec */\nconst WALLET_ANALYSIS_HIDDEN = ['blockchain'] as const;\ntype WalletAnalysisHiddenFields = (typeof WALLET_ANALYSIS_HIDDEN)[number];\n\nexport type WalletAnalysisParams = SDKInput<typeof WalletAnalysisParamsSchema, WalletAnalysisHiddenFields>;\n\nexport const WalletAnalysisParamsSchemaOpenAPI = createOpenAPIParams(WalletAnalysisParamsSchema, {\n omit: [...WALLET_ANALYSIS_HIDDEN],\n describe: {\n wallet: 'Wallet address to analyze',\n blockchains:\n 'Comma-separated list of blockchain IDs (e.g., \"ethereum,base,solana:solana\"). If omitted, all chains.',\n period: 'Analysis period: 1d, 7d, 30d, or 90d (default: 7d)',\n from: 'Start timestamp in milliseconds (alternative to period)',\n to: 'End timestamp in milliseconds (alternative to period)',\n },\n});\n\n// Calendar breakdown entry schema (day-by-day breakdown)\nexport const CalendarDayBreakdownSchema = z.object({\n date: z.coerce.date(),\n // Volume metrics\n volumeBuy: z.number(),\n volumeSell: z.number(),\n totalVolume: z.number(),\n // Trade counts\n buys: z.number(),\n sells: z.number(),\n // PnL metrics\n realizedPnlUSD: z.number(),\n});\n\nexport type CalendarDayBreakdown = z.infer<typeof CalendarDayBreakdownSchema>;\n\n// Zod schema for wallet analysis response\nexport const WalletAnalysisResponseSchema = z.object({\n data: z.object({\n winRateDistribution: z.object({\n '>500%': z.number(),\n '200%-500%': z.number(),\n '50%-200%': z.number(),\n '0%-50%': z.number(),\n '-50%-0%': z.number(),\n '<-50%': z.number(),\n }),\n marketCapDistribution: z.object({\n '>1000M': z.number(),\n '>100M': z.number(),\n '10M-100M': z.number(),\n '1M-10M': z.number(),\n '100k-1M': z.number(),\n '<100k': z.number(),\n }),\n periodTimeframes: z.array(\n z.object({\n date: z.coerce.date(),\n realized: z.number(),\n }),\n ),\n // Calendar breakdown: day-by-day volume and PnL\n calendarBreakdown: z.array(CalendarDayBreakdownSchema),\n stat: z.object({\n totalValue: z.number(),\n periodTotalPnlUSD: z.number(),\n periodRealizedPnlUSD: z.number(),\n periodRealizedRate: z.number(),\n periodActiveTokensCount: z.number(),\n periodWinCount: z.number(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.coerce.date().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n periodVolumeBuy: z.number(),\n periodVolumeSell: z.number(),\n periodBuys: z.number(),\n periodSells: z.number(),\n nativeBalance: z\n .object({\n rawBalance: z.string(),\n formattedBalance: z.number(),\n assetId: z.number().nullable(),\n chainId: z.string(),\n address: z.string(),\n decimals: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n price: z.number(),\n balanceUSD: z.number(),\n })\n .nullable(),\n periodBuyTokens: z.number(),\n periodSellTokens: z.number(),\n periodTradingTokens: z.number(),\n holdingTokensCount: z.number(),\n holdingDuration: z.number(),\n tradingTimeFrames: z.number(),\n winRealizedPnl: z.number(),\n winRealizedPnlRate: z.number(),\n winToken: z\n .object({\n address: z.string(),\n chainId: z.string(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n })\n .nullable(),\n }),\n labels: z.array(z.string()),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable(),\n // Platform used by the wallet with full metadata (logo, name)\n platform: PlatformMetadataSchema.nullable(),\n }),\n});\n\nexport type WalletAnalysisResponse = z.infer<typeof WalletAnalysisResponseSchema>;\n\n// OpenAPI-compatible calendar breakdown schema\nexport const CalendarDayBreakdownSchemaOpenAPI = z.object({\n date: z.string(),\n volumeBuy: z.number(),\n volumeSell: z.number(),\n totalVolume: z.number(),\n buys: z.number(),\n sells: z.number(),\n realizedPnlUSD: z.number(),\n});\n\n// OpenAPI-compatible schema (dates as strings for OpenAPI spec generation)\nexport const WalletAnalysisResponseSchemaOpenAPI = z.object({\n data: z.object({\n winRateDistribution: z.object({\n '>500%': z.number(),\n '200%-500%': z.number(),\n '50%-200%': z.number(),\n '0%-50%': z.number(),\n '-50%-0%': z.number(),\n '<-50%': z.number(),\n }),\n marketCapDistribution: z.object({\n '>1000M': z.number(),\n '>100M': z.number(),\n '10M-100M': z.number(),\n '1M-10M': z.number(),\n '100k-1M': z.number(),\n '<100k': z.number(),\n }),\n periodTimeframes: z.array(\n z.object({\n date: z.string(),\n realized: z.number(),\n }),\n ),\n calendarBreakdown: z.array(CalendarDayBreakdownSchemaOpenAPI),\n stat: z.object({\n totalValue: z.number(),\n periodTotalPnlUSD: z.number(),\n periodRealizedPnlUSD: z.number(),\n periodRealizedRate: z.number(),\n periodActiveTokensCount: z.number(),\n periodWinCount: z.number(),\n fundingInfo: z.object({\n from: z.string().nullable(),\n date: z.string().nullable(),\n chainId: z.string().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n formattedAmount: z.number().nullable(),\n currency: z\n .object({\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n address: z.string(),\n })\n .nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n periodVolumeBuy: z.number(),\n periodVolumeSell: z.number(),\n periodBuys: z.number(),\n periodSells: z.number(),\n nativeBalance: z\n .object({\n rawBalance: z.string(),\n formattedBalance: z.number(),\n assetId: z.number().nullable(),\n chainId: z.string(),\n address: z.string(),\n decimals: z.number(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n price: z.number(),\n balanceUSD: z.number(),\n })\n .nullable(),\n periodBuyTokens: z.number(),\n periodSellTokens: z.number(),\n periodTradingTokens: z.number(),\n holdingTokensCount: z.number(),\n holdingDuration: z.number(),\n tradingTimeFrames: z.number(),\n winRealizedPnl: z.number(),\n winRealizedPnlRate: z.number(),\n winToken: z\n .object({\n address: z.string(),\n chainId: z.string(),\n name: z.string(),\n symbol: z.string(),\n logo: z.string().nullable(),\n decimals: z.number(),\n })\n .nullable(),\n }),\n labels: z.array(z.string()),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable(),\n // Platform used by the wallet with full metadata\n platform: z\n .object({\n id: z.string(),\n name: z.string(),\n logo: z.string().nullable(),\n })\n .nullable(),\n }),\n});\n",
|
|
92
|
+
"import { z } from 'zod';\n\n/**\n * V2 Token Price-At Schema\n * Dedicated endpoint for point-in-time historical price lookups.\n * Finds the closest swap to a given unix timestamp.\n */\n\nconst TokenPriceAtItemParams = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n timestamp: z.coerce.number().int().positive(),\n});\n\nexport const TokenPriceAtParamsSchema = TokenPriceAtItemParams;\n\nexport const TokenPriceAtBatchParamsSchema = z.union([\n z.array(TokenPriceAtItemParams),\n z.object({\n items: z.array(TokenPriceAtItemParams),\n }),\n]);\n\nexport type TokenPriceAtParams = z.input<typeof TokenPriceAtParamsSchema>;\nexport type TokenPriceAtBatchParams = z.input<typeof TokenPriceAtBatchParamsSchema>;\n\nconst TokenPriceAtItemResponseSchema = z.object({\n priceUSD: z.number(),\n timestamp: z.number(),\n swapTimestamp: z.number(),\n poolAddress: z.string(),\n});\n\nexport const TokenPriceAtResponseSchema = z.object({\n data: TokenPriceAtItemResponseSchema,\n});\n\nexport const TokenPriceAtBatchResponseSchema = z.object({\n payload: z.array(TokenPriceAtItemResponseSchema.or(z.object({ error: z.string().optional() })).nullable()),\n});\n\nexport type TokenPriceAtResponse = z.infer<typeof TokenPriceAtResponseSchema>;\nexport type TokenPriceAtBatchResponse = z.infer<typeof TokenPriceAtBatchResponseSchema>;\n",
|
|
93
|
+
"import { z } from 'zod';\n\n// Supported timeframes for token price history\nconst PriceHistoryTimeframe = z.enum(['5m', '15m', '1h', '24h', '7d', '30d', '1y']).default('24h');\n\n// Single token price history params (shared between GET params and POST body items)\nconst TokenPriceHistoryItemSchema = z.object({\n address: z.string(),\n chainId: z.string(),\n timeframe: PriceHistoryTimeframe,\n});\n\n// ==================== TOKEN PRICE HISTORY ====================\n// GET: address + chainId required\nexport const TokenPriceHistoryParamsSchema = TokenPriceHistoryItemSchema.refine(\n (data) => data.address && data.chainId,\n { message: 'address and chainId are required' },\n);\n\nexport type TokenPriceHistoryParams = z.input<typeof TokenPriceHistoryParamsSchema>;\nexport type TokenPriceHistoryInferType = z.infer<typeof TokenPriceHistoryParamsSchema>;\n\n// Array schema for batch items - up to 50 tokens\nconst TokenPriceHistoryArraySchema = z\n .array(TokenPriceHistoryItemSchema)\n .min(1, 'At least one token is required')\n .max(50, 'Maximum 50 tokens per request');\n\n// POST request schema - supports both array and object with 'items' key\nexport const TokenPriceHistoryBatchParamsSchema = z.union([\n TokenPriceHistoryArraySchema,\n z.object({ items: TokenPriceHistoryArraySchema }),\n]);\n\nexport type TokenPriceHistoryBatchParams = z.input<typeof TokenPriceHistoryBatchParamsSchema>;\n\n// ==================== RESPONSE SCHEMA ====================\n// Aligned with asset/price-history: priceHistory as [[timestamp, price], ...]\n\n// Single token GET response\nconst TokenPriceHistoryDataSchema = z.object({\n priceHistory: z.array(z.array(z.number())),\n address: z.string(),\n chainId: z.string(),\n error: z.string().optional(),\n});\n\nexport const TokenPriceHistoryResponseSchema = z.object({\n data: TokenPriceHistoryDataSchema,\n});\n\nexport type TokenPriceHistoryResponse = z.infer<typeof TokenPriceHistoryResponseSchema>;\n\n// POST response schema (batch - array of tokens)\nexport const TokenPriceHistoryBatchResponseSchema = z.object({\n data: z.array(TokenPriceHistoryDataSchema),\n});\n\nexport type TokenPriceHistoryBatchResponse = z.infer<typeof TokenPriceHistoryBatchResponseSchema>;\n",
|
|
94
|
+
"import { z } from 'zod';\n\n/**\n * V2 Token Price Schema\n * Current token price data (market cap, liquidity, etc.)\n * For historical point-in-time prices, use TokenPriceAtSchema.\n */\n\n// Single item params (for GET and batch items)\nconst TokenPriceItemParams = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n});\n\nexport const TokenPriceParamsSchema = TokenPriceItemParams;\n\nexport const TokenPriceBatchParamsSchema = z.union([\n z.array(TokenPriceItemParams),\n z.object({\n items: z.array(TokenPriceItemParams),\n }),\n]);\n\nexport type TokenPriceParams = z.input<typeof TokenPriceParamsSchema>;\nexport type TokenPriceBatchParams = z.input<typeof TokenPriceBatchParamsSchema>;\n\n// Response item with USD suffix naming convention\nconst TokenPriceItemResponseSchema = z.object({\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n logo: z.string().nullable(),\n priceUSD: z.number().nullable(),\n marketCapUSD: z.number().nullable(),\n marketCapDilutedUSD: z.number().nullable(),\n liquidityUSD: z.number().nullable(),\n liquidityMaxUSD: z.number().nullable(),\n});\n\nexport const TokenPriceResponseSchema = z.object({\n data: TokenPriceItemResponseSchema,\n});\n\nexport const TokenPriceBatchResponseSchema = z.object({\n payload: z.array(TokenPriceItemResponseSchema.or(z.object({ error: z.string().optional() })).nullable()),\n});\n\nexport type TokenPriceResponse = z.infer<typeof TokenPriceResponseSchema>;\nexport type TokenPriceBatchResponse = z.infer<typeof TokenPriceBatchResponseSchema>;\nexport type TokenPriceItem = z.infer<typeof TokenPriceItemResponseSchema>;\n",
|
|
95
|
+
"import { z } from 'zod';\n\n/**\n * Static analysis status enum:\n * - completed: Analysis has been performed and results are included\n * - pending: Analysis has been triggered and is in progress (results will be available on next request)\n * - not_available: Chain not supported for static analysis or service disabled\n * - insufficient_liquidity: Token doesn't meet minimum liquidity requirements\n * - not_evm: Static analysis only available for EVM chains\n */\nexport const StaticAnalysisStatusEnum = z.enum([\n 'completed',\n 'pending',\n 'not_available',\n 'insufficient_liquidity',\n 'not_evm',\n]);\n\nexport type StaticAnalysisStatus = z.infer<typeof StaticAnalysisStatusEnum>;\n\nexport const TokenSecurityOutput = z.object({\n address: z.string(),\n chainId: z.string(),\n contractHoldingsPercentage: z.number().nullable(),\n contractBalanceRaw: z.string().nullable(),\n burnedHoldingsPercentage: z.number().nullable(),\n totalBurnedBalanceRaw: z.string().nullable(),\n buyFeePercentage: z.number(),\n sellFeePercentage: z.number(),\n maxWalletAmountRaw: z.string().nullable(),\n maxSellAmountRaw: z.string().nullable(),\n maxBuyAmountRaw: z.string().nullable(),\n maxTransferAmountRaw: z.string().nullable(),\n // Additional security fields\n isLaunchpadToken: z.boolean().nullable(),\n top10HoldingsPercentage: z.number().nullable(),\n top50HoldingsPercentage: z.number().nullable(),\n top100HoldingsPercentage: z.number().nullable(),\n top200HoldingsPercentage: z.number().nullable(),\n isMintable: z.boolean().nullable(),\n isFreezable: z.boolean().nullable(),\n // Terminal volume percentage: (feesPaid24h / volume24h) * 100 * 50 - estimates % of 24h volume from terminal users\n proTraderVolume24hPercentage: z.number().nullable(),\n // Security flags from SecuritySchemas\n transferPausable: z.boolean().nullable(),\n isBlacklisted: z.boolean().nullable(),\n isHoneypot: z.boolean().nullable(),\n isNotOpenSource: z.boolean().nullable(),\n renounced: z.boolean().nullable(),\n locked: z.string().nullable(),\n isWhitelisted: z.boolean().nullable(),\n balanceMutable: z.boolean().nullable(),\n lowLiquidity: z.string().nullable(),\n burnRate: z.string().nullable(),\n modifyableTax: z.boolean().nullable(),\n selfDestruct: z.boolean().nullable(),\n // Static analysis status\n staticAnalysisStatus: StaticAnalysisStatusEnum.nullable(),\n staticAnalysisDate: z.string().nullable(),\n // Liquidity burn: percentage of LP tokens sent to dead/zero addresses\n liquidityBurnPercentage: z.number().nullable(),\n // LP holder analysis: top pools sorted by volume, each with holder breakdown\n liquidityAnalysis: z\n .array(\n z.object({\n poolAddress: z.string(),\n poolType: z.string(),\n burnedPercentage: z.number(),\n lockedPercentage: z.number(),\n contractPercentage: z.number(),\n unlockedPercentage: z.number(),\n topHolders: z.array(\n z.object({\n address: z.string(),\n percentage: z.number(),\n type: z.enum(['burned', 'locked', 'contract', 'unlocked']),\n protocol: z.string().nullable(),\n }),\n ),\n }),\n )\n .nullable(),\n});\n\nexport type TokenSecurityOutputType = z.infer<typeof TokenSecurityOutput>;\n\nexport const TokenSecurityResponseSchema = z.object({\n data: TokenSecurityOutput,\n hostname: z.string().optional(),\n});\n\nexport type TokenSecurityResponse = z.infer<typeof TokenSecurityResponseSchema>;\n",
|
|
96
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams, type SDKInput } from '../../utils/functions/openAPIHelpers.ts';\n\nexport const TokenSecurityQuery = z.object({\n blockchain: z.string().optional(),\n address: z.string(),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n // Secret flag to force LLM static analysis (undocumented, you, reading this\n // open source code, pls don't use it ok? we will hunt you down and kill you)\n _forceAnalysis: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n // Secret flag to force honeypot simulation (same deal as above)\n _forceHoneypotAnalysis: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n});\n\nconst TOKEN_SECURITY_HIDDEN = ['instanceTracking', '_forceAnalysis', '_forceHoneypotAnalysis'] as const;\ntype TokenSecurityHiddenFields = (typeof TOKEN_SECURITY_HIDDEN)[number];\n\nexport type TokenSecurityQueryType = SDKInput<typeof TokenSecurityQuery, TokenSecurityHiddenFields>;\n\nexport const TokenSecurityQueryOpenAPI = createOpenAPIParams(TokenSecurityQuery, {\n omit: [...TOKEN_SECURITY_HIDDEN],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Token contract address',\n },\n});\n",
|
|
97
|
+
"import { z } from 'zod';\nimport { SwapType, Tags } from '../../utils/constants/constants.ts';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\nimport { PlatformMetadataOutput } from '../../utils/schemas/PlatformMetadataOutput.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\nimport { TokenMetadataMinimal } from '../../utils/schemas/TokenMetadataMinimal.ts';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\n\nexport const TradeDirection = z.enum(['buy', 'sell']);\n\nexport const TokenTradesParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n offset: z.coerce.number().default(0),\n limit: z.coerce.number().optional().default(10),\n sortOrder: z.enum(['asc', 'desc']).default('desc'),\n mode: z\n .enum(['pair', 'pool', 'asset'])\n .default('pair')\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset'),\n label: z.nativeEnum(Tags).optional(),\n swapTypes: stringOrArray\n .optional()\n .transform((val) =>\n val?.map((v) => v.toUpperCase()).filter((v) => Object.values(SwapType).includes(v as SwapType)),\n ),\n type: TradeDirection.optional(),\n transactionSenderAddresses: stringOrArray.optional().refine((arr) => !arr || arr.length <= 25, {\n message: 'Maximum 25 transaction sender addresses allowed',\n }),\n /** If true, filter by swap_recipient_address; if false, filter by transaction_sender_address. Same semantics as wallet positions. Default: false. */\n useSwapRecipient: z.coerce.boolean().optional().default(true),\n maxAmountUSD: z.coerce.number().optional(),\n minAmountUSD: z.coerce.number().optional(),\n fromDate: DateQuery.transform((val) => val ?? undefined),\n toDate: DateQuery.transform((val) => val ?? undefined),\n});\n\nexport type TokenTradesParams = z.input<typeof TokenTradesParamsSchema>;\nexport type TokenTradesInferType = z.infer<typeof TokenTradesParamsSchema>;\n\nexport const TokenTradesParamsSchemaOpenAPI = createOpenAPIParams(TokenTradesParamsSchema, {\n omit: ['useSwapRecipient', 'mode'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Token or pool contract address',\n offset: 'Offset for pagination (default: 0)',\n limit: 'Number of trades per page (default: 10)',\n sortOrder: 'Sort order: asc or desc (default: desc)',\n label: 'Filter by wallet label (e.g., sniper, insider, bundler)',\n swapTypes: 'Comma-separated swap types to filter (e.g., \"REGULAR,MEV\")',\n type: 'Filter by trade direction: \"buy\" or \"sell\"',\n transactionSenderAddresses: 'Comma-separated wallet addresses to filter (max 25)',\n maxAmountUSD: 'Maximum trade amount in USD',\n minAmountUSD: 'Minimum trade amount in USD',\n fromDate: 'Start date filter (timestamp or ISO string)',\n toDate: 'End date filter (timestamp or ISO string)',\n },\n});\n\nexport const TokenTradeOutput = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n preBalanceBaseToken: z.string().nullable().optional(),\n preBalanceQuoteToken: z.string().nullable().optional(),\n postBalanceBaseToken: z.string().nullable().optional(),\n postBalanceQuoteToken: z.string().nullable().optional(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n /**\n * The swap recipient is the most important wallet address in a trade transaction.\n * It represents the actual beneficiary of the swap - the wallet that receives the output tokens.\n *\n * This is critical for Account Abstraction (AA) scenarios where:\n * - The transaction sender (tx.from) is often a bundler, relayer, or smart contract wallet\n * - The swap sender may be an intermediate router or aggregator contract\n * - Only the swap recipient represents the real user/beneficiary of the trade\n *\n * For accurate wallet PnL tracking and portfolio analysis, always use swapRecipient\n * instead of transactionSenderAddress when available.\n */\n swapRecipient: z.string().nullable().optional(),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n marketAddresses: z.array(z.string()).optional(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n baseToken: TokenMetadataMinimal.nullable().optional(),\n quoteToken: TokenMetadataMinimal.nullable().optional(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const TokenTradeResponseSchema = z.object({\n data: z.array(TokenTradeOutput),\n});\n\nexport type TokenTradesResponse = z.infer<typeof TokenTradeResponseSchema>;\n\n// Single trade output - uses full TokenDetailsOutput for baseToken/quoteToken (prod alignment)\nexport const SingleTokenTradeOutput = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n preBalanceBaseToken: z.string().nullable().optional(),\n preBalanceQuoteToken: z.string().nullable().optional(),\n postBalanceBaseToken: z.string().nullable().optional(),\n postBalanceQuoteToken: z.string().nullable().optional(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n swapRecipient: z.string().nullable().optional(),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n marketAddresses: z.array(z.string()).optional(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n labels: z.array(z.string()).nullable().optional().default([]),\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n baseToken: TokenDetailsOutput.optional(),\n quoteToken: TokenDetailsOutput.optional(),\n platform: PlatformMetadataOutput.nullable().optional(),\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const SingleTokenTradeResponseSchema = z.object({\n data: SingleTokenTradeOutput,\n});\n\nexport type SingleTokenTradeResponse = z.infer<typeof SingleTokenTradeResponseSchema>;\n\nexport const FormattedTokenTradeOutput = z.object({\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n pair: z.string(),\n date: z.number(),\n tokenPrice: z.number(),\n tokenPriceVs: z.number(),\n tokenAmount: z.number(),\n tokenAmountVs: z.number(),\n tokenAmountUsd: z.number(),\n tokenAmountVsUsd: z.number(),\n type: z.string(),\n operation: z.string(),\n blockchain: z.string(),\n hash: z.string(),\n sender: z.string(),\n /**\n * The swap recipient is the most important wallet address in a trade transaction.\n * It represents the actual beneficiary of the swap - the wallet that receives the output tokens.\n *\n * This is critical for Account Abstraction (AA) scenarios where:\n * - The transaction sender (tx.from) is often a bundler, relayer, or smart contract wallet\n * - The swap sender may be an intermediate router or aggregator contract\n * - Only the swap recipient represents the real user/beneficiary of the trade\n *\n * For accurate wallet PnL tracking and portfolio analysis, always use swapRecipient\n * instead of sender when available.\n */\n swapRecipient: z.string().nullable().optional(),\n tokenAmountRaw: z.string(),\n tokenAmountRawVs: z.string(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const FormattedTokenTradeResponseSchema = z.object({\n data: z.array(FormattedTokenTradeOutput),\n});\n\nexport type FormattedTokenTradesResponse = z.infer<typeof FormattedTokenTradeResponseSchema>;\n\nexport const TokenTradeParamsSchema = z.object({\n blockchain: z.string().optional(),\n transactionHash: z.string().min(1, 'Transaction hash is required'),\n});\n\nexport type TokenTradeParams = z.input<typeof TokenTradeParamsSchema>;\nexport type TokenTradeInferType = z.infer<typeof TokenTradeParamsSchema>;\n\nexport const TokenTradeParamsSchemaOpenAPI = z.object({\n blockchain: z.string().describe('Blockchain name or chain ID'),\n transactionHash: z.string().min(1).describe('Transaction hash'),\n});\n\nexport const TokenTradeOutputOpenAPI = z.object({\n id: z.string(),\n operation: z.string(),\n type: z.string(),\n baseTokenAmount: z.number(),\n baseTokenAmountRaw: z.string(),\n baseTokenAmountUSD: z.number(),\n quoteTokenAmount: z.number(),\n quoteTokenAmountRaw: z.string(),\n quoteTokenAmountUSD: z.number(),\n date: z.number(),\n swapSenderAddress: z.string(),\n transactionSenderAddress: z.string(),\n /**\n * The swap recipient is the most important wallet address in a trade transaction.\n * It represents the actual beneficiary of the swap - the wallet that receives the output tokens.\n *\n * This is critical for Account Abstraction (AA) scenarios where:\n * - The transaction sender (tx.from) is often a bundler, relayer, or smart contract wallet\n * - The swap sender may be an intermediate router or aggregator contract\n * - Only the swap recipient represents the real user/beneficiary of the trade\n *\n * For accurate wallet PnL tracking and portfolio analysis, always use swapRecipient\n * instead of transactionSenderAddress when available.\n */\n swapRecipient: z\n .string()\n .nullable()\n .optional()\n .describe(\n 'The actual beneficiary wallet of the swap. Most important address for AA wallets and accurate PnL tracking.',\n ),\n blockchain: z.string(),\n transactionHash: z.string(),\n marketAddress: z.string(),\n marketAddresses: z.array(z.string()).optional(),\n baseTokenPriceUSD: z.number(),\n quoteTokenPriceUSD: z.number(),\n // Labels (sniper, bundler, insider, dev, proTrader, smartTrader, freshTrader)\n labels: z.array(z.string()).nullable().optional().default([]),\n // Wallet metadata from scraping_wallets (entity info)\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n baseToken: TokenMetadataMinimal.nullable().optional(),\n quoteToken: TokenMetadataMinimal.nullable().optional(),\n // Platform where the trade was executed (e.g. Photon, BullX, Maestro, etc.)\n platform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown\n totalFeesUSD: z.number().nullable().optional(),\n gasFeesUSD: z.number().nullable().optional(),\n platformFeesUSD: z.number().nullable().optional(),\n mevFeesUSD: z.number().nullable().optional(),\n});\n\nexport const SingleTokenTradeResponseSchemaOpenAPI = z.object({\n data: TokenTradeOutputOpenAPI,\n});\n",
|
|
98
|
+
"import { z } from 'zod';\nimport { SwapType, Tags } from '../../utils/constants/constants.ts';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\nimport { MarketDetailsOutput } from '../../utils/schemas/MarketDetailsOutput.ts';\nimport { PlatformMetadataOutput } from '../../utils/schemas/PlatformMetadataOutput.ts';\nimport { stringOrArray } from '../../utils/schemas/StringOrArray.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\nimport { WalletMetadataOutput } from '../../utils/schemas/WalletMetadataOutput.ts';\n\n/**\n * EnrichedTradesParams - Query parameters for the token/trades-enriched endpoint\n *\n * Same access pattern as token/trades (pool-focused, offset/limit pagination)\n * but returns swaps in BaseMessageType format (same as WebSocket streams),\n * including full pairData (MarketDetailsOutput) and tokenData (TokenDetailsOutput).\n */\nexport const EnrichedTradesParamsSchema = z.object({\n blockchain: z.string().optional(),\n address: z.string().optional(),\n offset: z.coerce.number().default(0),\n limit: z.coerce.number().optional().default(10),\n sortOrder: z.enum(['asc', 'desc']).default('desc'),\n label: z.nativeEnum(Tags).optional(),\n swapTypes: stringOrArray\n .optional()\n .transform((val) =>\n val?.map((v) => v.toUpperCase()).filter((v) => Object.values(SwapType).includes(v as SwapType)),\n ),\n type: z.enum(['buy', 'sell']).optional(),\n transactionSenderAddresses: stringOrArray.optional().refine((arr) => !arr || arr.length <= 25, {\n message: 'Maximum 25 transaction sender addresses allowed',\n }),\n useSwapRecipient: z.coerce.boolean().optional().default(true),\n maxAmountUSD: z.coerce.number().optional(),\n minAmountUSD: z.coerce.number().optional(),\n fromDate: DateQuery.transform((val) => val ?? undefined),\n toDate: DateQuery.transform((val) => val ?? undefined),\n});\n\nexport type EnrichedTradesParams = z.input<typeof EnrichedTradesParamsSchema>;\nexport type EnrichedTradesInferType = z.infer<typeof EnrichedTradesParamsSchema>;\n\n/**\n * OpenAPI-safe params schema (stripped of transforms/effects, with descriptions)\n */\nexport const EnrichedTradesParamsSchemaOpenAPI = createOpenAPIParams(EnrichedTradesParamsSchema, {\n omit: ['useSwapRecipient'],\n describe: {\n blockchain: 'Blockchain name or chain ID',\n address: 'Pool/pair contract address',\n offset: 'Offset for pagination (default: 0)',\n limit: 'Number of trades per page (default: 10)',\n sortOrder: 'Sort order: asc or desc (default: desc)',\n label: 'Filter by wallet label (e.g., sniper, insider, bundler)',\n swapTypes: 'Comma-separated swap types to filter (e.g., \"REGULAR,MEV\")',\n type: 'Filter by trade direction: \"buy\" or \"sell\"',\n transactionSenderAddresses: 'Comma-separated wallet addresses to filter (max 25)',\n maxAmountUSD: 'Maximum trade amount in USD',\n minAmountUSD: 'Minimum trade amount in USD',\n fromDate: 'Start date filter (timestamp or ISO string)',\n toDate: 'End date filter (timestamp or ISO string)',\n },\n});\n\n/**\n * Enriched trade output — matches the WebSocket stream `swap-enriched` event format.\n *\n * The REST endpoint mirrors the stream's BuildMessageReturn (CuratedSwap + deriveSwapView fields).\n * All field names are camelCase, matching the stream output exactly.\n *\n * ## Fields NOT available from REST (only present in real-time stream)\n *\n * These fields exist in the stream but are populated in-memory by the extractors and never\n * persisted to the warehouse DB. They will be absent from REST responses:\n *\n * - `rawPostBalanceRecipient0` / `rawPostBalanceRecipient1` — recipient token balances after swap\n * - `rawPostBalanceNativeSender` / `rawPostBalanceNativeRecipient` — native SOL balances (Solana only)\n * - `miniBlockSlot` — Solana mini-block ordering slot (internal to swap-extractor)\n * - `blockHeight` / `blockHash` / `logIndex` / `transactionIndex` — returned as null (not stored in warehouse)\n *\n * ## REST-only enrichments (not in stream)\n *\n * - `labels` — wallet labels (sniper, insider, bundler, dev, etc.)\n * - `walletMetadata` — entity name/label for known wallets\n * - `platformMetadata` — DEX platform metadata (name, logo, etc.)\n */\nexport const EnrichedTradeOutput = z.object({\n // CuratedSwap core fields\n addressToken0: z.string(),\n addressToken1: z.string(),\n amount0: z.number(),\n amount1: z.number(),\n amountUSD: z.number().optional(),\n rawAmount0: z.string(),\n rawAmount1: z.string(),\n priceUSDToken0: z.number().optional(),\n priceUSDToken1: z.number().optional(),\n swapType: z.string(),\n poolType: z.string().nullable(),\n poolAddress: z.string(),\n swapSenderAddress: z.string().nullable(),\n transactionHash: z.string(),\n transactionSenderAddress: z.string(),\n transactionIndex: z.number().nullable(),\n transactionSwapsCount: z.number(),\n swapRecipient: z.string().nullable().optional(),\n swapIndex: z.number(),\n ratio: z.number(),\n chainId: z.string(),\n timestamp: z.string(),\n blockHeight: z.unknown().nullable(),\n blockHash: z.string().nullable(),\n logIndex: z.number().nullable(),\n platform: z.string().nullable().optional(),\n\n // Raw balance fields (from warehouse DB)\n rawPreBalance0: z.string().nullable(),\n rawPreBalance1: z.string().nullable(),\n rawPostBalance0: z.string().nullable(),\n rawPostBalance1: z.string().nullable(),\n\n // Fee fields\n gasFeesUSD: z.number(),\n platformFeesUSD: z.number(),\n mevFeesUSD: z.number(),\n totalFeesUSD: z.number(),\n gasFeesNativeRaw: z.string(),\n platformFeesNativeRaw: z.string(),\n mevFeesNativeRaw: z.string(),\n totalFeesNativeRaw: z.string(),\n\n // deriveSwapView derived fields\n baseToken: z.string(),\n quoteToken: z.string(),\n pair: z.string(),\n date: z.coerce.date(),\n tokenPrice: z.number(),\n tokenPriceVs: z.number(),\n priceNative: z.number(),\n tokenAmount: z.number(),\n tokenAmountVs: z.number(),\n tokenAmountUSD: z.number().optional(),\n type: z.string(),\n operation: z.string(),\n blockchain: z.string(),\n hash: z.string(),\n sender: z.string(),\n tokenAmountRaw: z.string(),\n tokenAmountRawVs: z.string(),\n\n // Enrichment data\n baseTokenData: TokenDetailsOutput.optional(),\n quoteTokenData: TokenDetailsOutput.optional(),\n pairData: MarketDetailsOutput.optional(),\n marketCapUSD: z.number().optional(),\n marketCapDilutedUSD: z.number().optional(),\n totalSupply: z.number().optional(),\n circulatingSupply: z.number().optional(),\n\n // Position data\n position: z\n .object({\n balance: z.number(),\n rawBalance: z.string(),\n amountUSD: z.number(),\n nativeBalanceRaw: z.string(),\n nativeBalance: z.number(),\n buys: z.number(),\n sells: z.number(),\n volumeBuyToken: z.number(),\n volumeSellToken: z.number(),\n volumeBuy: z.number(),\n volumeSell: z.number(),\n avgBuyPriceUSD: z.number(),\n avgSellPriceUSD: z.number(),\n realizedPnlUSD: z.number(),\n unrealizedPnlUSD: z.number(),\n totalPnlUSD: z.number(),\n realizedPnlPercent: z.number(),\n unrealizedPnlPercent: z.number(),\n })\n .optional(),\n\n // REST-only enrichments\n labels: z.array(z.string()).optional(),\n walletMetadata: WalletMetadataOutput.nullable().optional(),\n platformMetadata: PlatformMetadataOutput.nullable().optional(),\n});\n\nexport type EnrichedTradeOutputType = z.infer<typeof EnrichedTradeOutput>;\n\n/**\n * Response schema for token/trades-enriched endpoint\n */\nexport const EnrichedTradesResponseSchema = z.object({\n data: z.array(EnrichedTradeOutput),\n});\n\nexport type EnrichedTradesResponse = z.infer<typeof EnrichedTradesResponseSchema>;\n",
|
|
93
99
|
"import { z } from 'zod';\nimport DateQuery from '../../utils/schemas/DateQuery.ts';\nimport { TokenTradeOutput } from '../token/TokenTradesSchema.ts';\n\n/**\n * Maximum timeframe allowed for trades/filters endpoint (default: 1 hour in milliseconds)\n * Configurable via TRADES_FILTERS_MAX_TIMEFRAME_MS env variable\n */\nexport const TRADES_FILTERS_MAX_TIMEFRAME_MS = Number(process.env['TRADES_FILTERS_MAX_TIMEFRAME_MS']) || 60 * 60 * 1000;\n\n/**\n * Maximum number of trades that can be returned per request\n * Configurable via TRADES_FILTERS_MAX_LIMIT env variable (default: 5000)\n */\nexport const TRADES_FILTERS_MAX_LIMIT = Number(process.env['TRADES_FILTERS_MAX_LIMIT']) || 5000;\n\n/**\n * TradesFiltersParams - Query parameters for the trades/filters endpoint\n *\n * This endpoint allows batch downloading trades with filters:\n * - Filter by token address (optional)\n * - Filter by blockchain/chain (optional)\n * - Required timeframe (from/to) with max 1 hour window\n * - Cursor-based pagination for fetching more results\n */\nexport const TradesFiltersParamsSchema = z\n .object({\n // Filter by token address (optional - if not provided, returns all trades)\n tokenAddress: z.string().optional(),\n\n // Filter by blockchain name or chain ID (optional - if not provided, returns all chains)\n blockchain: z.string().optional(),\n\n // Timeframe - REQUIRED\n from: DateQuery.refine((val) => val !== undefined, { message: 'from date is required' }),\n to: DateQuery.refine((val) => val !== undefined, { message: 'to date is required' }),\n\n // Pagination\n limit: z.coerce.number().min(1).max(TRADES_FILTERS_MAX_LIMIT).optional().default(1000),\n\n // Cursor-based pagination (format: \"timestamp_ms:id\")\n cursor: z.string().optional(),\n\n // Sort order (default: asc for batch downloading)\n sortOrder: z.enum(['asc', 'desc']).default('asc'),\n })\n .refine(\n (data) => {\n if (!data.from || !data.to) return false;\n const fromTime = data.from.getTime();\n const toTime = data.to.getTime();\n return toTime - fromTime <= TRADES_FILTERS_MAX_TIMEFRAME_MS;\n },\n {\n message: `Timeframe cannot exceed 1 hour (${TRADES_FILTERS_MAX_TIMEFRAME_MS}ms)`,\n },\n )\n .refine(\n (data) => {\n if (!data.from || !data.to) return false;\n return data.from.getTime() < data.to.getTime();\n },\n {\n message: 'from date must be before to date',\n },\n );\n\nexport type TradesFiltersParams = z.input<typeof TradesFiltersParamsSchema>;\nexport type TradesFiltersInferType = z.infer<typeof TradesFiltersParamsSchema>;\n\n/**\n * Pagination info for trades/filters response\n */\nexport const TradesFiltersPaginationSchema = z.object({\n // Number of items returned in this response\n count: z.number(),\n // Cursor for next page (null if no more results)\n nextCursor: z.string().nullable(),\n // Whether there are more results available\n hasMore: z.boolean(),\n // Total timeframe covered\n from: z.number(),\n to: z.number(),\n});\n\n/**\n * Response schema for trades/filters endpoint\n * Uses same output format as TokenTradeOutput for consistency\n */\nexport const TradesFiltersResponseSchema = z.object({\n data: z.array(TokenTradeOutput),\n pagination: TradesFiltersPaginationSchema,\n});\n\nexport type TradesFiltersResponse = z.infer<typeof TradesFiltersResponseSchema>;\n",
|
|
94
|
-
"import { z } from 'zod';\nimport { PlatformMetadataOutput } from '../../utils/schemas/PlatformMetadataOutput.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nexport type WalletActivityV2ControllerUnsafeParams = {\n wallet: string;\n blockchains?: string;\n blacklist?: string;\n offset?: number | string;\n limit?: number | string;\n order?: string;\n pagination_details?: boolean | string;\n unlistedAssets?: boolean | string;\n filterSpam?: boolean | string;\n backfillTransfers?: boolean | string;\n backfillBalances?: boolean | string;\n // camelCase (preferred)\n cursorHash?: string;\n cursorDirection?: 'before' | 'after';\n // snake_case (legacy, for backwards compatibility)\n cursor_hash?: string;\n cursor_direction?: 'before' | 'after';\n enrichSwaps?: boolean | string;\n from?: number | string;\n to?: number | string;\n};\n\nexport const WalletActivityV2ParamsSchema = z\n .object({\n wallet: z.string(),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n blacklist: z\n .string()\n .optional()\n .transform((val) => (val ? val.split(',').map((addr) => addr.trim().toLowerCase()) : [])),\n offset: z.coerce.number().optional().default(0),\n limit: z.coerce.number().optional().default(100),\n order: z.enum(['asc', 'desc']).optional().default('desc'),\n pagination: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n unlistedAssets: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(true),\n filterSpam: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(true),\n backfillTransfers: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n backfillBalances: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n // Cursor params: support both camelCase (preferred) and snake_case (legacy)\n cursorHash: z.string().optional(),\n cursorDirection: z.enum(['before', 'after']).optional(),\n // Legacy snake_case params (for backwards compatibility)\n cursor_hash: z.string().optional(),\n cursor_direction: z.enum(['before', 'after']).optional(),\n withTokens: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n // When true, enriches swap actions with platform and fee data from the swaps table.\n // Adds ~300-400ms overhead due to TimescaleDB partition scanning.\n enrichSwaps: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n // Optional date filters (timestamps in milliseconds)\n from: z.coerce.number().optional(),\n to: z.coerce.number().optional(),\n })\n .transform((data) => ({\n ...data,\n // Merge cursor params: prefer camelCase, fallback to snake_case\n cursorHash: data.cursorHash ?? data.cursor_hash,\n cursorDirection: data.cursorDirection ?? data.cursor_direction ?? 'before',\n }));\n\nexport type WalletActivityV2Params = z.input<typeof WalletActivityV2ParamsSchema>;\n\n// Reusable asset schema used in nested activity items\nconst ActivityAssetSchema = z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUsd: z.number(),\n logo: z.string().nullable(),\n contract: z.string(),\n});\n\n// Activities that occurred within a single transaction\nexport const WalletActivityV2TransactionActivitySchema = z.object({\n model: z.enum(['swap', 'transfer']),\n\n // Swap-specific fields\n swapType: z.enum(['REGULAR', 'MEV', 'SANDWICHED_MEV', 'DEPOSIT', 'WITHDRAW']).optional(),\n swapRawAmountOut: z.number().optional(),\n swapRawAmountIn: z.number().optional(),\n swapAmountOut: z.number().optional(),\n swapAmountIn: z.number().optional(),\n swapPriceUsdTokenOut: z.number().optional(),\n swapPriceUsdTokenIn: z.number().optional(),\n swapAmountUsd: z.number().optional(),\n swapTransactionSenderAddress: z.string().optional(),\n swapBaseAddress: z.string().optional(),\n swapQuoteAddress: z.string().optional(),\n swapAmountQuote: z.number().optional(),\n swapAmountBase: z.number().optional(),\n swapAssetIn: ActivityAssetSchema.optional(),\n swapAssetOut: ActivityAssetSchema.optional(),\n // Platform where the swap was executed (e.g. Photon, BullX, Maestro, etc.)\n swapPlatform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown from actual swap data\n swapTotalFeesUsd: z.number().nullable().optional(),\n swapGasFeesUsd: z.number().nullable().optional(),\n swapPlatformFeesUsd: z.number().nullable().optional(),\n swapMevFeesUsd: z.number().nullable().optional(),\n\n // Transfer-specific fields\n transferRawAmount: z.string().optional(),\n transferAmount: z.number().optional(),\n transferAmountUsd: z.number().optional(),\n transferType: z\n .enum(['VAULT_DEPOSIT', 'VAULT_WITHDRAW', 'VAULT_UNSTAKE', 'TOKEN_IN', 'TOKEN_OUT', 'NATIVE_IN', 'NATIVE_OUT'])\n .optional(),\n transferFromAddress: z.string().optional().nullable(),\n transferToAddress: z.string().optional().nullable(),\n transferAsset: ActivityAssetSchema.optional(),\n});\n\n// Grouped by transaction hash\nexport const WalletActivityV2TransactionSchema = z.object({\n chainId: z.string(),\n txDateMs: z.number(),\n txDateIso: z.string(),\n txHash: z.string(),\n txRawFeesNative: z.string(),\n txFeesNativeUsd: z.number(),\n txBlockNumber: z.number(),\n txIndex: z.number(),\n txAction: z.string().optional().nullable(),\n\n actions: z.array(WalletActivityV2TransactionActivitySchema),\n});\n\nexport const WalletActivityV2OutputDataSchema = z.array(WalletActivityV2TransactionSchema);\n\nexport const WalletActivityV2OutputPaginationSchema = z.object({\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n pageEntries: z.number(),\n});\n\nexport const WalletActivityV2ResponseSchema = z.object({\n data: WalletActivityV2OutputDataSchema,\n pagination: WalletActivityV2OutputPaginationSchema,\n backfillStatus: z.enum(['processed', 'processing', 'pending']).optional(),\n tokens: z.array(TokenDetailsOutput).optional(),\n});\n\nexport type WalletActivityV2Response = z.input<typeof WalletActivityV2ResponseSchema>;\n",
|
|
100
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams } from '../../utils/functions/openAPIHelpers.ts';\nimport { PlatformMetadataOutput } from '../../utils/schemas/PlatformMetadataOutput.ts';\nimport { TokenDetailsOutput } from '../../utils/schemas/TokenDetailsOutput.ts';\n\nexport type WalletActivityV2ControllerUnsafeParams = {\n wallet: string;\n blockchains?: string;\n blacklist?: string;\n offset?: number | string;\n limit?: number | string;\n order?: string;\n pagination_details?: boolean | string;\n unlistedAssets?: boolean | string;\n filterSpam?: boolean | string;\n backfillTransfers?: boolean | string;\n backfillBalances?: boolean | string;\n // camelCase (preferred)\n cursorHash?: string;\n cursorDirection?: 'before' | 'after';\n // snake_case (legacy, for backwards compatibility)\n cursor_hash?: string;\n cursor_direction?: 'before' | 'after';\n enrichSwaps?: boolean | string;\n from?: number | string;\n to?: number | string;\n};\n\nexport const WalletActivityV2ParamsSchema = z\n .object({\n wallet: z.string(),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n blacklist: z\n .string()\n .optional()\n .transform((val) => (val ? val.split(',').map((addr) => addr.trim().toLowerCase()) : [])),\n offset: z.coerce.number().optional().default(0),\n limit: z.coerce.number().optional().default(100),\n order: z.enum(['asc', 'desc']).optional().default('desc'),\n pagination: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n unlistedAssets: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(true),\n filterSpam: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(true),\n backfillTransfers: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n backfillBalances: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n // Cursor params: support both camelCase (preferred) and snake_case (legacy)\n cursorHash: z.string().optional(),\n cursorDirection: z.enum(['before', 'after']).optional(),\n // Legacy snake_case params (for backwards compatibility)\n cursor_hash: z.string().optional(),\n cursor_direction: z.enum(['before', 'after']).optional(),\n withTokens: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n // When true, enriches swap actions with platform and fee data from the swaps table.\n // Adds ~300-400ms overhead due to TimescaleDB partition scanning.\n enrichSwaps: z\n .union([z.boolean(), z.string()])\n .optional()\n .transform((val) => val === true || val === 'true')\n .default(false),\n // Optional date filters (timestamps in milliseconds)\n from: z.coerce.number().optional(),\n to: z.coerce.number().optional(),\n })\n .transform((data) => ({\n ...data,\n // Merge cursor params: prefer camelCase, fallback to snake_case\n cursorHash: data.cursorHash ?? data.cursor_hash,\n cursorDirection: data.cursorDirection ?? data.cursor_direction ?? 'before',\n }));\n\nexport type WalletActivityV2Params = z.input<typeof WalletActivityV2ParamsSchema>;\n\nexport const WalletActivityV2ParamsSchemaOpenAPI = createOpenAPIParams(WalletActivityV2ParamsSchema, {\n omit: [\n 'blacklist',\n 'pagination',\n 'backfillTransfers',\n 'backfillBalances',\n 'cursor_hash',\n 'cursor_direction',\n 'withTokens',\n 'enrichSwaps',\n ],\n describe: {\n wallet: 'Wallet address',\n blockchains: 'Comma-separated list of blockchain IDs (e.g., \"ethereum,base,solana:solana\")',\n offset: 'Offset for pagination (default: 0)',\n limit: 'Number of transactions per page (default: 100)',\n order: 'Sort order: asc or desc (default: desc)',\n unlistedAssets: 'Include unlisted assets (default: true)',\n filterSpam: 'Filter spam transactions (default: true)',\n cursorHash: 'Cursor hash for cursor-based pagination',\n cursorDirection: 'Cursor direction: before or after',\n from: 'Start timestamp in milliseconds',\n to: 'End timestamp in milliseconds',\n },\n});\n\n// Reusable asset schema used in nested activity items\nconst ActivityAssetSchema = z.object({\n id: z.number().nullable(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n totalSupply: z.number(),\n circulatingSupply: z.number(),\n price: z.number(),\n liquidity: z.number(),\n priceChange24hPercent: z.number(),\n marketCapUsd: z.number(),\n logo: z.string().nullable(),\n contract: z.string(),\n});\n\n// Activities that occurred within a single transaction\nexport const WalletActivityV2TransactionActivitySchema = z.object({\n model: z.enum(['swap', 'transfer']),\n\n // Swap-specific fields\n swapType: z.enum(['REGULAR', 'MEV', 'SANDWICHED_MEV', 'DEPOSIT', 'WITHDRAW']).optional(),\n swapRawAmountOut: z.number().optional(),\n swapRawAmountIn: z.number().optional(),\n swapAmountOut: z.number().optional(),\n swapAmountIn: z.number().optional(),\n swapPriceUsdTokenOut: z.number().optional(),\n swapPriceUsdTokenIn: z.number().optional(),\n swapAmountUsd: z.number().optional(),\n swapTransactionSenderAddress: z.string().optional(),\n swapBaseAddress: z.string().optional(),\n swapQuoteAddress: z.string().optional(),\n swapAmountQuote: z.number().optional(),\n swapAmountBase: z.number().optional(),\n swapAssetIn: ActivityAssetSchema.optional(),\n swapAssetOut: ActivityAssetSchema.optional(),\n // Platform where the swap was executed (e.g. Photon, BullX, Maestro, etc.)\n swapPlatform: PlatformMetadataOutput.nullable().optional(),\n // Fees breakdown from actual swap data\n swapTotalFeesUsd: z.number().nullable().optional(),\n swapGasFeesUsd: z.number().nullable().optional(),\n swapPlatformFeesUsd: z.number().nullable().optional(),\n swapMevFeesUsd: z.number().nullable().optional(),\n\n // Transfer-specific fields\n transferRawAmount: z.string().optional(),\n transferAmount: z.number().optional(),\n transferAmountUsd: z.number().optional(),\n transferType: z\n .enum(['VAULT_DEPOSIT', 'VAULT_WITHDRAW', 'VAULT_UNSTAKE', 'TOKEN_IN', 'TOKEN_OUT', 'NATIVE_IN', 'NATIVE_OUT'])\n .optional(),\n transferFromAddress: z.string().optional().nullable(),\n transferToAddress: z.string().optional().nullable(),\n transferAsset: ActivityAssetSchema.optional(),\n});\n\n// Grouped by transaction hash\nexport const WalletActivityV2TransactionSchema = z.object({\n chainId: z.string(),\n txDateMs: z.number(),\n txDateIso: z.string(),\n txHash: z.string(),\n txRawFeesNative: z.string(),\n txFeesNativeUsd: z.number(),\n txBlockNumber: z.number(),\n txIndex: z.number(),\n txAction: z.string().optional().nullable(),\n\n actions: z.array(WalletActivityV2TransactionActivitySchema),\n});\n\nexport const WalletActivityV2OutputDataSchema = z.array(WalletActivityV2TransactionSchema);\n\nexport const WalletActivityV2OutputPaginationSchema = z.object({\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n pageEntries: z.number(),\n});\n\nexport const WalletActivityV2ResponseSchema = z.object({\n data: WalletActivityV2OutputDataSchema,\n pagination: WalletActivityV2OutputPaginationSchema,\n backfillStatus: z.enum(['processed', 'processing', 'pending']).optional(),\n tokens: z.array(TokenDetailsOutput).optional(),\n});\n\nexport type WalletActivityV2Response = z.input<typeof WalletActivityV2ResponseSchema>;\n",
|
|
95
101
|
"import { z } from 'zod';\n\n// ===========================================\n// Input Schema\n// ===========================================\n\n// Validates both EVM (0x + 40 hex chars = 42) and Solana (32-44 base58 chars) addresses\nconst walletAddressSchema = z\n .string()\n .min(32, 'Invalid wallet address')\n .max(44, 'Invalid wallet address')\n .or(z.string().regex(/^0x[a-fA-F0-9]{40}$/, 'Invalid EVM wallet address'));\n\nexport const WalletDefiPositionsParamsSchema = z.object({\n wallet: walletAddressSchema.describe('Wallet address (EVM or Solana)'),\n blockchains: z.string().describe('Blockchain to fetch positions from (e.g., \"solana\", \"ethereum\")'),\n});\n\nexport type WalletDefiPositionsParams = z.infer<typeof WalletDefiPositionsParamsSchema>;\n\n// ===========================================\n// Output Types\n// ===========================================\n\nexport type ProtocolCategory =\n | 'lending'\n | 'lp'\n | 'liquid-staking'\n | 'native-staking'\n | 'restaking'\n | 'perps'\n | 'yield'\n | 'cdp'\n | 'streaming';\n\nexport type PositionType =\n | 'deposit'\n | 'borrow'\n | 'liquidity'\n | 'stake'\n | 'leverage'\n | 'collateral'\n | 'debt'\n | 'vesting'\n | 'streaming'\n | 'order';\n\n// ===========================================\n// Token\n// ===========================================\n\nexport interface TokenAmount {\n address: string;\n symbol: string;\n name: string;\n decimals: number;\n amountRaw: string; // Raw amount\n amountFormatted: number; // Human readable\n priceUSD: number;\n valueUSD: number;\n logoUri?: string;\n}\n\n// ===========================================\n// Metadata by position type\n// ===========================================\n\nexport interface LendingMetadata {\n type: 'lending';\n market?: string; // Market name (e.g., \"Main Market\", \"JLP Market\")\n healthFactor?: string;\n liquidationThreshold?: string;\n ltv?: string;\n supplyAPY?: string; // Total APY (base + token APY for LSTs)\n baseSupplyAPY?: string; // Base lending APY from protocol\n tokenAPY?: string; // Native staking/yield APY for yield-bearing tokens (LST, JLP, etc.)\n borrowAPY?: string; // Base borrow APY from protocol\n baseBorrowAPY?: string; // Base borrow APY (same as borrowAPY, for consistency with supply)\n utilizationRate?: string;\n}\n\nexport interface LiquidityMetadata {\n type: 'liquidity';\n poolAddress: string;\n poolName: string;\n poolType: 'amm' | 'clmm' | 'dlmm';\n shareOfPool?: string;\n fee24h?: string;\n apy?: string;\n tickLower?: number;\n tickUpper?: number;\n inRange?: boolean;\n}\n\nexport interface LiquidStakingMetadata {\n type: 'liquid-staking';\n lstMint: string;\n lstSymbol: string;\n exchangeRate: string;\n apy?: string;\n unstakePending?: string;\n}\n\nexport interface PerpMetadata {\n type: 'perp';\n // Identification\n id: string;\n marketId: string;\n exchange: 'drift' | 'gains' | 'hyperliquid' | 'gte' | 'lighter';\n\n // Position\n side: 'BUY' | 'SELL';\n entryPriceQuote: number;\n currentPriceQuote: number;\n currentLeverage: number;\n liquidationPriceQuote: number;\n\n // Size\n amountUSD: number;\n amountRaw: string; // bigint -> string for JSON serialization\n\n // PnL\n realizedPnlUSD: number;\n unrealizedPnlUSD: number;\n realizedPnlPercent: number;\n unrealizedPnlPercent: number;\n\n // Fees\n feesOpeningUSD: number;\n feesClosingUSD: number;\n feesFundingUSD: number;\n\n // TP/SL\n tp: Array<{ size: string; price: number; id: number }>;\n sl: Array<{ size: string; price: number; id: number }>;\n\n // Timestamps\n openDate?: string;\n lastUpdate?: string;\n\n // Chain info\n address: string;\n chainId: string;\n collateralAsset: string;\n}\n\nexport interface StreamingMetadata {\n type: 'streaming';\n streamType: 'vesting' | 'payment';\n sender?: string;\n recipient?: string;\n startTime: string;\n endTime: string;\n amountPerSecond: string;\n amountClaimed: string;\n amountRemaining: string;\n cliffDate?: string;\n}\n\nexport interface NativeStakingMetadata {\n type: 'native-staking';\n stakeAccountAddress: string;\n validatorVoteAccount: string;\n validatorName?: string;\n validatorCommission?: number;\n activationState: 'activating' | 'active' | 'deactivating' | 'inactive';\n activationEpoch?: number;\n deactivationEpoch?: number;\n currentEpoch: number;\n apy?: string;\n}\n\nexport interface RestakingMetadata {\n type: 'restaking';\n strategyAddress: string;\n strategyName: string;\n underlyingToken: string;\n underlyingSymbol: string;\n operatorAddress?: string;\n isDelegated: boolean;\n sharesRaw: string;\n}\n\nexport type PositionMetadata =\n | LendingMetadata\n | LiquidityMetadata\n | LiquidStakingMetadata\n | NativeStakingMetadata\n | RestakingMetadata\n | PerpMetadata\n | StreamingMetadata;\n\n// ===========================================\n// Position\n// ===========================================\n\nexport interface Position {\n id: string;\n type: PositionType;\n name: string;\n valueUSD: number;\n tokens: TokenAmount[];\n rewards?: TokenAmount[];\n metadata?: PositionMetadata;\n createdAt?: string;\n updatedAt?: string;\n}\n\n// ===========================================\n// Protocol\n// ===========================================\n\nexport interface Protocol {\n id: string;\n name: string;\n url: string;\n logo: string;\n category: ProtocolCategory;\n}\n\nexport interface ProtocolPosition {\n protocol: Protocol;\n totalValueUSD: string;\n positions: Position[];\n}\n\n// ===========================================\n// API Response\n// ===========================================\n\nexport interface WalletDefiPositionsData {\n wallet: string;\n fetchedAt: string;\n totalValueUSD: string;\n totalDepositedUSD: string;\n totalBorrowedUSD: string;\n totalRewardsUSD: string;\n protocols: ProtocolPosition[];\n}\n\nexport interface WalletDefiPositionsResponse {\n data: WalletDefiPositionsData;\n}\n\nexport interface WalletDefiPositionsErrorResponse {\n error: {\n code: string;\n message: string;\n };\n}\n",
|
|
96
102
|
"import { z } from 'zod';\nimport {\n tokenPositionSchema,\n WalletDeployerQuery,\n walletDeployerOutputSchema,\n} from '../../utils/schemas/WalletDeployerSchema.ts';\n\nexport type TokenPositionSchema = z.infer<typeof tokenPositionSchema>;\nexport const WalletV2DeployerParamsSchema = WalletDeployerQuery;\nexport type WalletV2DeployerParams = z.input<typeof WalletV2DeployerParamsSchema>;\n\nexport const WalletV2DeployerResponseSchema = walletDeployerOutputSchema;\nexport type WalletV2DeployerResponse = z.infer<typeof WalletV2DeployerResponseSchema>;\n",
|
|
97
103
|
"import { z } from 'zod';\n\n// Zod schema for wallet funding query parameters\nexport const WalletFundingParamsSchema = z.object({\n wallet: z.string().min(1, 'Wallet address is required'),\n});\n\nexport type WalletFundingParams = z.input<typeof WalletFundingParamsSchema>;\n\n// Zod schema for wallet funding response\nexport const WalletFundingResponseSchema = z.object({\n data: z.object({\n from: z.string().nullable(),\n chainId: z.string().nullable(),\n date: z.coerce.date().nullable(),\n txHash: z.string().nullable(),\n amount: z.string().nullable(),\n fromWalletLogo: z.string().nullable(),\n fromWalletTag: z.string().nullable(),\n }),\n});\n\nexport type WalletFundingResponse = z.infer<typeof WalletFundingResponseSchema>;\n",
|
|
98
104
|
"import { z } from 'zod';\n\nexport const ExchangesIds = z.enum(['gains', 'hyperliquid', 'gte', 'lighter', 'drift']);\n\nconst tpSlSchema = z.object({ size: z.bigint(), price: z.number(), id: z.number() });\nexport const PerpsPositionSchema = z.object({\n id: z.string(),\n entryPriceQuote: z.number(),\n currentLeverage: z.number(),\n amountUSD: z.number(),\n amountRaw: z.bigint(),\n side: z.enum(['BUY', 'SELL']),\n liquidationPriceQuote: z.number(),\n currentPriceQuote: z.number(),\n realizedPnlUSD: z.number(),\n unrealizedPnlUSD: z.number(),\n realizedPnlPercent: z.number(),\n unrealizedPnlPercent: z.number(),\n tp: z.array(tpSlSchema),\n sl: z.array(tpSlSchema),\n marketId: z.string(),\n exchange: ExchangesIds,\n feesOpeningUSD: z.number(),\n feesClosingUSD: z.number(),\n feesFundingUSD: z.number(),\n openDate: z.coerce.date(),\n lastUpdate: z.coerce.date(),\n address: z.string(),\n chainId: z.string(),\n collateralAsset: z.string(),\n});\n\nexport type PerpsPosition = z.infer<typeof PerpsPositionSchema>;\nexport const PerpsPositionNonExecutedSchema = PerpsPositionSchema.extend({\n type: z.enum(['STOP', 'LIMIT']),\n});\n\nexport type PerpsPositionNonExecuted = z.infer<typeof PerpsPositionNonExecutedSchema>;\n\nexport const WalletPerpsPositionsResponseSchema = z.object({\n data: z.array(PerpsPositionSchema),\n});\n\nexport const WalletPerpsPositionsNonExecutedResponseSchema = z.object({\n data: z.array(PerpsPositionNonExecutedSchema),\n});\n",
|
|
99
|
-
"import { z } from 'zod';\nimport { tokenPositionSchema, WalletMetadataSchema } from '../../utils/schemas/WalletDeployerSchema.ts';\n\n/**\n * Sort options for wallet positions (camelCase API values)\n * - lastActivity: Sort by last trade date (default)\n * - realizedPnl: Sort by realized PnL USD\n *\n * Internally mapped to snake_case for SQL queries:\n * - lastActivity → last_activity\n * - realizedPnl → realized_pnl\n */\nexport const PositionSortBySchema = z.enum(['lastActivity', 'realizedPnl']).default('lastActivity');\nexport type PositionSortBy = z.infer<typeof PositionSortBySchema>;\n\n/**\n * Map camelCase sortBy values to internal snake_case values for SQL queries\n */\nexport const positionSortByToInternal = (sortBy: PositionSortBy): 'last_activity' | 'realized_pnl' => {\n const mapping: Record<PositionSortBy, 'last_activity' | 'realized_pnl'> = {\n lastActivity: 'last_activity',\n realizedPnl: 'realized_pnl',\n };\n return mapping[sortBy];\n};\n\nexport const WalletPositionsParamsSchema = z.object({\n wallet: z.string(),\n blockchain: z.string().optional(),\n\n // Pagination\n limit: z.coerce.number().min(1).max(500).optional().default(100),\n offset: z.coerce.number().min(0).optional().default(0),\n\n // Cursor-based pagination (takes precedence over offset)\n cursor: z.string().optional(),\n cursorDirection: z.enum(['before', 'after']).optional().default('after'),\n\n // Sorting\n sortBy: PositionSortBySchema.optional(),\n order: z.enum(['asc', 'desc']).optional().default('desc'),\n\n // Internal backfill options (not documented)\n _backfillPositions: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n _backfillSwapsAndPositions: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type WalletPositionsParams = z.input<typeof WalletPositionsParamsSchema>;\n\nexport const SinglePositionQuery = z.object({\n wallet: z.string(),\n asset: z.string(),\n blockchain: z.string(),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\n// Batch position query - single item schema\nconst SinglePositionItemSchema = z.object({\n wallet: z.string(),\n asset: z.string(),\n blockchain: z.string(),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\n// Batch position params - supports array or object with items\nexport const SinglePositionBatchParamsSchema = z.union([\n z.array(SinglePositionItemSchema),\n z.object({\n items: z.array(SinglePositionItemSchema),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\nexport type SinglePositionBatchParams = z.input<typeof SinglePositionBatchParamsSchema>;\n\nexport type TokenPositionType = z.infer<typeof tokenPositionSchema>;\n\n// Pagination schema aligned with WalletActivityV2\nexport const WalletPositionsPaginationSchema = z.object({\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n pageEntries: z.number(), // Number of items actually returned\n});\n\nexport const WalletPositionsResponseSchema = z.object({\n data: z.array(tokenPositionSchema),\n // Wallet-level metadata (funding info, global labels)\n wallet: WalletMetadataSchema.optional(),\n // Pagination info\n pagination: WalletPositionsPaginationSchema.optional(),\n});\n\nexport type WalletPositionsResponse = z.infer<typeof WalletPositionsResponseSchema>;\n\nexport const singlePositionOutputSchema = z.object({\n data: tokenPositionSchema,\n // Wallet-level metadata (funding info, global labels)\n wallet: WalletMetadataSchema.optional(),\n});\n\n// Batch position item schema - includes wallet for identification\nexport const batchPositionItemSchema = tokenPositionSchema.extend({\n wallet: z.string(),\n});\n\n// Batch response schema\nexport const SinglePositionBatchResponseSchema = z.object({\n payload: z.array(\n batchPositionItemSchema.or(z.object({ error: z.string().optional(), wallet: z.string().optional() })).nullable(),\n ),\n hostname: z.string().optional(),\n});\n\nexport type SinglePositionBatchResponse = z.infer<typeof SinglePositionBatchResponseSchema>;\nexport type BatchPositionItem = z.infer<typeof batchPositionItemSchema>;\n\n// Type aliases for SDK consistency\nexport type WalletPositionParams = z.input<typeof SinglePositionQuery>;\nexport type WalletPositionResponse = z.infer<typeof singlePositionOutputSchema>;\nexport type WalletPositionBatchParams = z.input<typeof SinglePositionBatchParamsSchema>;\nexport type WalletPositionBatchResponse = z.infer<typeof SinglePositionBatchResponseSchema>;\n",
|
|
105
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams, type SDKInput } from '../../utils/functions/openAPIHelpers.ts';\nimport { tokenPositionSchema, WalletMetadataSchema } from '../../utils/schemas/WalletDeployerSchema.ts';\n\n/**\n * Sort options for wallet positions (camelCase API values)\n * - lastActivity: Sort by last trade date (default)\n * - realizedPnl: Sort by realized PnL USD\n *\n * Internally mapped to snake_case for SQL queries:\n * - lastActivity → last_activity\n * - realizedPnl → realized_pnl\n */\nexport const PositionSortBySchema = z.enum(['lastActivity', 'realizedPnl']).default('lastActivity');\nexport type PositionSortBy = z.infer<typeof PositionSortBySchema>;\n\n/**\n * Map camelCase sortBy values to internal snake_case values for SQL queries\n */\nexport const positionSortByToInternal = (sortBy: PositionSortBy): 'last_activity' | 'realized_pnl' => {\n const mapping: Record<PositionSortBy, 'last_activity' | 'realized_pnl'> = {\n lastActivity: 'last_activity',\n realizedPnl: 'realized_pnl',\n };\n return mapping[sortBy];\n};\n\nexport const WalletPositionsParamsSchema = z.object({\n wallet: z.string(),\n blockchain: z.string().optional(),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n\n // Pagination\n limit: z.coerce.number().min(1).max(500).optional().default(100),\n offset: z.coerce.number().min(0).optional().default(0),\n\n // Cursor-based pagination (takes precedence over offset)\n cursor: z.string().optional(),\n cursorDirection: z.enum(['before', 'after']).optional().default('after'),\n\n // Sorting\n sortBy: PositionSortBySchema.optional(),\n order: z.enum(['asc', 'desc']).optional().default('desc'),\n\n // Internal backfill options (not documented)\n _backfillPositions: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n _backfillSwapsAndPositions: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(true)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Include all RPC balances, not just tokens with trading positions in DB */\n includeAllBalances: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\n/** Fields accepted at runtime but hidden from SDK types and OpenAPI spec */\nconst WALLET_POSITIONS_HIDDEN = ['blockchain', '_backfillPositions', '_backfillSwapsAndPositions'] as const;\ntype WalletPositionsHiddenFields = (typeof WALLET_POSITIONS_HIDDEN)[number];\n\nexport type WalletPositionsParams = SDKInput<typeof WalletPositionsParamsSchema, WalletPositionsHiddenFields>;\n\nexport const WalletPositionsParamsSchemaOpenAPI = createOpenAPIParams(WalletPositionsParamsSchema, {\n omit: [...WALLET_POSITIONS_HIDDEN],\n describe: {\n wallet: 'Wallet address',\n blockchains:\n 'Comma-separated list of blockchain IDs (e.g., \"ethereum,base,solana:solana\"). If omitted, all chains.',\n limit: 'Number of positions per page (1-500, default: 100)',\n offset: 'Offset for pagination (default: 0)',\n cursor: 'Cursor for cursor-based pagination (takes precedence over offset)',\n cursorDirection: 'Cursor direction (default: after)',\n sortBy: 'Sort field (default: lastActivity)',\n order: 'Sort order (default: desc)',\n includeFees: 'Include fees in PnL calculation (deduct total_fees_paid_usd from PnL)',\n useSwapRecipient: 'Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions)',\n includeAllBalances: 'Include all tokens the wallet holds, not just tokens with trading history',\n },\n});\n\nexport const SinglePositionQuery = z.object({\n wallet: z.string(),\n asset: z.string(),\n blockchain: z.string().optional(),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(true)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nconst SINGLE_POSITION_HIDDEN = ['includeFees', 'useSwapRecipient'] as const;\ntype SinglePositionHiddenFields = (typeof SINGLE_POSITION_HIDDEN)[number];\n\nexport const SinglePositionQueryOpenAPI = createOpenAPIParams(SinglePositionQuery, {\n omit: [...SINGLE_POSITION_HIDDEN],\n describe: {\n wallet: 'Wallet address',\n asset: 'Token contract address',\n blockchain: 'Blockchain ID (e.g., \"ethereum\", \"solana:solana\")',\n },\n});\n\n// Batch position query - single item schema\nconst SinglePositionItemSchema = z.object({\n wallet: z.string(),\n asset: z.string(),\n blockchain: z.string(),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(true)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\n// Batch position params - supports array or object with items\nexport const SinglePositionBatchParamsSchema = z.union([\n z.array(SinglePositionItemSchema),\n z.object({\n items: z.array(SinglePositionItemSchema),\n instanceTracking: z.preprocess((val) => {\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean().optional()),\n }),\n]);\n\n// OpenAPI-compatible batch params (hides internal fields per item)\nconst SinglePositionItemSchemaOpenAPI = createOpenAPIParams(SinglePositionItemSchema, {\n omit: [...SINGLE_POSITION_HIDDEN],\n describe: {\n wallet: 'Wallet address',\n asset: 'Token contract address',\n blockchain: 'Blockchain ID (e.g., \"ethereum\", \"solana:solana\")',\n },\n});\n\nexport const SinglePositionBatchParamsSchemaOpenAPI = z.union([\n z.array(SinglePositionItemSchemaOpenAPI),\n z.object({\n items: z.array(SinglePositionItemSchemaOpenAPI),\n }),\n]);\n\nexport type SinglePositionBatchParams = z.input<typeof SinglePositionBatchParamsSchema>;\n\nexport type TokenPositionType = z.infer<typeof tokenPositionSchema>;\n\n// Pagination schema aligned with WalletActivityV2\nexport const WalletPositionsPaginationSchema = z.object({\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n pageEntries: z.number(), // Number of items actually returned\n});\n\nexport const WalletPositionsResponseSchema = z.object({\n data: z.array(tokenPositionSchema),\n // Wallet-level metadata (funding info, global labels)\n wallet: WalletMetadataSchema.optional(),\n // Pagination info\n pagination: WalletPositionsPaginationSchema.optional(),\n});\n\nexport type WalletPositionsResponse = z.infer<typeof WalletPositionsResponseSchema>;\n\nexport const singlePositionOutputSchema = z.object({\n data: tokenPositionSchema,\n // Wallet-level metadata (funding info, global labels)\n wallet: WalletMetadataSchema.optional(),\n});\n\n// Batch position item schema - includes wallet for identification\nexport const batchPositionItemSchema = tokenPositionSchema.extend({\n wallet: z.string(),\n});\n\n// Batch response schema\nexport const SinglePositionBatchResponseSchema = z.object({\n payload: z.array(\n batchPositionItemSchema.or(z.object({ error: z.string().optional(), wallet: z.string().optional() })).nullable(),\n ),\n hostname: z.string().optional(),\n});\n\nexport type SinglePositionBatchResponse = z.infer<typeof SinglePositionBatchResponseSchema>;\nexport type BatchPositionItem = z.infer<typeof batchPositionItemSchema>;\n\n// Type aliases for SDK consistency\nexport type WalletPositionParams = SDKInput<typeof SinglePositionQuery, SinglePositionHiddenFields>;\nexport type WalletPositionResponse = z.infer<typeof singlePositionOutputSchema>;\n\ntype CleanBatchItem = Omit<z.input<typeof SinglePositionItemSchema>, SinglePositionHiddenFields>;\nexport type WalletPositionBatchParams = CleanBatchItem[] | { items: CleanBatchItem[]; instanceTracking?: boolean };\nexport type WalletPositionBatchResponse = z.infer<typeof SinglePositionBatchResponseSchema>;\n\n// ── Batch Positions (multi-wallet) ──────────────────────────────────────────\n\n// Per-wallet item in a batch positions request\nconst WalletPositionsBatchItemSchema = z.object({\n wallet: z.string(),\n blockchains: z.array(z.string()).optional(),\n limit: z.number().min(1).max(500).optional().default(100),\n offset: z.number().min(0).optional().default(0),\n sortBy: PositionSortBySchema.optional(),\n order: z.enum(['asc', 'desc']).optional().default('desc'),\n useSwapRecipient: z.boolean().optional().default(true),\n includeAllBalances: z.boolean().optional().default(false),\n});\n\n// Batch positions params - supports array or object with items (max 10 wallets)\nexport const WalletPositionsBatchParamsSchema = z.union([\n z.array(WalletPositionsBatchItemSchema).max(10),\n z.object({\n items: z.array(WalletPositionsBatchItemSchema).max(10),\n }),\n]);\n\nexport type WalletPositionsBatchItemInput = z.infer<typeof WalletPositionsBatchItemSchema>;\n\n// Response for a single wallet within the batch\nconst WalletPositionsBatchResultSchema = z.object({\n wallet: z.string(),\n data: z.array(tokenPositionSchema),\n walletMetadata: WalletMetadataSchema.optional(),\n pagination: WalletPositionsPaginationSchema.optional(),\n});\n\n// Full batch response\nexport const WalletPositionsBatchResponseSchema = z.object({\n payload: z.array(WalletPositionsBatchResultSchema.or(z.object({ wallet: z.string(), error: z.string() })).nullable()),\n hostname: z.string().optional(),\n});\n\nexport type WalletPositionsBatchResult = z.infer<typeof WalletPositionsBatchResultSchema>;\nexport type WalletPositionsBatchResponse = z.infer<typeof WalletPositionsBatchResponseSchema>;\n\n// OpenAPI-compatible batch positions schemas\nconst WalletPositionsBatchItemSchemaOpenAPI = createOpenAPIParams(WalletPositionsBatchItemSchema, {\n omit: [],\n describe: {\n wallet: 'Wallet address',\n blockchains: 'Array of blockchain IDs (e.g., [\"ethereum\",\"base\"]). If omitted, all chains.',\n limit: 'Number of positions per page (1-500, default: 100)',\n offset: 'Offset for pagination (default: 0)',\n sortBy: 'Sort field (default: lastActivity)',\n order: 'Sort order (default: desc)',\n useSwapRecipient: 'Use swap recipient mode',\n includeAllBalances: 'Include all tokens the wallet holds',\n },\n});\n\nexport const WalletPositionsBatchParamsSchemaOpenAPI = z.union([\n z.array(WalletPositionsBatchItemSchemaOpenAPI),\n z.object({\n items: z.array(WalletPositionsBatchItemSchemaOpenAPI),\n }),\n]);\n\n// SDK type aliases for batch positions\nexport type WalletPositionsBatchParams =\n | z.input<typeof WalletPositionsBatchItemSchema>[]\n | { items: z.input<typeof WalletPositionsBatchItemSchema>[] };\n",
|
|
100
106
|
"import { z } from 'zod';\nimport { SecurityFlagsSchema } from '../../utils/schemas/SecuritySchemas.ts';\n\nexport const tokenHoldingSchema = z.object({\n token: z.object({\n address: z.string(),\n chainId: z.string(),\n name: z.string().nullable(),\n symbol: z.string().nullable(),\n logo: z.string().nullable(),\n decimals: z.coerce.number().default(0),\n holdersCount: z.coerce.number().default(0),\n deployer: z.string().nullable(),\n website: z.string().nullable(),\n x: z.string().nullable(),\n telegram: z.string().nullable(),\n description: z.string().nullable(),\n security: SecurityFlagsSchema.nullable(),\n }),\n balance: z.number(),\n rawBalance: z.string(),\n /** Rent lamports for Solana token accounts (returned when account is closed). Only present for Solana SPL tokens. */\n lamports: z.string().nullable().optional(),\n});\n\nexport const WalletHoldingsResponseSchema = z.object({\n data: z.array(tokenHoldingSchema),\n});\n\nexport type TokenHolding = z.infer<typeof tokenHoldingSchema>;\nexport type WalletHoldingsResponse = z.infer<typeof WalletHoldingsResponseSchema>;\n",
|
|
107
|
+
"import { z } from 'zod';\nimport { createOpenAPIParams, type SDKInput } from '../../utils/functions/openAPIHelpers.ts';\nimport { TokenTradeOutput } from '../token/TokenTradesSchema.ts';\n\nexport const WalletTradesV2ParamsSchema = z.object({\n wallet: z.string(),\n wallets: z.string().optional(),\n tokenAddress: z.string().optional(),\n blockchains: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return val\n .split(',')\n .map((b) => b.trim())\n .filter((b) => b.length > 0);\n }\n return [];\n }),\n\n // Pagination (offset-based, same as activity/positions)\n limit: z.coerce.number().min(1).max(100).optional().default(50),\n offset: z.coerce.number().min(0).optional().default(0),\n\n // Sorting\n order: z.enum(['asc', 'desc']).optional().default('desc'),\n\n // Date filters (timestamps in milliseconds)\n from: z.coerce.number().optional(),\n to: z.coerce.number().optional(),\n});\n\nexport type WalletTradesV2Params = SDKInput<typeof WalletTradesV2ParamsSchema, 'wallets'>;\nexport type WalletTradesV2InferType = z.infer<typeof WalletTradesV2ParamsSchema>;\n\nexport const WalletTradesV2ParamsSchemaOpenAPI = createOpenAPIParams(WalletTradesV2ParamsSchema, {\n omit: ['wallets'],\n describe: {\n wallet: 'Wallet address',\n tokenAddress: 'Filter trades involving this token contract address',\n blockchains:\n 'Comma-separated list of blockchain IDs (e.g., \"ethereum,base,solana:solana\"). If omitted, all chains.',\n limit: 'Number of trades per page (1-100, default: 50)',\n offset: 'Offset for pagination (default: 0)',\n order: 'Sort order: asc or desc (default: desc)',\n from: 'Start timestamp in milliseconds',\n to: 'End timestamp in milliseconds',\n },\n});\n\nexport const WalletTradesV2PaginationSchema = z.object({\n page: z.number(),\n offset: z.number(),\n limit: z.number(),\n pageEntries: z.number(),\n});\n\nexport const WalletTradesV2ResponseSchema = z.object({\n data: z.array(TokenTradeOutput),\n pagination: WalletTradesV2PaginationSchema,\n});\n\nexport type WalletTradesV2Response = z.infer<typeof WalletTradesV2ResponseSchema>;\n",
|
|
101
108
|
"import { z } from 'zod';\n\nexport const FeedPayloadSchema = z.discriminatedUnion('kind', [\n z.object({\n kind: z.literal('asset_ids'),\n asset_ids: z.array(z.number()).optional(),\n quote_id: z.number().optional().nullable(),\n }),\n z.object({\n kind: z.literal('address'),\n tokens: z.array(\n z.object({\n blockchain: z.string(),\n address: z.string(),\n }),\n ),\n quote: z\n .object({\n address: z.string(),\n blockchain: z.string(),\n })\n .optional(),\n }),\n z.object({\n kind: z.literal('all'),\n }),\n]);\n\nexport type FeedPayloadType = z.input<typeof FeedPayloadSchema>;\n\nexport const FeedAssetIdSchema = z.object({\n asset_ids: z.array(z.number()).optional(),\n quote_id: z.number().optional().nullable(),\n});\n\nexport const FeedTokenSchema = z.object({\n tokens: z.array(\n z.object({\n blockchain: z.string(),\n address: z.string(),\n }),\n ),\n quote: z\n .object({\n address: z.string(),\n blockchain: z.string(),\n })\n .optional(),\n});\n",
|
|
102
109
|
"import { z } from 'zod';\n\nconst BalanceItemSchema = z.object({\n wallet: z.string(),\n token: z.string(),\n blockchain: z.string(),\n});\n\nexport const BalancePayloadSchema = z.object({\n items: z.array(BalanceItemSchema),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type BalancePayload = z.infer<typeof BalancePayloadSchema>;\nexport type BalancePayloadType = z.input<typeof BalancePayloadSchema>;\nexport type BalanceItem = z.infer<typeof BalanceItemSchema>;\n\nexport interface WalletBalanceData {\n wallet: string;\n token: string; // Token address or \"native\"\n chainId: string;\n balance: number; // Decimal-adjusted balance\n rawBalance: string; // Raw balance (no decimal adjustment)\n decimals: number;\n symbol: string;\n name: string;\n logo: string | null;\n}\n\nexport interface WalletBalanceUpdate extends WalletBalanceData {\n previousBalance?: number; // Previous balance (for delta updates)\n previousRawBalance?: string; // Previous raw balance (for delta updates)\n}\n",
|
|
103
|
-
"import { z } from 'zod';\n\nexport const FastTradesPayloadSchema = z.object({\n assetMode: z.coerce.boolean().default(false),\n items: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type FastTradesPayloadType = z.input<typeof FastTradesPayloadSchema>;\n\nexport interface BaseFastTrade {\n date: number;\n tokenPrice: number;\n tokenPriceVs: number;\n tokenAmount: number;\n tokenAmountVs: number;\n tokenAmountUsd: number;\n tokenNativePrice: number;\n tokenMarketCapUSD: number;\n type: 'buy' | 'sell';\n operation: 'regular' | 'liquidity' | 'arbitrage' | string;\n blockchain: string;\n hash: string;\n sender: string;\n tokenAmountRaw: string;\n tokenAmountRawVs: string;\n preBalanceBaseToken: string | null;\n preBalanceQuoteToken: string | null;\n postBalanceBaseToken: string | null;\n postBalanceQuoteToken: string | null;\n subscriptionId: string;\n timestamp: number;\n labels?: string[];\n platform?: string | null;\n swapRecipient?: string | null;\n // Fees breakdown\n totalFeesUSD?: number | null;\n gasFeesUSD?: number | null;\n platformFeesUSD?: number | null;\n mevFeesUSD?: number | null;\n}\n\nexport interface PairFastTrade extends BaseFastTrade {\n pair: string;\n token?: never;\n}\n\nexport interface TokenFastTrade extends BaseFastTrade {\n token: string;\n pair?: never;\n}\n\nexport type WssFastTradesResponseType = PairFastTrade | TokenFastTrade;\n",
|
|
104
|
-
"import { z } from 'zod';\n\nexport const FundingPayloadSchema = z.object({\n symbol: z.string(),\n quote: z.string().optional(),\n exchange: z\n .string()\n .optional()\n .transform((val) => {\n const validExchanges = ['binance', 'bybit', 'hyperliquid', 'deribit', 'okx', 'gate', 'lighter'];\n\n if (!val) return validExchanges;\n\n const requestedExchanges = val\n .split(',')\n .map((ex) => ex.trim().toLowerCase())\n .filter((ex) => validExchanges.includes(ex));\n\n return requestedExchanges.length > 0 ? requestedExchanges : validExchanges;\n }),\n interval: z.number().optional().default(5),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z.string().optional(),\n});\n\nexport type FundingPayloadType = z.input<typeof FundingPayloadSchema>;\n",
|
|
110
|
+
"import { z } from 'zod';\n\nexport const FastTradesPayloadSchema = z.object({\n assetMode: z.coerce.boolean().default(false),\n traderMode: z.coerce.boolean().default(false),\n items: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n maxUpdatesPerMinute: z.coerce.number().optional(),\n});\n\nexport type FastTradesPayloadType = z.input<typeof FastTradesPayloadSchema>;\n\nexport interface BaseFastTrade {\n date: number;\n tokenPrice: number;\n tokenPriceVs: number;\n tokenAmount: number;\n tokenAmountVs: number;\n tokenAmountUsd: number;\n tokenNativePrice: number;\n tokenMarketCapUSD: number;\n type: 'buy' | 'sell';\n operation: 'regular' | 'liquidity' | 'arbitrage' | string;\n blockchain: string;\n hash: string;\n sender: string;\n tokenAmountRaw: string;\n tokenAmountRawVs: string;\n preBalanceBaseToken: string | null;\n preBalanceQuoteToken: string | null;\n postBalanceBaseToken: string | null;\n postBalanceQuoteToken: string | null;\n subscriptionId: string;\n timestamp: number;\n labels?: string[];\n platform?: string | null;\n swapRecipient?: string | null;\n // Fees breakdown\n totalFeesUSD?: number | null;\n gasFeesUSD?: number | null;\n platformFeesUSD?: number | null;\n mevFeesUSD?: number | null;\n}\n\nexport interface PairFastTrade extends BaseFastTrade {\n pair: string;\n token?: never;\n}\n\nexport interface TokenFastTrade extends BaseFastTrade {\n token: string;\n pair?: never;\n}\n\nexport interface TraderFastTrade extends BaseFastTrade {\n trader: string;\n pair: string;\n token: string;\n}\n\nexport type WssFastTradesResponseType = PairFastTrade | TokenFastTrade | TraderFastTrade;\n",
|
|
111
|
+
"import { z } from 'zod';\n\nexport const FundingPayloadSchema = z.object({\n symbol: z.string(),\n quote: z.string().optional(),\n exchange: z\n .string()\n .optional()\n .transform((val) => {\n const validExchanges = ['binance', 'bybit', 'hyperliquid', 'deribit', 'okx', 'gate', 'lighter'];\n\n if (!val) return validExchanges;\n\n const requestedExchanges = val\n .split(',')\n .map((ex) => ex.trim().toLowerCase())\n .filter((ex) => validExchanges.includes(ex));\n\n return requestedExchanges.length > 0 ? requestedExchanges : validExchanges;\n }),\n protocol: z.enum(['xyz', 'flx', 'vntl', 'hyna', 'km', 'cash']).optional(),\n interval: z.number().optional().default(5),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z.string().optional(),\n});\n\nexport type FundingPayloadType = z.input<typeof FundingPayloadSchema>;\n",
|
|
105
112
|
"import { z } from 'zod';\nimport type { HoldersStreamNewTokenPayload } from '../utils/schemas/EnrichedHoldersData.ts';\n\nexport const HoldersPayloadSchema = z.object({\n tokens: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type HoldersPayloadType = z.input<typeof HoldersPayloadSchema>;\n\nexport type WssHoldersResponse = { data: z.infer<typeof HoldersStreamNewTokenPayload>; subscriptionId: string };\n",
|
|
106
|
-
"import { z } from 'zod';\nimport type { BaseMessageType } from '../utils/schemas/BaseMessage.ts';\n\nexport const MarketDetailsPayloadSchema = z.object({\n pools: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type MarketDetailsPayloadType = z.input<typeof MarketDetailsPayloadSchema>;\n\nexport interface WssMarketDetailsResponseType extends Omit<BaseMessageType, 'tokenData'> {\n subscriptionId: string;\n updated: true;\n timestamp: number;\n}\n",
|
|
113
|
+
"import { z } from 'zod';\nimport type { BaseMessageType } from '../utils/schemas/BaseMessage.ts';\n\nexport const MarketDetailsPayloadSchema = z.object({\n pools: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n maxUpdatesPerMinute: z.coerce.number().optional(),\n});\n\nexport type MarketDetailsPayloadType = z.input<typeof MarketDetailsPayloadSchema>;\n\nexport interface WssMarketDetailsResponseType extends Omit<BaseMessageType, 'tokenData'> {\n subscriptionId: string;\n updated: true;\n timestamp: number;\n}\n",
|
|
107
114
|
"import { z } from 'zod';\n\nexport const MarketPayloadSchema = z.object({\n interval: z.number().default(30),\n subscriptionId: z.string().optional(),\n assets: z\n .array(\n z.union([\n z.object({ name: z.string() }),\n z.object({ symbol: z.string() }),\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ]),\n )\n .max(100),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type MarketPayloadType = z.input<typeof MarketPayloadSchema>;\n",
|
|
108
|
-
"import { z } from 'zod';\nimport normalizePeriod from '../utils/functions/period.ts';\n\nexport const OhlcvPayloadSchema = z.object({\n address: z.string().optional(),\n subscriptionId: z.string().optional(),\n blockchain: z.string().optional(),\n chainId: z.string().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return '5m';\n }),\n asset: z.string().optional(),\n currentPrice: z.string().optional(),\n mode: z\n .enum(['asset', 'pair', 'pool'])\n .optional()\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset' | undefined),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type OhlcvPayloadType = z.input<typeof OhlcvPayloadSchema>;\n\nexport interface WssOhlcvDetailsResponseType {\n subscriptionId?: string;\n high: number | null;\n low: number | null;\n open: number | null;\n close: number | null;\n volume: number;\n time: number;\n period: string;\n tradeTime?: number;\n}\n",
|
|
115
|
+
"import { z } from 'zod';\nimport normalizePeriod from '../utils/functions/period.ts';\n\nexport const OhlcvPayloadSchema = z.object({\n address: z.string().optional(),\n subscriptionId: z.string().optional(),\n blockchain: z.string().optional(),\n chainId: z.string().optional(),\n period: z\n .string()\n .optional()\n .transform((val) => {\n if (val) {\n return normalizePeriod(val);\n }\n return '5m';\n }),\n asset: z.string().optional(),\n currentPrice: z.string().optional(),\n mode: z\n .enum(['asset', 'pair', 'pool'])\n .optional()\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset' | undefined),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n maxUpdatesPerMinute: z.number().optional(),\n});\n\nexport type OhlcvPayloadType = z.input<typeof OhlcvPayloadSchema>;\n\nexport interface WssOhlcvDetailsResponseType {\n subscriptionId?: string;\n high: number | null;\n low: number | null;\n open: number | null;\n close: number | null;\n volume: number;\n time: number;\n period: string;\n tradeTime?: number;\n}\n",
|
|
109
116
|
"import { z } from 'zod';\n\nexport const PairsPayloadSchema = z.object({\n mode: z\n .enum(['asset', 'pair', 'pool'])\n .optional()\n .default('pair')\n .transform((val) => (val === 'pool' ? 'pair' : val) as 'pair' | 'asset'),\n subscriptionId: z.string().optional(),\n blockchain: z.string().optional(),\n factory: z.string().optional(),\n interval: z.number().default(30),\n address: z.string().optional(),\n asset: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type PairsPayloadType = z.input<typeof PairsPayloadSchema>;\n",
|
|
110
|
-
"import { z } from 'zod';\n\nexport const PositionPayloadSchema = z.object({\n wallet: z.string(),\n token: z.string(),\n blockchain: z.string(),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(
|
|
117
|
+
"import { z } from 'zod';\n\nexport const PositionPayloadSchema = z.object({\n wallet: z.string(),\n token: z.string(),\n blockchain: z.string(),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(true)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type PositionPayloadType = z.infer<typeof PositionPayloadSchema>;\n\nexport const PositionsPayloadSchema = z.object({\n wallet: z.string(),\n blockchain: z.string(),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Include fees in PnL calculation (deduct total_fees_paid_usd from PnL) */\n includeFees: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n /** Use swap recipient mode (query wallet_positions_recipients table instead of wallet_positions) */\n useSwapRecipient: z\n .union([z.boolean(), z.string()])\n .default(true)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type PositionsPayload = z.infer<typeof PositionsPayloadSchema>;\nexport type PositionsPayloadType = z.input<typeof PositionsPayloadSchema>;\n\nexport interface WalletPositionData {\n wallet: string;\n token: string;\n chainId: string;\n balance: number;\n rawBalance: string;\n amountUSD: number;\n buys: number;\n sells: number;\n volumeBuyToken: number;\n volumeSellToken: number;\n volumeBuy: number;\n volumeSell: number;\n avgBuyPriceUSD: number;\n avgSellPriceUSD: number;\n realizedPnlUSD: number;\n unrealizedPnlUSD: number;\n totalPnlUSD: number;\n /** Total fees paid on this position (gas + platform + mev fees) - only present when includeFees is enabled */\n totalFeesPaidUSD?: number;\n firstDate: Date | null;\n lastDate: Date | null;\n tokenDetails?: {\n address: string;\n chainId: string;\n name: string;\n symbol: string;\n decimals: number;\n logo: string | null;\n price: number;\n priceChange24h: number | null;\n liquidity: number | null;\n marketCap: number | null;\n };\n}\n\nexport interface WalletPositionsData {\n wallet: string;\n chainId: string;\n positions: WalletPositionData[];\n}\n",
|
|
111
118
|
"import { z } from 'zod';\n\nexport const PausePulsePayloadSchema = z.object({\n action: z.enum(['pause', 'unpause']),\n views: z.array(z.string()).min(1),\n});\n\nexport type PausePulsePayloadType = z.input<typeof PausePulsePayloadSchema>;\n",
|
|
112
119
|
"import { z } from 'zod';\nimport FilterWithLimit from '../../utils/schemas/Filter.ts';\n\nexport const StreamPayloadSchema = z.object({\n filters: FilterWithLimit.optional(),\n chainIds: z.array(z.string()).nonempty(),\n name: z.string().optional(),\n events: z.array(z.enum(['swap', 'transfer', 'swap-enriched', 'block', 'order'])).nonempty(),\n authorization: z.string(),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z.string().optional(),\n debugSubscriptionId: z.string().optional(),\n});\n\nexport type StreamPayloadType = z.infer<typeof StreamPayloadSchema>;\n\nexport const UnsubscribeStreamPayloadSchema = z\n .object({\n type: z.enum(['stream']).optional(),\n subscriptionId: z.string().optional(),\n personalizedId: z.string().optional(),\n viewName: z.string().optional(),\n })\n .transform((data) => {\n // Transform personalizedId to subscriptionId if provided\n if (data.personalizedId && !data.subscriptionId) {\n return {\n ...data,\n subscriptionId: data.personalizedId,\n };\n }\n return data;\n })\n .optional();\n\nexport type UnsubscribeStreamPayloadType = z.input<typeof UnsubscribeStreamPayloadSchema>;\n\nexport const UpdateStreamPayloadSchema = z.object({\n subscriptionId: z.string(),\n authorization: z.string(),\n mode: z.enum(['merge', 'replace']).default('replace'),\n filters: FilterWithLimit.optional(),\n chainIds: z.array(z.string()).optional(),\n events: z.array(z.string()).optional(),\n subscriptionTracking: z.string().optional(),\n});\n\nexport type UpdateStreamPayloadType = z.input<typeof UpdateStreamPayloadSchema>;\n",
|
|
113
120
|
"import { z } from 'zod';\n\nconst BaseFilter = z.object({\n eq: z.tuple([z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])]).optional(),\n neq: z.tuple([z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])]).optional(),\n lt: z.tuple([z.string(), z.coerce.number()]).optional(),\n lte: z.tuple([z.string(), z.coerce.number()]).optional(),\n gt: z.tuple([z.string(), z.coerce.number()]).optional(),\n gte: z.tuple([z.string(), z.coerce.number()]).optional(),\n in: z\n .tuple([\n z.string(),\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])),\n ]),\n ])\n .optional(),\n});\n\ntype BaseFilter = z.infer<typeof BaseFilter>;\nexport type Filter = BaseFilter & ({ and?: Filter[] } | { or?: Filter[] });\n\nconst Filter: z.ZodType<Filter> = BaseFilter.and(\n z.union([\n BaseFilter.extend({ and: z.undefined(), or: z.undefined() }),\n BaseFilter.extend({ and: z.array(z.lazy(() => Filter)), or: z.undefined() }),\n BaseFilter.extend({ and: z.undefined(), or: z.array(z.lazy(() => Filter)) }),\n ]),\n);\n\nexport function countOperations(filter: Filter | undefined): number {\n if (!filter) return 0;\n\n let count = 0;\n\n for (const key of ['eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in'] as const) {\n if (filter[key]) count += 1;\n }\n\n if ('and' in filter && Array.isArray(filter.and)) {\n for (const child of filter.and) {\n count += countOperations(child);\n }\n }\n\n if ('or' in filter && Array.isArray(filter.or)) {\n for (const child of filter.or) {\n count += countOperations(child);\n }\n }\n\n return count;\n}\n\nconst FilterWithLimit = Filter.superRefine((val, ctx) => {\n const total = countOperations(val);\n const max = 1000;\n if (total > max) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Your filter contains ${total} leaf operations, exceeding the maximum of ${max}. Only leaf conditions like \"eq\", \"neq\", \"lt\", \"lte\", \"gt\", \"gte\", \"in\" are counted; logical operators (\"and\", \"or\") are ignored.`,\n });\n }\n});\n\nexport default FilterWithLimit;\n",
|
|
114
|
-
"import { z } from 'zod';\nimport type { BaseMessageType } from '../utils/schemas/BaseMessage.ts';\n\nexport const TokenDetailsPayloadSchema = z.object({\n tokens: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n});\n\nexport type TokenDetailsPayloadType = z.input<typeof TokenDetailsPayloadSchema>;\n\nexport interface WssTokenDetailsResponseType extends Omit<BaseMessageType, 'pairData'> {\n subscriptionId: string;\n updated: true;\n timestamp: number;\n}\n"
|
|
121
|
+
"import { z } from 'zod';\nimport type { BaseMessageType } from '../utils/schemas/BaseMessage.ts';\n\nexport const TokenDetailsPayloadSchema = z.object({\n tokens: z.array(\n z.object({\n address: z.string(),\n blockchain: z.string(),\n }),\n ),\n subscriptionId: z.string().optional(),\n subscriptionTracking: z\n .union([z.boolean(), z.string()])\n .default(false)\n .transform((val) => (typeof val === 'string' ? val === 'true' : val)),\n maxUpdatesPerMinute: z.coerce.number().optional(),\n});\n\nexport type TokenDetailsPayloadType = z.input<typeof TokenDetailsPayloadSchema>;\n\nexport interface WssTokenDetailsResponseType extends Omit<BaseMessageType, 'pairData'> {\n subscriptionId: string;\n updated: true;\n timestamp: number;\n}\n",
|
|
122
|
+
"import { z } from 'zod';\n\n/** Allowed plan values for x402 agent subscribe. Accepts any case; stored in DB as Startup, Growth, Enterprise. */\nexport const X402_AGENT_PLAN = z\n .string()\n .transform((s) => s?.trim().toLowerCase() ?? '')\n .pipe(z.enum(['startup', 'growth', 'enterprise']));\n\n/** Payment frequency for subscription. Accepts any case (e.g. Yearly, MONTHLY). */\nexport const X402_AGENT_PAYMENT_FREQUENCY = z\n .string()\n .transform((s) => s?.trim().toLowerCase() ?? '')\n .pipe(z.enum(['monthly', 'yearly']));\n\n/** Query params for GET /x402/agent/subscribe */\nexport const X402AgentSubscribeQuerySchema = z.object({\n plan: X402_AGENT_PLAN,\n payment_frequency: X402_AGENT_PAYMENT_FREQUENCY,\n upgrade: z\n .string()\n .optional()\n .transform((v) => v === 'true' || v === '1'),\n api_key: z.string().optional(),\n user_id: z.string().optional(),\n});\n\nexport type X402AgentSubscribeQuery = z.infer<typeof X402AgentSubscribeQuerySchema>;\n\n/** Response for subscribe: api_key + user_id (agent id). */\nexport const X402AgentCredentialsResponseSchema = z.object({\n api_key: z.string(),\n user_id: z.string(),\n});\n\nexport type X402AgentCredentialsResponse = z.infer<typeof X402AgentCredentialsResponseSchema>;\n\n/** Query params for GET /x402/agent/top-up */\nexport const X402AgentTopUpQuerySchema = z.object({\n agent_id: z.string().min(1),\n amount_usd: z.coerce.number().positive(),\n});\n\nexport type X402AgentTopUpQuery = z.infer<typeof X402AgentTopUpQuerySchema>;\n\n/** Response for top-up. */\nexport const X402AgentTopUpResponseSchema = z.object({\n credits_added: z.number().int().nonnegative(),\n new_credits_limit: z.number().int().nonnegative(),\n});\n\nexport type X402AgentTopUpResponse = z.infer<typeof X402AgentTopUpResponseSchema>;\n"
|
|
115
123
|
],
|
|
116
|
-
"mappings": "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",
|
|
117
|
-
"debugId": "
|
|
124
|
+
"mappings": "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",
|
|
125
|
+
"debugId": "82CA1288DA8DCD8F64756E2164756E21",
|
|
118
126
|
"names": []
|
|
119
127
|
}
|