From a12cb156b0c1d833e71388ab64654ef62a608e5e Mon Sep 17 00:00:00 2001 From: alvrs Date: Thu, 3 Oct 2024 12:16:11 +0100 Subject: [PATCH] add util to turn logs api response into storage adapter block --- packages/store-sync/src/createStoreSync.ts | 5 +++-- .../store-sync/src/indexer-client/createIndexerClient.ts | 5 +++-- .../src/{ => indexer-client}/isLogsApiResponse.ts | 2 +- .../store-sync/src/indexer-client/toStorageAdapterBlock.ts | 6 ++++++ 4 files changed, 13 insertions(+), 5 deletions(-) rename packages/store-sync/src/{ => indexer-client}/isLogsApiResponse.ts (86%) create mode 100644 packages/store-sync/src/indexer-client/toStorageAdapterBlock.ts diff --git a/packages/store-sync/src/createStoreSync.ts b/packages/store-sync/src/createStoreSync.ts index 811a111ecf..2f210fdf2b 100644 --- a/packages/store-sync/src/createStoreSync.ts +++ b/packages/store-sync/src/createStoreSync.ts @@ -35,7 +35,8 @@ import { bigIntMax, chunk, isDefined, waitForIdle } from "@latticexyz/common/uti import { getSnapshot } from "./getSnapshot"; import { fromEventSource } from "./fromEventSource"; import { fetchAndStoreLogs } from "./fetchAndStoreLogs"; -import { isLogsApiResponse } from "./isLogsApiResponse"; +import { isLogsApiResponse } from "./indexer-client/isLogsApiResponse"; +import { toStorageAdatperBlock } from "./indexer-client/toStorageAdapterBlock"; const debug = parentDebug.extend("createStoreSync"); @@ -220,7 +221,7 @@ export async function createStoreSync({ if (!isLogsApiResponse(data)) { throw new Error("Received unexpected from indexer:" + messageEvent.data); } - return { ...data, blockNumber: BigInt(data.blockNumber) }; + return toStorageAdatperBlock(data); }), concatMap(async (block) => { await storageAdapter(block); diff --git a/packages/store-sync/src/indexer-client/createIndexerClient.ts b/packages/store-sync/src/indexer-client/createIndexerClient.ts index 212cc6374c..676d1903e6 100644 --- a/packages/store-sync/src/indexer-client/createIndexerClient.ts +++ b/packages/store-sync/src/indexer-client/createIndexerClient.ts @@ -2,7 +2,8 @@ import { z } from "zod"; import { input } from "./input"; import { StorageAdapterBlock } from "../common"; import { Result } from "@latticexyz/common"; -import { isLogsApiResponse } from "../isLogsApiResponse"; +import { isLogsApiResponse } from "./isLogsApiResponse"; +import { toStorageAdatperBlock } from "./toStorageAdapterBlock"; export type CreateIndexerClientOptions = { /** @@ -35,7 +36,7 @@ export function createIndexerClient({ url }: CreateIndexerClientOptions): Indexe return { error: result }; } - return { ok: { ...result, blockNumber: BigInt(result.blockNumber) } }; + return { ok: toStorageAdatperBlock(result) }; } catch (error) { return { error }; } diff --git a/packages/store-sync/src/isLogsApiResponse.ts b/packages/store-sync/src/indexer-client/isLogsApiResponse.ts similarity index 86% rename from packages/store-sync/src/isLogsApiResponse.ts rename to packages/store-sync/src/indexer-client/isLogsApiResponse.ts index 45335c92c1..31e9423760 100644 --- a/packages/store-sync/src/isLogsApiResponse.ts +++ b/packages/store-sync/src/indexer-client/isLogsApiResponse.ts @@ -1,4 +1,4 @@ -import { StorageAdapterBlock } from "./common"; +import { StorageAdapterBlock } from "../common"; export type LogsApiResponse = Omit & { blockNumber: string }; diff --git a/packages/store-sync/src/indexer-client/toStorageAdapterBlock.ts b/packages/store-sync/src/indexer-client/toStorageAdapterBlock.ts new file mode 100644 index 0000000000..702a92b712 --- /dev/null +++ b/packages/store-sync/src/indexer-client/toStorageAdapterBlock.ts @@ -0,0 +1,6 @@ +import { StorageAdapterBlock } from "../common"; +import { LogsApiResponse } from "./isLogsApiResponse"; + +export function toStorageAdatperBlock(data: LogsApiResponse): StorageAdapterBlock { + return { ...data, blockNumber: BigInt(data.blockNumber) }; +}