import { createPostgresPool } from './src/lib/postgres.mjs'; import { loadConfig } from './src/lib/config.mjs'; import * as pg from './src/lib/postgres.mjs'; async function main() { const config = loadConfig(); const pool = pg.createPostgresPool({ connectionString: config.postgresUrl }); const fns = [ { name: 'loadLatestPortfolioMetric', fn: () => pg.loadLatestPortfolioMetric(pool) }, { name: 'loadLatestInventorySnapshot', fn: () => pg.loadLatestInventorySnapshot(pool) }, { name: 'loadLatestMarketPrice', fn: () => pg.loadLatestMarketPrice(pool) }, { name: 'loadRecentQuotes', fn: () => pg.loadRecentQuotes(pool, { limit: 100 }) }, { name: 'loadSubmissionSummary', fn: () => pg.loadSubmissionSummary(pool) }, { name: 'loadSubmissionPage', fn: () => pg.loadSubmissionPage(pool, { page: 1, pageSize: 20 }) }, { name: 'loadCurrentFundingObservations', fn: () => pg.loadCurrentFundingObservations(pool) }, { name: 'loadRecentDepositStatuses', fn: () => pg.loadRecentDepositStatuses(pool, { limit: 20 }) }, { name: 'loadRecentTradeDecisions', fn: () => pg.loadRecentTradeDecisions(pool, { limit: 20 }) }, { name: 'loadRecentExecuteTradeCommands', fn: () => pg.loadRecentExecuteTradeCommands(pool, { limit: 40 }) }, { name: 'loadRecentExecutionResults', fn: () => pg.loadRecentExecutionResults(pool, { limit: 40 }) }, { name: 'loadRecentQuoteOutcomes', fn: () => pg.loadRecentQuoteOutcomes(pool, { limit: 200 }) }, { name: 'loadSuccessfulQuoteLifecycleEvidence', fn: () => pg.loadSuccessfulQuoteLifecycleEvidence(pool, { limit: 50 }) }, { name: 'loadQuoteLifecycleRetentionSummary', fn: () => pg.loadQuoteLifecycleRetentionSummary(pool) }, { name: 'loadRecentQuoteLifecycleRollups', fn: () => pg.loadRecentQuoteLifecycleRollups(pool, { limit: 40 }) }, { name: 'loadQuoteLifecycleStatistics', fn: () => pg.loadQuoteLifecycleStatistics(pool, { limit: 1000 }) }, { name: 'loadRecentIntentRequests', fn: () => pg.loadRecentIntentRequests(pool, { limit: 20, btcAsset: config.tradingBtc, eureAsset: config.tradingEure, refreshOutcomes: false }) }, { name: 'loadRecentAlertTransitions', fn: () => pg.loadRecentAlertTransitions(pool, { limit: 20 }) }, { name: 'loadRecentEnvironmentStatuses', fn: () => pg.loadRecentEnvironmentStatuses(pool, { limit: 20 }) }, { name: 'loadAssetCatalogSummary', fn: () => pg.loadAssetCatalogSummary(pool, { limit: 250 }) }, { name: 'loadPairConfigSummary', fn: () => pg.loadPairConfigSummary(pool) }, ]; for (const { name, fn } of fns) { const start = Date.now(); try { await fn(); const duration = Date.now() - start; console.log(`${name}: ${duration}ms`); } catch (err) { console.error(`${name}: ERROR ${err.message}`); } } pool.end(); } main().catch(console.error);