Skip to content

Commit ad7bc93

Browse files
committed
refactor: 💡 CenterSub uses new types; + minor optimisations
1 parent 4d50134 commit ad7bc93

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

‎src/shared/pubsub.ts

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import { ToSendGroupCount } from '@chainsafe/libp2p-gossipsub/metrics';
88
import { PeerIdStr, TopicStr } from '@chainsafe/libp2p-gossipsub/types';
99
import { PubSub, Message } from '@libp2p/interface-pubsub';
1010
import { PeerId } from '@libp2p/interface-peer-id';
11-
import type { Connection, Direction } from '@libp2p/interface-connection';
11+
import type { Direction } from '@libp2p/interface-connection';
1212
import { RPC } from '@chainsafe/libp2p-gossipsub/message';
1313
import { Multiaddr } from '@multiformats/multiaddr';
1414
import { sha256 } from 'multiformats/hashes/sha2';
1515
import { outboundStreamDelay } from '../constants.js';
1616
import { Storage } from '../storage/abstract.js';
17-
import { GenericMessage } from '../shared/messages.js';
17+
import { GenericMessage } from '../shared/types.js';
1818
import { decodeText } from '../utils/text.js';
1919
import { CashedMessageEntry, MessagesCache } from './cache.js';
2020
import { createLogger } from '../utils/logger.js';
@@ -61,7 +61,6 @@ export class CenterSub extends GossipSub {
6161
*
6262
* @param {GossipSubComponents} components
6363
* @param {CenterSubOptions} options
64-
* @param {Storage} [messagesStorage]
6564
* @memberof CenterSub
6665
*/
6766
constructor(components: GossipSubComponents, options: CenterSubOptions) {
@@ -95,16 +94,13 @@ export class CenterSub extends GossipSub {
9594
this['selectPeersToPublish'] = this.onSelectPeersToPublish.bind(this);
9695
this['handleReceivedMessage'] = this.onHandleReceivedMessage.bind(this);
9796
this['addPeer'] = this.onAddPeer.bind(this);
97+
this['removePeer'] = this.onRemovePeer.bind(this);
9898

9999
this.isClient = !!isClient;
100100
this.messageTransformer = messageTransformer
101101
? messageTransformer
102102
: (message) => JSON.parse(decodeText(message)) as GenericMessage;
103103
this.addEventListener('gossipsub:heartbeat', this.handleHeartbeat.bind(this));
104-
components.connectionManager.addEventListener(
105-
'peer:disconnect',
106-
this.handlePeerDisconnect.bind(this),
107-
);
108104
}
109105

110106
/**
@@ -182,8 +178,8 @@ export class CenterSub extends GossipSub {
182178
msgIdStr,
183179
rpcMsg.from.toString(),
184180
rpcMsg,
185-
transformed.expire,
186-
transformed.nonce,
181+
Number(transformed.expire),
182+
Number(transformed.nonce),
187183
);
188184
} catch (error) {
189185
logger.error(error);
@@ -236,16 +232,17 @@ export class CenterSub extends GossipSub {
236232
}
237233

238234
/**
239-
* Handles actions on peer disconnection
235+
* Handles actions on peer removal
240236
*
241237
* @private
242238
* @param {CustomEvent<Connection>} { detail }
243239
* @memberof CenterSub
244240
*/
245-
private handlePeerDisconnect({ detail }: CustomEvent<Connection>): void {
241+
private onRemovePeer(peerId: PeerId): void {
246242
try {
247-
const id = detail.id.toString();
248-
this.seenPeerMessageCache.delete(id);
243+
this.seenPeerMessageCache.delete(peerId.toString());
244+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
245+
this['removePeer'](peerId);
249246
} catch (error) {
250247
logger.error(error);
251248
}

0 commit comments

Comments
 (0)