set pubSubTopic in the constructor

This commit is contained in:
danisharora099 2023-05-02 18:09:46 +05:30
parent d0090e8a0c
commit e4482d7be7
No known key found for this signature in database
GPG Key ID: FBD2BF500037F135

View File

@ -54,6 +54,7 @@ const FilterV2Codecs = {
class FilterV2 extends BaseProtocol implements IFilterV2 { class FilterV2 extends BaseProtocol implements IFilterV2 {
options: ProtocolCreateOptions; options: ProtocolCreateOptions;
private subscriptions: Map<RequestID, unknown>; private subscriptions: Map<RequestID, unknown>;
public pubSubTopic: string;
constructor(public libp2p: Libp2p, options?: ProtocolCreateOptions) { constructor(public libp2p: Libp2p, options?: ProtocolCreateOptions) {
super( super(
@ -66,6 +67,9 @@ class FilterV2 extends BaseProtocol implements IFilterV2 {
this.options = options ?? {}; this.options = options ?? {};
this.subscriptions = new Map(); this.subscriptions = new Map();
const { pubSubTopic = DefaultPubSubTopic } = this.options;
this.pubSubTopic = pubSubTopic;
} }
/** /**
@ -80,12 +84,11 @@ class FilterV2 extends BaseProtocol implements IFilterV2 {
opts?: ProtocolOptions opts?: ProtocolOptions
): Promise<UnsubscribeFunction> { ): Promise<UnsubscribeFunction> {
const decodersArray = Array.isArray(decoders) ? decoders : [decoders]; const decodersArray = Array.isArray(decoders) ? decoders : [decoders];
const { pubSubTopic = DefaultPubSubTopic } = this.options;
const contentTopics = Array.from(groupByContentTopic(decodersArray).keys()); const contentTopics = Array.from(groupByContentTopic(decodersArray).keys());
const request = FilterSubscribeRpc.createSubscribeRequest( const request = FilterSubscribeRpc.createSubscribeRequest(
pubSubTopic, this.pubSubTopic,
contentTopics contentTopics
); );
@ -134,12 +137,12 @@ class FilterV2 extends BaseProtocol implements IFilterV2 {
const subscription: Subscription<T> = { const subscription: Subscription<T> = {
callback, callback,
decoders: decodersArray, decoders: decodersArray,
pubSubTopic, pubSubTopic: this.pubSubTopic,
}; };
this.subscriptions.set(requestId, subscription); this.subscriptions.set(requestId, subscription);
return async () => { return async () => {
await this.unsubscribe(pubSubTopic, contentTopics, requestId, peer); await this.unsubscribe(this.pubSubTopic, contentTopics, requestId, peer);
this.subscriptions.delete(requestId); this.subscriptions.delete(requestId);
}; };
} }