diff --git a/packages/core/src/lib/store/index.ts b/packages/core/src/lib/store/index.ts index 9ed938ff3c..6d5cedc4de 100644 --- a/packages/core/src/lib/store/index.ts +++ b/packages/core/src/lib/store/index.ts @@ -246,6 +246,16 @@ class Store extends BaseProtocol implements IStore { ensurePubsubTopicIsConfigured(pubSubTopicForQuery, this.pubSubTopics); + // check that the pubSubTopic from the Cursor and Decoder match + if ( + options?.cursor?.pubsubTopic && + options.cursor.pubsubTopic !== pubSubTopicForQuery + ) { + throw new Error( + `Cursor pubsub topic (${options?.cursor?.pubsubTopic}) does not match decoder pubsub topic (${pubSubTopicForQuery})` + ); + } + const decodersAsMap = new Map(); decoders.forEach((dec) => { if (decodersAsMap.has(dec.contentTopic)) { @@ -397,10 +407,7 @@ async function* paginate( } } -export async function createCursor( - message: IDecodedMessage, - pubsubTopic: string = DefaultPubSubTopic -): Promise { +export async function createCursor(message: IDecodedMessage): Promise { if ( !message || !message.timestamp || @@ -418,7 +425,7 @@ export async function createCursor( return { digest, - pubsubTopic, + pubsubTopic: message.pubSubTopic, senderTime: messageTime, receiverTime: messageTime };