From 5dd508ca5064de8678bf0c66c2644fd082ae2004 Mon Sep 17 00:00:00 2001 From: danisharora099 Date: Tue, 28 Nov 2023 15:43:35 +0530 Subject: [PATCH] SingleShardInfo: use a new interface instead of omitting and rename namespace --- packages/core/src/lib/filter/index.ts | 4 ++-- packages/core/src/lib/message/version_0.ts | 4 ++-- packages/interfaces/src/filter.ts | 8 ++------ packages/interfaces/src/message.ts | 6 +++--- packages/message-encryption/src/ecies.ts | 4 ++-- packages/message-encryption/src/symmetric.ts | 4 ++-- .../tests/tests/filter/multiple_pubsub.node.spec.ts | 6 +++--- .../tests/light-push/multiple_pubsub.node.spec.ts | 6 +++--- .../tests/tests/relay/multiple_pubsub.node.spec.ts | 6 +++--- packages/tests/tests/sharding/running_nodes.spec.ts | 6 +++--- packages/utils/src/common/sharding.ts | 10 +++------- 11 files changed, 28 insertions(+), 36 deletions(-) diff --git a/packages/core/src/lib/filter/index.ts b/packages/core/src/lib/filter/index.ts index 16b53deba1..57c7352843 100644 --- a/packages/core/src/lib/filter/index.ts +++ b/packages/core/src/lib/filter/index.ts @@ -14,7 +14,7 @@ import type { PeerIdStr, ProtocolCreateOptions, PubsubTopic, - SingleTopicShardInfo, + SingleShardInfo, Unsubscribe } from "@waku/interfaces"; import { WakuMessage } from "@waku/proto"; @@ -291,7 +291,7 @@ class Filter extends BaseProtocol implements IReceiver { } async createSubscription( - pubsubTopicShardInfo?: SingleTopicShardInfo + pubsubTopicShardInfo?: SingleShardInfo ): Promise { const pubsubTopic = pubsubTopicShardInfo ? singleTopicShardInfoToPubsubTopic(pubsubTopicShardInfo) diff --git a/packages/core/src/lib/message/version_0.ts b/packages/core/src/lib/message/version_0.ts index b299fdd3a0..29b78f6b8d 100644 --- a/packages/core/src/lib/message/version_0.ts +++ b/packages/core/src/lib/message/version_0.ts @@ -8,7 +8,7 @@ import type { IProtoMessage, IRateLimitProof, PubsubTopic, - SingleTopicShardInfo + SingleShardInfo } from "@waku/interfaces"; import { proto_message as proto } from "@waku/proto"; import { Logger, singleTopicShardInfoToPubsubTopic } from "@waku/utils"; @@ -190,7 +190,7 @@ export class Decoder implements IDecoder { */ export function createDecoder( contentTopic: string, - pubsubTopicShardInfo?: SingleTopicShardInfo + pubsubTopicShardInfo?: SingleShardInfo ): Decoder { return new Decoder( pubsubTopicShardInfo?.index diff --git a/packages/interfaces/src/filter.ts b/packages/interfaces/src/filter.ts index 580c14cdb9..a5d6798858 100644 --- a/packages/interfaces/src/filter.ts +++ b/packages/interfaces/src/filter.ts @@ -1,10 +1,6 @@ import type { PeerId } from "@libp2p/interface/peer-id"; -import type { - IDecodedMessage, - IDecoder, - SingleTopicShardInfo -} from "./message.js"; +import type { IDecodedMessage, IDecoder, SingleShardInfo } from "./message.js"; import type { ContentTopic } from "./misc.js"; import type { Callback, IBaseProtocol } from "./protocols.js"; import type { IReceiver } from "./receiver.js"; @@ -29,7 +25,7 @@ export interface IFilterSubscription { export type IFilter = IReceiver & IBaseProtocol & { createSubscription( - pubsubTopicShardInfo?: SingleTopicShardInfo, + pubsubTopicShardInfo?: SingleShardInfo, peerId?: PeerId ): Promise; }; diff --git a/packages/interfaces/src/message.ts b/packages/interfaces/src/message.ts index f3390ec212..137225cd58 100644 --- a/packages/interfaces/src/message.ts +++ b/packages/interfaces/src/message.ts @@ -1,7 +1,7 @@ -import { ShardInfo } from "./enr.js"; import type { PubsubTopic } from "./misc.js"; -export interface SingleTopicShardInfo extends Omit { +export interface SingleShardInfo { + cluster: number; index: number; } @@ -43,7 +43,7 @@ export interface IMetaSetter { } export interface EncoderOptions { - pubsubTopicShardInfo?: SingleTopicShardInfo; + pubsubTopicShardInfo?: SingleShardInfo; /** The content topic to set on outgoing messages. */ contentTopic: string; /** diff --git a/packages/message-encryption/src/ecies.ts b/packages/message-encryption/src/ecies.ts index 2ab6946629..e210b0dd57 100644 --- a/packages/message-encryption/src/ecies.ts +++ b/packages/message-encryption/src/ecies.ts @@ -8,7 +8,7 @@ import type { IMetaSetter, IProtoMessage, PubsubTopic, - SingleTopicShardInfo + SingleShardInfo } from "@waku/interfaces"; import { WakuMessage } from "@waku/proto"; import { Logger, singleTopicShardInfoToPubsubTopic } from "@waku/utils"; @@ -197,7 +197,7 @@ class Decoder extends DecoderV0 implements IDecoder { export function createDecoder( contentTopic: string, privateKey: Uint8Array, - pubsubTopicShardInfo?: SingleTopicShardInfo + pubsubTopicShardInfo?: SingleShardInfo ): Decoder { return new Decoder( pubsubTopicShardInfo?.index diff --git a/packages/message-encryption/src/symmetric.ts b/packages/message-encryption/src/symmetric.ts index 82001aff5d..64413bf929 100644 --- a/packages/message-encryption/src/symmetric.ts +++ b/packages/message-encryption/src/symmetric.ts @@ -8,7 +8,7 @@ import type { IMetaSetter, IProtoMessage, PubsubTopic, - SingleTopicShardInfo + SingleShardInfo } from "@waku/interfaces"; import { WakuMessage } from "@waku/proto"; import { Logger, singleTopicShardInfoToPubsubTopic } from "@waku/utils"; @@ -197,7 +197,7 @@ class Decoder extends DecoderV0 implements IDecoder { export function createDecoder( contentTopic: string, symKey: Uint8Array, - pubsubTopicShardInfo?: SingleTopicShardInfo + pubsubTopicShardInfo?: SingleShardInfo ): Decoder { return new Decoder( pubsubTopicShardInfo?.index diff --git a/packages/tests/tests/filter/multiple_pubsub.node.spec.ts b/packages/tests/tests/filter/multiple_pubsub.node.spec.ts index 76b9121a65..ce8a491323 100644 --- a/packages/tests/tests/filter/multiple_pubsub.node.spec.ts +++ b/packages/tests/tests/filter/multiple_pubsub.node.spec.ts @@ -3,7 +3,7 @@ import type { IFilterSubscription, LightNode, ShardInfo, - SingleTopicShardInfo + SingleShardInfo } from "@waku/interfaces"; import { Protocols } from "@waku/interfaces"; import { @@ -40,8 +40,8 @@ describe("Waku Filter V2: Multiple PubsubTopics", function () { index: 2 }); const shardInfo: ShardInfo = { cluster: 3, indexList: [1, 2] }; - const singleTopicShardInfo1: SingleTopicShardInfo = { cluster: 3, index: 1 }; - const singleTopicShardInfo2: SingleTopicShardInfo = { cluster: 3, index: 2 }; + const singleTopicShardInfo1: SingleShardInfo = { cluster: 3, index: 1 }; + const singleTopicShardInfo2: SingleShardInfo = { cluster: 3, index: 2 }; const customContentTopic1 = "/test/2/waku-filter"; const customContentTopic2 = "/test/3/waku-filter"; const customEncoder1 = createEncoder({ diff --git a/packages/tests/tests/light-push/multiple_pubsub.node.spec.ts b/packages/tests/tests/light-push/multiple_pubsub.node.spec.ts index a4e58cf015..37f3ddb71d 100644 --- a/packages/tests/tests/light-push/multiple_pubsub.node.spec.ts +++ b/packages/tests/tests/light-push/multiple_pubsub.node.spec.ts @@ -5,7 +5,7 @@ import { Protocols, SendResult, ShardInfo, - SingleTopicShardInfo + SingleShardInfo } from "@waku/interfaces"; import { singleTopicShardInfoToPubsubTopic } from "@waku/utils"; import { utf8ToBytes } from "@waku/utils/bytes"; @@ -35,8 +35,8 @@ describe("Waku Light Push : Multiple PubsubTopics", function () { index: 2 }); const shardInfo: ShardInfo = { cluster: 3, indexList: [1, 2] }; - const singleTopicShardInfo1: SingleTopicShardInfo = { cluster: 3, index: 1 }; - const singleTopicShardInfo2: SingleTopicShardInfo = { cluster: 3, index: 2 }; + const singleTopicShardInfo1: SingleShardInfo = { cluster: 3, index: 1 }; + const singleTopicShardInfo2: SingleShardInfo = { cluster: 3, index: 2 }; const customContentTopic1 = "/test/2/waku-light-push/utf8"; const customContentTopic2 = "/test/3/waku-light-push/utf8"; const customEncoder1 = createEncoder({ diff --git a/packages/tests/tests/relay/multiple_pubsub.node.spec.ts b/packages/tests/tests/relay/multiple_pubsub.node.spec.ts index 791d3bd7cc..b9228eda34 100644 --- a/packages/tests/tests/relay/multiple_pubsub.node.spec.ts +++ b/packages/tests/tests/relay/multiple_pubsub.node.spec.ts @@ -4,7 +4,7 @@ import { DecodedMessage, waitForRemotePeer } from "@waku/core"; -import { RelayNode, ShardInfo, SingleTopicShardInfo } from "@waku/interfaces"; +import { RelayNode, ShardInfo, SingleShardInfo } from "@waku/interfaces"; import { Protocols } from "@waku/interfaces"; import { createRelayNode } from "@waku/sdk"; import { singleTopicShardInfoToPubsubTopic } from "@waku/utils"; @@ -35,14 +35,14 @@ describe("Waku Relay, multiple pubsub topics", function () { index: 2 }); const shardInfo1: ShardInfo = { cluster: 3, indexList: [1] }; - const singleTopicShardInfo1: SingleTopicShardInfo = { + const singleTopicShardInfo1: SingleShardInfo = { cluster: 3, index: 1 }; const customContentTopic1 = "/test/2/waku-relay/utf8"; const customContentTopic2 = "/test/3/waku-relay/utf8"; const shardInfo2: ShardInfo = { cluster: 3, indexList: [2] }; - const singleTopicShardInfo2: SingleTopicShardInfo = { + const singleTopicShardInfo2: SingleShardInfo = { cluster: 3, index: 2 }; diff --git a/packages/tests/tests/sharding/running_nodes.spec.ts b/packages/tests/tests/sharding/running_nodes.spec.ts index 5629adb699..4a10f8a14d 100644 --- a/packages/tests/tests/sharding/running_nodes.spec.ts +++ b/packages/tests/tests/sharding/running_nodes.spec.ts @@ -1,4 +1,4 @@ -import { LightNode, ShardInfo, SingleTopicShardInfo } from "@waku/interfaces"; +import { LightNode, ShardInfo, SingleShardInfo } from "@waku/interfaces"; import { createEncoder, createLightNode, utf8ToBytes } from "@waku/sdk"; import { singleTopicShardInfoToPubsubTopic } from "@waku/utils"; import { expect } from "chai"; @@ -17,8 +17,8 @@ const PubsubTopic2 = singleTopicShardInfoToPubsubTopic({ }); const shardInfoFirstShard: ShardInfo = { cluster: 0, indexList: [2] }; const shardInfoBothShards: ShardInfo = { cluster: 0, indexList: [2, 3] }; -const singleTopicShardInfo1: SingleTopicShardInfo = { cluster: 0, index: 2 }; -const singleTopicShardInfo2: SingleTopicShardInfo = { cluster: 0, index: 3 }; +const singleTopicShardInfo1: SingleShardInfo = { cluster: 0, index: 2 }; +const singleTopicShardInfo2: SingleShardInfo = { cluster: 0, index: 3 }; const ContentTopic = "/waku/2/content/test.js"; describe("Static Sharding: Running Nodes", () => { diff --git a/packages/utils/src/common/sharding.ts b/packages/utils/src/common/sharding.ts index a35c805704..e7d6134628 100644 --- a/packages/utils/src/common/sharding.ts +++ b/packages/utils/src/common/sharding.ts @@ -1,14 +1,10 @@ import { sha256 } from "@noble/hashes/sha256"; -import type { - PubsubTopic, - ShardInfo, - SingleTopicShardInfo -} from "@waku/interfaces"; +import type { PubsubTopic, ShardInfo, SingleShardInfo } from "@waku/interfaces"; import { concat, utf8ToBytes } from "../bytes/index.js"; export const singleTopicShardInfoToPubsubTopic = ( - shardInfo: SingleTopicShardInfo + shardInfo: SingleShardInfo ): PubsubTopic => { if (shardInfo.cluster === undefined || shardInfo.index === undefined) throw new Error("Invalid shard"); @@ -29,7 +25,7 @@ export const shardInfoToPubsubTopics = ( export const pubsubTopicToSingleTopicShardInfo = ( pubsubTopics: PubsubTopic -): SingleTopicShardInfo => { +): SingleShardInfo => { const parts = pubsubTopics.split("/"); if (parts.length != 6) throw new Error("Invalid pubsub topic");