From 97babf4ec5f2ec7e1d36c08bd41056cc238cd2a5 Mon Sep 17 00:00:00 2001 From: Thomas Kammerlocher Date: Tue, 4 Jun 2024 07:02:14 +0200 Subject: [PATCH] fix: added parsing depending on the block type for ChainFollower.ts (#872) --- docker-compose.yml | 6 +++--- .../api-cardano-db-hasura/src/ChainFollower.ts | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b95854be..edd08902 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -76,7 +76,7 @@ services: hasura: build: context: ./packages/api-cardano-db-hasura/hasura - image: cardanofoundation/cardano-graphql-hasura:${CARDANO_GRAPHQL_VERSION:-8.0.1} + image: cardanofoundation/cardano-graphql-hasura:${CARDANO_GRAPHQL_VERSION:-8.0.3} ports: - ${HASURA_PORT:-8090}:8080 depends_on: @@ -100,7 +100,7 @@ services: cache_from: [ cardanofoundation/cardano-graphql-background:latest ] context: . target: background - image: cardanofoundation/cardano-graphql-background:${CARDANO_GRAPHQL_VERSION:-8.0.1}-${NETWORK:-mainnet} + image: cardanofoundation/cardano-graphql-background:${CARDANO_GRAPHQL_VERSION:-8.0.3}-${NETWORK:-mainnet} depends_on: - "hasura" - "postgres" @@ -126,7 +126,7 @@ services: cache_from: [ inputoutput/cardano-graphql-server:latest ] context: . target: server - image: cardanofoundation/cardano-graphql-server:${CARDANO_GRAPHQL_VERSION:-8.0.1}-${NETWORK:-mainnet} + image: cardanofoundation/cardano-graphql-server:${CARDANO_GRAPHQL_VERSION:-8.0.3}-${NETWORK:-mainnet} environment: - ALLOW_INTROSPECTION=true - CACHE_ENABLED=true diff --git a/packages/api-cardano-db-hasura/src/ChainFollower.ts b/packages/api-cardano-db-hasura/src/ChainFollower.ts index 2a16b2c3..ab9dc3b0 100644 --- a/packages/api-cardano-db-hasura/src/ChainFollower.ts +++ b/packages/api-cardano-db-hasura/src/ChainFollower.ts @@ -8,7 +8,7 @@ import util, { assetFingerprint, errors, RunnableModuleState } from '@cardano-gr import PgBoss from 'pg-boss' import { dummyLogger, Logger } from 'ts-log' import { createInteractionContextWithLogger } from './util' -import { PointOrOrigin, BlockPraos } from '@cardano-ogmios/schema' +import { PointOrOrigin, BlockPraos, BlockBFT } from '@cardano-ogmios/schema' import { HasuraBackgroundClient } from './HasuraBackgroundClient' import { DbConfig } from './typeAliases' import { ChainSynchronizationClient } from '@cardano-ogmios/client/dist/ChainSynchronization' @@ -60,7 +60,17 @@ export class ChainFollower { requestNext() }, rollForward: async ({ block }, requestNext) => { - const b = block as BlockPraos + let b + switch (block.type) { + case 'praos': + b = block as BlockPraos + break + case 'bft': + b = block as BlockBFT + break + case 'ebb': // No transaction in there + return + } if (b !== undefined && b.transactions !== undefined) { for (const tx of b.transactions) { if (tx.mint !== undefined) { @@ -90,7 +100,7 @@ export class ChainFollower { this.logger.info({ module: MODULE_NAME }, 'Initialized') } - async saveAsset (policyId: string, assetName: string | undefined, b: BlockPraos) { + async saveAsset (policyId: string, assetName: string | undefined, b: BlockPraos | BlockBFT) { const assetId = `${policyId}${assetName !== undefined ? assetName : ''}` if (!(await this.hasuraClient.hasAsset(assetId))) { const asset = {