wisdom-sdk
Version:
Core business logic and data access layer for prediction markets
1 lines • 80.1 kB
Source Map (JSON)
{"version":3,"sources":["../src/logger.ts","../src/kv-store.ts","../src/utils.ts","../src/user-balance-store.ts","../src/bug-report-store.ts"],"names":["kv","createClerkClient","fetchCallReadOnlyFunction","Cl","STACKS_MAINNET","ClarityType"],"mappings":"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","file":"bug-report-store.cjs","sourcesContent":["// Simple logger interface\nexport interface Logger {\n info: (obj: Record<string, unknown>, msg?: string) => void;\n error: (obj: Record<string, unknown>, msg?: string) => void;\n warn: (obj: Record<string, unknown>, msg?: string) => void;\n debug: (obj: Record<string, unknown>, msg?: string) => void;\n child: (bindings: object) => Logger;\n}\n\n/**\n * Centralized logger configuration\n * \n * This provides consistent logging across all modules with proper\n * context and standardized error handling.\n */\n\n// Simple console-based logger factory - no external dependencies\nconst createLogger = (): Logger => {\n // Get log level from environment or default to 'info'\n const logLevel = process.env.LOG_LEVEL || 'info';\n \n // Map log levels to numeric values for comparison\n const logLevels = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3\n } as const;\n \n // Current log level\n const currentLevelValue = logLevel in logLevels \n ? logLevels[logLevel as keyof typeof logLevels] \n : logLevels.info;\n \n // Format a log message with timestamp and metadata\n const formatLog = (level: string, obj: Record<string, unknown>, msg?: string): string => {\n const timestamp = new Date().toISOString();\n const service = 'wisdom-sdk';\n const objStr = JSON.stringify(obj);\n return `[${timestamp}] ${level.toUpperCase()} [${service}] ${msg || ''} ${objStr}`;\n };\n \n // Simple implementation using console methods\n return {\n debug: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 0) { // debug level\n console.debug(formatLog('debug', obj, msg));\n }\n },\n info: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 1) { // info level\n console.info(formatLog('info', obj, msg));\n }\n },\n warn: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 2) { // warn level\n console.warn(formatLog('warn', obj, msg));\n }\n },\n error: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 3) { // error level\n console.error(formatLog('error', obj, msg));\n }\n },\n child: (bindings: object) => {\n // For child loggers, we merge the bindings with the log objects\n const childLogger = createLogger();\n \n // Override methods to include the bindings\n return {\n debug: (obj: Record<string, unknown>, msg?: string) => \n childLogger.debug({ ...obj, ...bindings }, msg),\n info: (obj: Record<string, unknown>, msg?: string) => \n childLogger.info({ ...obj, ...bindings }, msg),\n warn: (obj: Record<string, unknown>, msg?: string) => \n childLogger.warn({ ...obj, ...bindings }, msg),\n error: (obj: Record<string, unknown>, msg?: string) => \n childLogger.error({ ...obj, ...bindings }, msg),\n child: (nestedBindings: object) => \n childLogger.child({ ...bindings, ...nestedBindings })\n };\n }\n };\n};\n\n// Default logger instance\nexport const logger = createLogger();\n\n// Create a child logger with context\nexport function getContextLogger(context: string): Logger {\n return logger.child({ context });\n}\n\n// Error handling utilities\nexport class AppError extends Error {\n public readonly context: string;\n public readonly code: string;\n public readonly originalError?: Error;\n public readonly data?: Record<string, unknown>;\n\n constructor({\n message,\n context = 'general',\n code = 'INTERNAL_ERROR',\n originalError,\n data,\n }: {\n message: string;\n context?: string;\n code?: string;\n originalError?: Error;\n data?: Record<string, unknown>;\n }) {\n super(message);\n this.name = 'AppError';\n this.context = context;\n this.code = code;\n this.originalError = originalError;\n this.data = data;\n // Preserve stack trace\n Error.captureStackTrace(this, this.constructor);\n }\n\n // Logs this error with appropriate context and returns it\n log() {\n const contextLogger = getContextLogger(this.context);\n const logObj = {\n code: this.code,\n error: this.message,\n ...(this.originalError && { originalError: this.originalError.message }),\n ...(this.data && { data: this.data }),\n };\n\n contextLogger.error(logObj, this.message);\n return this;\n }\n}\n\nexport default logger;","import { kv } from '@vercel/kv';\nimport { AppError, logger } from './logger';\n\n/**\n * Centralized KV Store Helper\n * \n * This provides standardized methods for interacting with Vercel KV storage,\n * ensuring consistent key formats, serialization/deserialization, and error handling.\n * \n * Also provides transaction support to ensure data consistency for complex operations.\n */\n\n// Create a logger instance for this module\nconst kvLogger = logger.child({ context: 'kv-store' });\n\n// Define constant prefixes for all entity types\nexport const KV_PREFIXES = {\n MARKET: 'market',\n MARKET_IDS: 'market_ids',\n USER_MARKETS: 'user_markets',\n MARKET_PARTICIPANTS: 'market_participants',\n MARKET_CATEGORY: 'market_category', // Index for markets by category\n MARKET_STATUS: 'market_status', // Index for markets by status\n PREDICTION: 'prediction',\n USER_PREDICTIONS: 'user_predictions',\n MARKET_PREDICTIONS: 'market_predictions',\n PREDICTION_NFT: 'prediction_nft',\n USER_BALANCE: 'user_balance',\n USER_STATS: 'user_stats',\n LEADERBOARD: 'leaderboard',\n LEADERBOARD_EARNINGS: 'leaderboard_earnings',\n LEADERBOARD_ACCURACY: 'leaderboard_accuracy',\n BUG_REPORT: 'bug_report',\n BUG_REPORT_IDS: 'bug_report_ids',\n USER_BUG_REPORTS: 'user_bug_reports',\n // Transaction custody-related prefixes\n CUSTODY_TRANSACTION: 'custody_transaction',\n CUSTODY_TRANSACTION_IDS: 'custody_transaction_ids',\n USER_TRANSACTIONS: 'user_transactions',\n SIGNER_TRANSACTIONS: 'signer_transactions',\n MARKET_TRANSACTIONS: 'market_transactions',\n CUSTODY_NFT_RECEIPT: 'custody_nft_receipt',\n // Claim reward transaction prefixes\n CLAIM_REWARD_TRANSACTION: 'claim_reward_transaction',\n USER_CLAIM_REWARDS: 'user_claim_rewards'\n} as const;\n\n// Type safety for valid entity types\nexport type EntityType = keyof typeof KV_PREFIXES;\n\n/**\n * Get a formatted key for a specific entity\n */\nexport function getKey(entityType: EntityType, id?: string): string {\n const prefix = KV_PREFIXES[entityType];\n\n // Special handling for MARKET_IDS - it doesn't use a colon format\n if (entityType === 'MARKET_IDS' && !id) {\n return prefix;\n }\n\n return id ? `${prefix}:${id}` : prefix;\n}\n\n/**\n * Store an entity in KV\n */\nexport async function storeEntity<T>(entityType: EntityType, id: string, data: T): Promise<T> {\n try {\n const key = getKey(entityType, id);\n await kv.set(key, JSON.stringify(data));\n return data;\n } catch (error) {\n throw new AppError({\n message: `Failed to store ${entityType} with ID ${id}`,\n context: 'kv-store',\n code: 'KV_STORE_ERROR',\n originalError: error instanceof Error ? error : new Error(String(error)),\n data: { entityType, id, operation: 'store' }\n }).log();\n }\n}\n\n/**\n * Get an entity from KV - with backward compatibility\n */\nexport async function getEntity<T>(entityType: EntityType, id: string): Promise<T | null> {\n try {\n // Try with new key format\n const key = getKey(entityType, id);\n let data = await kv.get<string>(key);\n\n // If not found and it's a MARKET, try the old plural format (markets:id)\n if (!data && entityType === 'MARKET') {\n data = await kv.get<string>(`markets:${id}`);\n }\n\n if (!data) {\n // Not an error, just not found\n kvLogger.debug({ entityType, id }, `Entity not found: ${entityType}:${id}`);\n return null;\n }\n\n // If data is already in object format (newer KV might handle JSON automatically)\n if (typeof data !== 'string') {\n return data as unknown as T;\n }\n\n // Parse JSON string\n try {\n return JSON.parse(data) as T;\n } catch (e) {\n throw new AppError({\n message: `Error parsing JSON for ${entityType} with ID ${id}`,\n context: 'kv-store',\n code: 'KV_JSON_PARSE_ERROR',\n originalError: e instanceof Error ? e : new Error(String(e)),\n data: { entityType, id, operation: 'parse' }\n }).log();\n }\n } catch (error) {\n // Only throw AppError if it's not already one\n if (error instanceof AppError) {\n throw error;\n }\n\n throw new AppError({\n message: `Failed to retrieve ${entityType} with ID ${id}`,\n context: 'kv-store',\n code: 'KV_RETRIEVE_ERROR',\n originalError: error instanceof Error ? error : new Error(String(error)),\n data: { entityType, id, operation: 'get' }\n }).log();\n }\n}\n\n/**\n * Delete an entity from KV\n */\nexport async function deleteEntity(entityType: EntityType, id: string): Promise<boolean> {\n try {\n const key = getKey(entityType, id);\n await kv.del(key);\n\n // If it's a MARKET, also try to delete the legacy format\n if (entityType === 'MARKET') {\n await kv.del(`markets:${id}`);\n }\n\n return true;\n } catch (error) {\n // Log error but don't throw - deletion errors are often non-critical\n new AppError({\n message: `Failed to delete ${entityType} with ID ${id}`,\n context: 'kv-store',\n code: 'KV_DELETE_ERROR',\n originalError: error instanceof Error ? error : new Error(String(error)),\n data: { entityType, id, operation: 'delete' }\n }).log();\n\n return false;\n }\n}\n\n/**\n * Add an ID to a set - with backward compatibility\n */\nexport async function addToSet(setType: EntityType, id: string, memberId: string): Promise<boolean> {\n try {\n const key = getKey(setType, id);\n await kv.sadd(key, memberId);\n\n // If it's MARKET_IDS, also add to the old format for backward compatibility\n if (setType === 'MARKET_IDS') {\n await kv.sadd('market_ids', memberId);\n }\n\n return true;\n } catch (error) {\n new AppError({\n message: `Failed to add member ${memberId} to set ${setType}:${id}`,\n context: 'kv-store',\n code: 'KV_SET_ADD_ERROR',\n originalError: error instanceof Error ? error : new Error(String(error)),\n data: { setType, id, memberId, operation: 'sadd' }\n }).log();\n\n return false;\n }\n}\n\n/**\n * Remove an ID from a set\n */\nexport async function removeFromSet(setType: EntityType, id: string, memberId: string): Promise<boolean> {\n try {\n const key = getKey(setType, id);\n await kv.srem(key, memberId);\n\n // If it's MARKET_IDS, also remove from the old format for backward compatibility\n if (setType === 'MARKET_IDS') {\n await kv.srem('market_ids', memberId);\n }\n\n return true;\n } catch (error) {\n new AppError({\n message: `Failed to remove member ${memberId} from set ${setType}:${id}`,\n context: 'kv-store',\n code: 'KV_SET_REMOVE_ERROR',\n originalError: error instanceof Error ? error : new Error(String(error)),\n data: { setType, id, memberId, operation: 'srem' }\n }).log();\n\n return false;\n }\n}\n\n/**\n * Get all members of a set - with backward compatibility\n */\nexport async function getSetMembers(setType: EntityType, id: string): Promise<string[]> {\n try {\n const key = getKey(setType, id);\n let members = await kv.smembers(key) as string[];\n\n // For backward compatibility with market_ids\n if (setType === 'MARKET_IDS' && members.length === 0) {\n const legacyMembers = await kv.smembers('market_ids') as string[];\n if (legacyMembers.length > 0) {\n // Migrate the data to the new format\n for (const marketId of legacyMembers) {\n await addToSet('MARKET_IDS', '', marketId);\n }\n members = legacyMembers;\n }\n }\n\n return members;\n } catch (error) {\n new AppError({\n message: `Failed to get members from set ${setType}:${id}`,\n context: 'kv-store',\n code: 'KV_SET_MEMBERS_ERROR',\n originalError: error instanceof Error ? error : new Error(String(error)),\n data: { setType, id, operation: 'smembers' }\n }).log();\n\n return [];\n }\n}\n\n/**\n * Check if a member is in a set\n */\nexport async function isSetMember(setType: EntityType, id: string, memberId: string): Promise<boolean> {\n try {\n const key = getKey(setType, id);\n const result = await kv.sismember(key, memberId);\n return !!result;\n } catch (error) {\n console.error(`Error checking set membership for ${setType} with ID ${id}:`, error);\n return false;\n }\n}\n\n/**\n * Add a member to a sorted set with score\n */\nexport async function addToSortedSet(setType: EntityType, memberId: string, score: number): Promise<boolean> {\n try {\n const key = getKey(setType);\n await kv.zadd(key, { score, member: memberId });\n return true;\n } catch (error) {\n console.error(`Error adding to sorted set ${setType}:`, error);\n return false;\n }\n}\n\n/**\n * Get top members from a sorted set\n */\nexport async function getTopFromSortedSet(setType: EntityType, limit: number = 10, reverse: boolean = true): Promise<string[]> {\n try {\n const key = getKey(setType);\n return await kv.zrange(key, 0, limit - 1, { rev: reverse }) as string[];\n } catch (error) {\n console.error(`Error getting top members from sorted set ${setType}:`, error);\n return [];\n }\n}\n\n/**\n * Get scores for specific members from a sorted set\n * Returns a map of memberId -> score\n */\nexport async function getScoresFromSortedSet(setType: EntityType, memberIds: string[]): Promise<Record<string, number>> {\n try {\n const key = getKey(setType);\n const result: Record<string, number> = {};\n\n // Process members in batches if there are many\n const batchSize = 50;\n for (let i = 0; i < memberIds.length; i += batchSize) {\n const batch = memberIds.slice(i, i + batchSize);\n\n // Get scores for this batch\n const batchScores = await Promise.all(\n batch.map(async (memberId) => {\n const score = await kv.zscore(key, memberId);\n return { memberId, score: score ? Number(score) : null };\n })\n );\n\n // Add scores to result map\n batchScores.forEach(({ memberId, score }) => {\n if (score !== null) {\n result[memberId] = score;\n }\n });\n }\n\n return result;\n } catch (error) {\n console.error(`Error getting scores from sorted set ${setType}:`, error);\n return {};\n }\n}\n\n/**\n * Get all keys matching a pattern\n */\nexport async function getKeys(pattern: string): Promise<string[]> {\n try {\n return await kv.keys(pattern) as string[];\n } catch (error) {\n console.error(`Error getting keys with pattern ${pattern}:`, error);\n return [];\n }\n}\n\n/**\n * Check if a key exists\n */\nexport async function keyExists(entityType: EntityType, id: string): Promise<boolean> {\n try {\n const key = getKey(entityType, id);\n const result = await kv.exists(key);\n return result === 1;\n } catch (error) {\n console.error(`Error checking if key exists for ${entityType} with ID ${id}:`, error);\n return false;\n }\n}\n\n/**\n * Debug function to get information about KV store\n */\nexport async function getDebugInfo(): Promise<Record<string, unknown>> {\n try {\n const allKeys = await kv.keys('*');\n const patterns = [\n 'market:*',\n 'markets:*',\n 'market_ids',\n 'prediction:*',\n 'predictions:*',\n 'user_predictions:*',\n 'market_predictions:*',\n 'prediction_nft:*',\n 'prediction_nfts:*'\n ];\n\n const result: Record<string, unknown> = {\n totalKeys: allKeys.length,\n keysByPattern: {} as Record<string, { count: number; sample: string[] }>\n };\n\n const keysByPattern = result.keysByPattern as Record<string, { count: number; sample: string[] }>;\n\n for (const pattern of patterns) {\n const keys = await kv.keys(pattern);\n keysByPattern[pattern] = {\n count: keys.length,\n sample: keys.slice(0, 5) as string[]\n };\n }\n\n return result;\n } catch (error) {\n console.error('Error getting debug info:', error);\n return { error: String(error) };\n }\n}\n\n/**\n * Transaction interface for atomic operations\n */\nexport interface KvTransaction {\n operations: Array<{\n type: 'entity' | 'set' | 'sortedSet';\n entityType: EntityType;\n id: string;\n data?: unknown;\n }>;\n addEntity<T>(entityType: EntityType, id: string, data: T): Promise<void>;\n addToSetInTransaction(setType: EntityType, id: string, memberId: string): Promise<void>;\n addToSortedSetInTransaction(setType: EntityType, memberId: string, score: number): Promise<void>;\n execute(): Promise<boolean>;\n}\n\n/**\n * Start a Redis transaction for atomic operations\n * @returns A transaction object with methods that queue commands to be executed atomically\n */\nexport async function startTransaction(): Promise<KvTransaction> {\n try {\n // @vercel/kv supports Redis transactions via the multi() method\n const transaction = kv.multi();\n\n // Track operations for potential rollback planning\n const operations: Array<{\n type: 'entity' | 'set' | 'sortedSet';\n entityType: EntityType;\n id: string;\n data?: unknown;\n }> = [];\n\n const txObject: KvTransaction = {\n operations,\n\n // Add entity to transaction\n async addEntity<T>(entityType: EntityType, id: string, data: T): Promise<void> {\n const key = getKey(entityType, id);\n transaction.set(key, JSON.stringify(data));\n operations.push({ type: 'entity', entityType, id, data });\n },\n\n // Add to set in transaction\n async addToSetInTransaction(setType: EntityType, id: string, memberId: string): Promise<void> {\n const key = getKey(setType, id);\n transaction.sadd(key, memberId);\n operations.push({ type: 'set', entityType: setType, id: memberId });\n\n // Handle backward compatibility if needed\n if (setType === 'MARKET_IDS') {\n transaction.sadd('market_ids', memberId);\n }\n },\n\n // Add to sorted set in transaction\n async addToSortedSetInTransaction(setType: EntityType, memberId: string, score: number): Promise<void> {\n const key = getKey(setType);\n transaction.zadd(key, { score, member: memberId });\n operations.push({ type: 'sortedSet', entityType: setType, id: memberId, data: score });\n },\n\n // Execute all queued commands atomically\n async execute(): Promise<boolean> {\n try {\n kvLogger.debug(\n { operationCount: operations.length },\n `Executing transaction with ${operations.length} operations`\n );\n\n await transaction.exec();\n return true;\n } catch (error) {\n const appError = new AppError({\n message: 'Transaction execution failed',\n context: 'kv-store',\n code: 'TRANSACTION_FAILED',\n originalError: error instanceof Error ? error : new Error(String(error)),\n data: { operationCount: operations.length }\n });\n\n appError.log();\n\n // Note: Redis transactions are atomic - they either all succeed or all fail\n // No manual rollback is needed as failed transactions don't apply any changes\n\n return false;\n }\n }\n };\n\n return txObject;\n } catch (error) {\n throw new AppError({\n message: 'Failed to start transaction',\n context: 'kv-store',\n code: 'TRANSACTION_START_ERROR',\n originalError: error instanceof Error ? error : new Error(String(error))\n }).log();\n }\n}","/**\n * Utility functions for OP Predict\n */\n\n// Admin user IDs\nexport const ADMIN_USER_IDS = [\n 'user_2tjVcbojjJk2bkQd856eNE1Ax0S', // rozar\n 'user_2tkBcBEVGanm3LHkg6XK7j91DRj', // kraken\n];\n\n// Check if a user is an admin\nexport function isAdmin(userId: string): boolean {\n return ADMIN_USER_IDS.includes(userId);\n}\n\n/**\n * Generates a UUID using the Web Crypto API which is available in both\n * Node.js and edge runtime environments. This replaces the Node.js-sp