diff --git a/packages/api/src/graphql/modules/BatchStorageResolver.ts b/packages/api/src/graphql/modules/BatchStorageResolver.ts index 47fca0ab5..1d235ddaf 100644 --- a/packages/api/src/graphql/modules/BatchStorageResolver.ts +++ b/packages/api/src/graphql/modules/BatchStorageResolver.ts @@ -1,10 +1,6 @@ import { inject } from "tsyringe"; import { Arg, Field, ObjectType, Query } from "type-graphql"; -import { - Batch, - BatchStorage, - HistoricalBatchStorage, -} from "@proto-kit/sequencer"; +import { Batch, BatchStorage } from "@proto-kit/sequencer"; import { MOCK_PROOF } from "@proto-kit/common"; import { graphqlModule, GraphqlModule } from "../GraphqlModule"; @@ -39,10 +35,9 @@ export class ComputedBlockModel { @graphqlModule() export class BatchStorageResolver extends GraphqlModule { - // TODO seperate these two block interfaces public constructor( @inject("BatchStorage") - private readonly batchStorage: BatchStorage & HistoricalBatchStorage, + private readonly batchStorage: BatchStorage, private readonly blockResolver: BlockResolver ) { super(); diff --git a/packages/api/src/graphql/modules/BlockResolver.ts b/packages/api/src/graphql/modules/BlockResolver.ts index bfed77c0a..036184873 100644 --- a/packages/api/src/graphql/modules/BlockResolver.ts +++ b/packages/api/src/graphql/modules/BlockResolver.ts @@ -1,9 +1,5 @@ import { inject } from "tsyringe"; -import { - HistoricalBlockStorage, - Block, - BlockStorage, -} from "@proto-kit/sequencer"; +import { Block, BlockStorage } from "@proto-kit/sequencer"; import { Arg, Field, ObjectType, Query } from "type-graphql"; import { GraphqlModule, graphqlModule } from "../GraphqlModule"; @@ -62,7 +58,7 @@ export class BlockModel { export class BlockResolver extends GraphqlModule { public constructor( @inject("BlockStorage") - private readonly blockStorage: HistoricalBlockStorage & BlockStorage + private readonly blockStorage: BlockStorage ) { super(); } diff --git a/packages/api/src/graphql/modules/QueryGraphqlModule.ts b/packages/api/src/graphql/modules/QueryGraphqlModule.ts index da2ce8413..0f7b487e8 100644 --- a/packages/api/src/graphql/modules/QueryGraphqlModule.ts +++ b/packages/api/src/graphql/modules/QueryGraphqlModule.ts @@ -39,7 +39,6 @@ import { QueryTransportModule, NetworkStateQuery, BlockStorage, - HistoricalBlockStorage, NetworkStateTransportModule, } from "@proto-kit/sequencer"; import { @@ -80,7 +79,7 @@ export class QueryGraphqlModule< MandatoryProtocolModulesRecord & ProtocolModulesRecord >, @inject("BlockStorage") - private readonly blockStorage: BlockStorage & HistoricalBlockStorage + private readonly blockStorage: BlockStorage ) { super(); } diff --git a/packages/persistance/src/services/prisma/PrismaBatchStore.ts b/packages/persistance/src/services/prisma/PrismaBatchStore.ts index ed59a7f09..eceaa84a7 100644 --- a/packages/persistance/src/services/prisma/PrismaBatchStore.ts +++ b/packages/persistance/src/services/prisma/PrismaBatchStore.ts @@ -1,8 +1,4 @@ -import { - Batch, - HistoricalBatchStorage, - BatchStorage, -} from "@proto-kit/sequencer"; +import { Batch, BatchStorage } from "@proto-kit/sequencer"; import { Prisma } from "@prisma/client"; import { inject, injectable } from "tsyringe"; @@ -11,7 +7,7 @@ import type { PrismaConnection } from "../../PrismaDatabaseConnection"; import { BatchMapper } from "./mappers/BatchMapper"; @injectable() -export class PrismaBatchStore implements BatchStorage, HistoricalBatchStorage { +export class PrismaBatchStore implements BatchStorage { public constructor( @inject("Database") private readonly connection: PrismaConnection, private readonly batchMapper: BatchMapper diff --git a/packages/persistance/src/services/prisma/PrismaBlockStorage.ts b/packages/persistance/src/services/prisma/PrismaBlockStorage.ts index 1e8c1302d..cf457a1cf 100644 --- a/packages/persistance/src/services/prisma/PrismaBlockStorage.ts +++ b/packages/persistance/src/services/prisma/PrismaBlockStorage.ts @@ -1,5 +1,4 @@ import { - HistoricalBlockStorage, TransactionExecutionResult, Block, BlockResult, @@ -27,9 +26,7 @@ import { BlockResultMapper } from "./mappers/BlockResultMapper"; import { BlockMapper } from "./mappers/BlockMapper"; @injectable() -export class PrismaBlockStorage - implements BlockQueue, BlockStorage, HistoricalBlockStorage -{ +export class PrismaBlockStorage implements BlockQueue, BlockStorage { public constructor( @inject("Database") private readonly connection: PrismaConnection, private readonly transactionResultMapper: TransactionExecutionResultMapper, diff --git a/packages/sdk/src/query/BlockStorageNetworkStateModule.ts b/packages/sdk/src/query/BlockStorageNetworkStateModule.ts index 908b63db6..b813f1b95 100644 --- a/packages/sdk/src/query/BlockStorageNetworkStateModule.ts +++ b/packages/sdk/src/query/BlockStorageNetworkStateModule.ts @@ -1,8 +1,6 @@ import { inject, injectable } from "tsyringe"; import { BlockStorage, - HistoricalBlockStorage, - HistoricalBatchStorage, NetworkStateTransportModule, Sequencer, SequencerModulesRecord, @@ -29,16 +27,16 @@ export class BlockStorageNetworkStateModule return this.sequencer.dependencyContainer.resolve("BlockQueue"); } - private get unprovenStorage(): BlockStorage & HistoricalBlockStorage { - return this.sequencer.dependencyContainer.resolve< - BlockStorage & HistoricalBlockStorage - >("BlockStorage"); + private get unprovenStorage(): BlockStorage { + return this.sequencer.dependencyContainer.resolve( + "BlockStorage" + ); } - private get provenStorage(): BatchStorage & HistoricalBatchStorage { - return this.sequencer.dependencyContainer.resolve< - BatchStorage & HistoricalBatchStorage - >("BatchStorage"); + private get provenStorage(): BatchStorage { + return this.sequencer.dependencyContainer.resolve( + "BatchStorage" + ); } public async getUnprovenNetworkState(): Promise { diff --git a/packages/sequencer/src/settlement/messages/outgoing/OutgoingMessageCollector.ts b/packages/sequencer/src/settlement/messages/outgoing/OutgoingMessageCollector.ts index fd1f88638..217155a35 100644 --- a/packages/sequencer/src/settlement/messages/outgoing/OutgoingMessageCollector.ts +++ b/packages/sequencer/src/settlement/messages/outgoing/OutgoingMessageCollector.ts @@ -3,10 +3,7 @@ import { OutgoingMessageEvent } from "@proto-kit/protocol"; import { filterNonUndefined } from "@proto-kit/common"; import { Block } from "../../../storage/model/Block"; -import { - BlockStorage, - HistoricalBlockStorage, -} from "../../../storage/repositories/BlockStorage"; +import { BlockStorage } from "../../../storage/repositories/BlockStorage"; import { Batch } from "../../../storage/model/Batch"; /** @@ -25,7 +22,7 @@ export interface OutgoingMessageAdapter { export class OutgoingMessageCollector { public constructor( @inject("BlockStorage") - private readonly blockStorage: BlockStorage & HistoricalBlockStorage, + private readonly blockStorage: BlockStorage, @inject("OutgoingMessageAdapter") private readonly messageAdapter: OutgoingMessageAdapter ) {} diff --git a/packages/sequencer/src/storage/inmemory/InMemoryBatchStorage.ts b/packages/sequencer/src/storage/inmemory/InMemoryBatchStorage.ts index 6f0a2b572..dfe21fddf 100644 --- a/packages/sequencer/src/storage/inmemory/InMemoryBatchStorage.ts +++ b/packages/sequencer/src/storage/inmemory/InMemoryBatchStorage.ts @@ -1,14 +1,9 @@ import { log } from "@proto-kit/common"; -import { - BatchStorage, - HistoricalBatchStorage, -} from "../repositories/BatchStorage"; +import { BatchStorage } from "../repositories/BatchStorage"; import { Batch } from "../model/Batch"; -export class InMemoryBatchStorage - implements BatchStorage, HistoricalBatchStorage -{ +export class InMemoryBatchStorage implements BatchStorage { private readonly batches: Batch[] = []; public async getCurrentBatchHeight(): Promise { diff --git a/packages/sequencer/src/storage/inmemory/InMemoryBlockStorage.ts b/packages/sequencer/src/storage/inmemory/InMemoryBlockStorage.ts index 9a14f7d8c..5c5306e7b 100644 --- a/packages/sequencer/src/storage/inmemory/InMemoryBlockStorage.ts +++ b/packages/sequencer/src/storage/inmemory/InMemoryBlockStorage.ts @@ -1,10 +1,6 @@ import { inject, injectable } from "tsyringe"; -import { - HistoricalBlockStorage, - BlockQueue, - BlockStorage, -} from "../repositories/BlockStorage"; +import { BlockQueue, BlockStorage } from "../repositories/BlockStorage"; import type { Block, BlockResult, @@ -14,9 +10,7 @@ import type { import { BatchStorage } from "../repositories/BatchStorage"; @injectable() -export class InMemoryBlockStorage - implements BlockStorage, HistoricalBlockStorage, BlockQueue -{ +export class InMemoryBlockStorage implements BlockStorage, BlockQueue { public constructor( @inject("BatchStorage") private readonly batchStorage: BatchStorage ) {} diff --git a/packages/sequencer/src/storage/inmemory/InMemoryTransactionStorage.ts b/packages/sequencer/src/storage/inmemory/InMemoryTransactionStorage.ts index c50b06b1b..011e7d26d 100644 --- a/packages/sequencer/src/storage/inmemory/InMemoryTransactionStorage.ts +++ b/packages/sequencer/src/storage/inmemory/InMemoryTransactionStorage.ts @@ -3,10 +3,7 @@ import { Field } from "o1js"; import { TransactionStorage } from "../repositories/TransactionStorage"; import { PendingTransaction } from "../../mempool/PendingTransaction"; -import { - HistoricalBlockStorage, - BlockStorage, -} from "../repositories/BlockStorage"; +import { BlockStorage } from "../repositories/BlockStorage"; import { InMemoryBatchStorage } from "./InMemoryBatchStorage"; @@ -18,7 +15,7 @@ export class InMemoryTransactionStorage implements TransactionStorage { public constructor( @inject("BlockStorage") - private readonly blockStorage: BlockStorage & HistoricalBlockStorage, + private readonly blockStorage: BlockStorage, @inject("BatchStorage") private readonly batchStorage: InMemoryBatchStorage ) {} diff --git a/packages/sequencer/src/storage/repositories/BatchStorage.ts b/packages/sequencer/src/storage/repositories/BatchStorage.ts index d9a3ca67d..7dc47e4b9 100644 --- a/packages/sequencer/src/storage/repositories/BatchStorage.ts +++ b/packages/sequencer/src/storage/repositories/BatchStorage.ts @@ -1,12 +1,8 @@ import { Batch } from "../model/Batch"; export interface BatchStorage { - // TODO Rename to getCurrentChainLength(), blockheight seems misleading here getCurrentBatchHeight: () => Promise; getLatestBatch: () => Promise; pushBatch: (block: Batch) => Promise; -} - -export interface HistoricalBatchStorage { getBatchAt: (height: number) => Promise; } diff --git a/packages/sequencer/src/storage/repositories/BlockStorage.ts b/packages/sequencer/src/storage/repositories/BlockStorage.ts index 4803ba5a5..7ec488754 100644 --- a/packages/sequencer/src/storage/repositories/BlockStorage.ts +++ b/packages/sequencer/src/storage/repositories/BlockStorage.ts @@ -13,12 +13,11 @@ export interface BlockQueue { } export interface BlockStorage { + // TODO Rename to getCurrentChainLength(), blockheight seems misleading here getCurrentBlockHeight: () => Promise; getLatestBlock: () => Promise; pushBlock: (block: Block) => Promise; -} -export interface HistoricalBlockStorage { getBlockAt: (height: number) => Promise; getBlock: (hash: string) => Promise; } diff --git a/packages/sequencer/test/integration/BlockProduction-test.ts b/packages/sequencer/test/integration/BlockProduction-test.ts index 537d8e322..888e71d7a 100644 --- a/packages/sequencer/test/integration/BlockProduction-test.ts +++ b/packages/sequencer/test/integration/BlockProduction-test.ts @@ -29,7 +29,6 @@ import { afterEach } from "@jest/globals"; import { BatchStorage, - HistoricalBatchStorage, Sequencer, SequencerModule, VanillaTaskWorkerModules, @@ -251,8 +250,7 @@ export function testBlockProduction< ).toStrictEqual(batch!.toNetworkState.hash().toString()); // Check if the batchstorage has received the block - const batchStorage = sequencer.resolve("BatchStorage") as BatchStorage & - HistoricalBatchStorage; + const batchStorage = sequencer.resolve("BatchStorage") as BatchStorage; const retrievedBatch = await batchStorage.getBatchAt(0); expect(retrievedBatch).toBeDefined(); diff --git a/packages/sequencer/test/integration/StorageIntegration.test.ts b/packages/sequencer/test/integration/StorageIntegration.test.ts index 88213a936..bbc6267dd 100644 --- a/packages/sequencer/test/integration/StorageIntegration.test.ts +++ b/packages/sequencer/test/integration/StorageIntegration.test.ts @@ -10,8 +10,6 @@ import { TypedClass, expectDefined } from "@proto-kit/common"; import { AsyncStateService, BatchStorage, - HistoricalBatchStorage, - HistoricalBlockStorage, InMemoryDatabase, Sequencer, SequencerModule, @@ -158,9 +156,7 @@ describe.each([["InMemory", InMemoryDatabase]])( generatedBlock.hash.toBigInt() ); - const blockStorage = sequencer.resolve( - "BlockStorage" - ) as HistoricalBlockStorage & BlockStorage; + const blockStorage = sequencer.resolve("BlockStorage") as BlockStorage; const block2 = await blockStorage.getBlockAt( Number(blocks[0].block.height.toString()) ); @@ -196,9 +192,7 @@ describe.each([["InMemory", InMemoryDatabase]])( const blocks = await sequencer.resolve("BlockQueue").getNewBlocks(); expect(blocks).toHaveLength(0); - const batchStorage = sequencer.resolve( - "BatchStorage" - ) as HistoricalBatchStorage & BatchStorage; + const batchStorage = sequencer.resolve("BatchStorage") as BatchStorage; const batch = await batchStorage.getBatchAt(0); expectDefined(batch);