diff --git a/src/api/init.ts b/src/api/init.ts index 334eb561..c25f6668 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -10,6 +10,7 @@ import { InscriptionsRoutes } from './routes/inscriptions'; import { SatRoutes } from './routes/sats'; import { StatsRoutes } from './routes/stats'; import { StatusRoutes } from './routes/status'; +import { ENV } from '../env'; export const Api: FastifyPluginAsync< Record, @@ -19,8 +20,8 @@ export const Api: FastifyPluginAsync< await fastify.register(StatusRoutes); await fastify.register(InscriptionsRoutes); await fastify.register(SatRoutes); - await fastify.register(Brc20Routes); await fastify.register(StatsRoutes); + if (ENV.BRC20_BLOCK_SCAN_ENABLED) await fastify.register(Brc20Routes); }; export async function buildApiServer(args: { db: PgStore }) { diff --git a/src/env.ts b/src/env.ts index 9f83eed3..72106e43 100644 --- a/src/env.ts +++ b/src/env.ts @@ -55,6 +55,11 @@ const schema = Type.Object({ /** Enables BRC-20 processing in write mode APIs */ BRC20_BLOCK_SCAN_ENABLED: Type.Boolean({ default: true }), + /** + * Disables inscription genesis/current location calculation, count aggregation, etc. so blocks + * can be ingested faster during a full replay. + */ + FAST_INGESTION_MODE: Type.Boolean({ default: false }), }); type Env = Static; diff --git a/src/pg/pg-store.ts b/src/pg/pg-store.ts index 69d215b9..9987c43b 100644 --- a/src/pg/pg-store.ts +++ b/src/pg/pg-store.ts @@ -640,8 +640,7 @@ export class PgStore extends BasePgStore { RETURNING inscription_id, id AS location_id, block_height, tx_index, address `; await this.updateInscriptionRecursions(writes); - if (ENV.BRC20_BLOCK_SCAN_ENABLED) { - // TODO: Temporary + if (!ENV.FAST_INGESTION_MODE) { if (transferGenesisIds.size) await sql` UPDATE inscriptions