@aztec/p2p 0.49.2 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/attestation_pool/attestation_pool.d.ts +39 -0
- package/dest/attestation_pool/attestation_pool.d.ts.map +1 -0
- package/dest/attestation_pool/attestation_pool.js +2 -0
- package/dest/attestation_pool/index.d.ts +3 -0
- package/dest/attestation_pool/index.d.ts.map +1 -0
- package/dest/attestation_pool/index.js +3 -0
- package/dest/attestation_pool/memory_attestation_pool.d.ts +12 -0
- package/dest/attestation_pool/memory_attestation_pool.d.ts.map +1 -0
- package/dest/attestation_pool/memory_attestation_pool.js +56 -0
- package/dest/attestation_pool/mocks.d.ts +16 -0
- package/dest/attestation_pool/mocks.d.ts.map +1 -0
- package/dest/attestation_pool/mocks.js +29 -0
- package/dest/client/index.d.ts +2 -1
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +11 -5
- package/dest/client/p2p_client.d.ts +33 -2
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +20 -5
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/service/discV5_service.d.ts.map +1 -1
- package/dest/service/discV5_service.js +4 -3
- package/dest/service/dummy_service.d.ts +10 -4
- package/dest/service/dummy_service.d.ts.map +1 -1
- package/dest/service/dummy_service.js +14 -4
- package/dest/service/libp2p_service.d.ts +25 -6
- package/dest/service/libp2p_service.d.ts.map +1 -1
- package/dest/service/libp2p_service.js +55 -10
- package/dest/service/reqresp/handlers.d.ts +3 -0
- package/dest/service/reqresp/handlers.d.ts.map +1 -0
- package/dest/service/reqresp/handlers.js +7 -0
- package/dest/service/reqresp/index.d.ts +6 -0
- package/dest/service/reqresp/index.d.ts.map +1 -0
- package/dest/service/reqresp/index.js +6 -0
- package/dest/service/reqresp/interface.d.ts +11 -0
- package/dest/service/reqresp/interface.d.ts.map +1 -0
- package/dest/service/reqresp/interface.js +10 -0
- package/dest/service/reqresp/reqresp.d.ts +48 -0
- package/dest/service/reqresp/reqresp.d.ts.map +1 -0
- package/dest/service/reqresp/reqresp.js +112 -0
- package/dest/service/service.d.ts +6 -3
- package/dest/service/service.d.ts.map +1 -1
- package/dest/util.d.ts +1 -1
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +31 -12
- package/package.json +8 -7
- package/src/attestation_pool/attestation_pool.ts +42 -0
- package/src/attestation_pool/index.ts +2 -0
- package/src/attestation_pool/memory_attestation_pool.ts +70 -0
- package/src/attestation_pool/mocks.ts +33 -0
- package/src/client/index.ts +12 -3
- package/src/client/p2p_client.ts +63 -3
- package/src/index.ts +1 -0
- package/src/service/discV5_service.ts +3 -2
- package/src/service/dummy_service.ts +17 -4
- package/src/service/libp2p_service.ts +74 -7
- package/src/service/reqresp/handlers.ts +7 -0
- package/src/service/reqresp/index.ts +4 -0
- package/src/service/reqresp/interface.ts +13 -0
- package/src/service/reqresp/reqresp.ts +130 -0
- package/src/service/service.ts +10 -3
- package/src/util.ts +30 -10
|
@@ -19,15 +19,22 @@ export class DummyP2PService {
|
|
|
19
19
|
return Promise.resolve();
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Called to have the given
|
|
23
|
-
* @param _ - The
|
|
22
|
+
* Called to have the given message propagated through the P2P network.
|
|
23
|
+
* @param _ - The message to be propagated.
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
propagate(_) { }
|
|
26
26
|
/**
|
|
27
27
|
* Called upon receipt of settled transactions.
|
|
28
28
|
* @param _ - The hashes of the settled transactions.
|
|
29
29
|
*/
|
|
30
30
|
settledTxs(_) { }
|
|
31
|
+
/**
|
|
32
|
+
* Register a callback into the validator client for when a block proposal is received
|
|
33
|
+
*/
|
|
34
|
+
registerBlockReceivedCallback(_) { }
|
|
35
|
+
getEnr() {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
31
38
|
}
|
|
32
39
|
/**
|
|
33
40
|
* A dummy implementation of the Peer Discovery Service.
|
|
@@ -69,5 +76,8 @@ export class DummyPeerDiscoveryService extends EventEmitter {
|
|
|
69
76
|
getStatus() {
|
|
70
77
|
return this.currentState;
|
|
71
78
|
}
|
|
79
|
+
getEnr() {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
72
82
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlL2R1bW15X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sRUFBOEMsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQjs7O09BR0c7SUFDSSxLQUFLO1FBQ1YsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLElBQUk7UUFDVCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUF1QixDQUFJLElBQUcsQ0FBQztJQUUvQzs7O09BR0c7SUFDSSxVQUFVLENBQUMsQ0FBVyxJQUFHLENBQUM7SUFFakM7O09BRUc7SUFDSSw2QkFBNkIsQ0FBQyxDQUFzRCxJQUFHLENBQUM7SUFFeEYsTUFBTTtRQUNYLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFlBQVk7SUFBM0Q7O1FBQ1UsaUJBQVksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7SUF3Q3BELENBQUM7SUF2Q0M7OztPQUdHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1FBQy9DLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFDRDs7O09BR0c7SUFDSSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7UUFDL0MsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNEOzs7T0FHRztJQUNJLFdBQVc7UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxlQUFlLENBQUMsQ0FBUztRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIn0=
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BlockAttestation, BlockProposal, type Gossipable } from '@aztec/circuit-types';
|
|
2
2
|
import type { AztecKVStore } from '@aztec/kv-store';
|
|
3
|
+
import { type ENR } from '@chainsafe/enr';
|
|
3
4
|
import { type GossipsubEvents } from '@chainsafe/libp2p-gossipsub';
|
|
4
5
|
import type { PeerId, PubSub } from '@libp2p/interface';
|
|
5
6
|
import '@libp2p/kad-dht';
|
|
6
7
|
import { type Libp2p } from 'libp2p';
|
|
8
|
+
import { type AttestationPool } from '../attestation_pool/attestation_pool.js';
|
|
7
9
|
import { type P2PConfig } from '../config.js';
|
|
8
10
|
import { type TxPool } from '../tx_pool/index.js';
|
|
9
11
|
import type { P2PService, PeerDiscoveryService } from './service.js';
|
|
@@ -26,11 +28,13 @@ export declare class LibP2PService implements P2PService {
|
|
|
26
28
|
private node;
|
|
27
29
|
private peerDiscoveryService;
|
|
28
30
|
private txPool;
|
|
31
|
+
private attestationPool;
|
|
29
32
|
private logger;
|
|
30
33
|
private jobQueue;
|
|
31
34
|
private peerManager;
|
|
32
35
|
private discoveryRunningPromise?;
|
|
33
|
-
|
|
36
|
+
private blockReceivedCallback;
|
|
37
|
+
constructor(config: P2PConfig, node: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, txPool: TxPool, attestationPool: AttestationPool, logger?: import("@aztec/foundation/log").Logger);
|
|
34
38
|
/**
|
|
35
39
|
* Starts the LibP2P service.
|
|
36
40
|
* @returns An empty promise.
|
|
@@ -47,7 +51,9 @@ export declare class LibP2PService implements P2PService {
|
|
|
47
51
|
* @param txPool - The transaction pool to be accessed by the service.
|
|
48
52
|
* @returns The new service.
|
|
49
53
|
*/
|
|
50
|
-
static new(config: P2PConfig, peerDiscoveryService: PeerDiscoveryService, peerId: PeerId, txPool: TxPool, store: AztecKVStore): Promise<LibP2PService>;
|
|
54
|
+
static new(config: P2PConfig, peerDiscoveryService: PeerDiscoveryService, peerId: PeerId, txPool: TxPool, attestationPool: AttestationPool, store: AztecKVStore): Promise<LibP2PService>;
|
|
55
|
+
getEnr(): ENR | undefined;
|
|
56
|
+
registerBlockReceivedCallback(callback: (block: BlockProposal) => Promise<BlockAttestation | undefined>): void;
|
|
51
57
|
/**
|
|
52
58
|
* Subscribes to a topic.
|
|
53
59
|
* @param topic - The topic to subscribe to.
|
|
@@ -66,11 +72,24 @@ export declare class LibP2PService implements P2PService {
|
|
|
66
72
|
* @param data - The message data
|
|
67
73
|
*/
|
|
68
74
|
private handleNewGossipMessage;
|
|
75
|
+
/**Process Attestation From Peer
|
|
76
|
+
* When a proposal is received from a peer, we add it to the attestation pool, so it can be accessed by other services.
|
|
77
|
+
*
|
|
78
|
+
* @param attestation - The attestation to process.
|
|
79
|
+
*/
|
|
80
|
+
private processAttestationFromPeer;
|
|
81
|
+
/**Process block from peer
|
|
82
|
+
*
|
|
83
|
+
* Pass the received block to the validator client
|
|
84
|
+
*
|
|
85
|
+
* @param block - The block to process.
|
|
86
|
+
*/
|
|
87
|
+
private processBlockFromPeer;
|
|
69
88
|
/**
|
|
70
|
-
* Propagates
|
|
71
|
-
* @param
|
|
89
|
+
* Propagates provided message to peers.
|
|
90
|
+
* @param message - The message to propagate.
|
|
72
91
|
*/
|
|
73
|
-
|
|
92
|
+
propagate<T extends Gossipable>(message: T): void;
|
|
74
93
|
private processTxFromPeer;
|
|
75
94
|
private sendToPeers;
|
|
76
95
|
private stopLibP2P;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../src/service/libp2p_service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../src/service/libp2p_service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,UAAU,EAKhB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,iBAAiB,CAAC;AAIzB,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;KACjC,CAAC;CACH;AACD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS7E;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,UAAU;IAQ5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,MAAM;IAZhB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IAEjD,OAAO,CAAC,qBAAqB,CAAkE;gBAGrF,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,YAAY,EAClB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,MAAM,yCAA4C;IAY5D;;;OAGG;IACU,KAAK;IAyClB;;;OAGG;IACU,IAAI;IAYjB;;;;;OAKG;WACiB,GAAG,CACrB,MAAM,EAAE,SAAS,EACjB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,YAAY;IAuDd,MAAM,IAAI,GAAG,GAAG,SAAS;IAIzB,6BAA6B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAK9G;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;;;OAKG;YACW,cAAc;IAS5B;;;;OAIG;YACW,sBAAsB;IAiBpC;;;;OAIG;YACW,0BAA0B;IAKxC;;;;;OAKG;YAEW,oBAAoB;IAWlC;;;OAGG;IACI,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI;YAI1C,iBAAiB;YAOjB,WAAW;YAWX,UAAU;CAYzB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TopicType, TopicTypeMap, Tx } from '@aztec/circuit-types';
|
|
1
|
+
import { BlockAttestation, BlockProposal, TopicType, TopicTypeMap, Tx, } from '@aztec/circuit-types';
|
|
2
2
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { SerialQueue } from '@aztec/foundation/queue';
|
|
4
4
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
@@ -33,14 +33,19 @@ export async function createLibP2PPeerId(privateKey) {
|
|
|
33
33
|
* Lib P2P implementation of the P2PService interface.
|
|
34
34
|
*/
|
|
35
35
|
export class LibP2PService {
|
|
36
|
-
constructor(config, node, peerDiscoveryService, txPool, logger = createDebugLogger('aztec:libp2p_service')) {
|
|
36
|
+
constructor(config, node, peerDiscoveryService, txPool, attestationPool, logger = createDebugLogger('aztec:libp2p_service')) {
|
|
37
37
|
this.config = config;
|
|
38
38
|
this.node = node;
|
|
39
39
|
this.peerDiscoveryService = peerDiscoveryService;
|
|
40
40
|
this.txPool = txPool;
|
|
41
|
+
this.attestationPool = attestationPool;
|
|
41
42
|
this.logger = logger;
|
|
42
43
|
this.jobQueue = new SerialQueue();
|
|
43
44
|
this.peerManager = new PeerManager(node, peerDiscoveryService, config, logger);
|
|
45
|
+
this.blockReceivedCallback = (block) => {
|
|
46
|
+
this.logger.verbose(`[WARNING] handler not yet registered: Block received callback not set. Received block ${block.p2pMessageIdentifier()} from peer.`);
|
|
47
|
+
return Promise.resolve(undefined);
|
|
48
|
+
};
|
|
44
49
|
}
|
|
45
50
|
/**
|
|
46
51
|
* Starts the LibP2P service.
|
|
@@ -101,7 +106,7 @@ export class LibP2PService {
|
|
|
101
106
|
* @param txPool - The transaction pool to be accessed by the service.
|
|
102
107
|
* @returns The new service.
|
|
103
108
|
*/
|
|
104
|
-
static async new(config, peerDiscoveryService, peerId, txPool, store) {
|
|
109
|
+
static async new(config, peerDiscoveryService, peerId, txPool, attestationPool, store) {
|
|
105
110
|
const { tcpListenAddress, tcpAnnounceAddress, minPeerCount, maxPeerCount } = config;
|
|
106
111
|
const bindAddrTcp = convertToMultiaddr(tcpListenAddress, 'tcp');
|
|
107
112
|
// We know tcpAnnounceAddress cannot be null here because we set it or throw when setting up the service.
|
|
@@ -149,7 +154,14 @@ export class LibP2PService {
|
|
|
149
154
|
}),
|
|
150
155
|
},
|
|
151
156
|
});
|
|
152
|
-
return new LibP2PService(config, node, peerDiscoveryService, txPool);
|
|
157
|
+
return new LibP2PService(config, node, peerDiscoveryService, txPool, attestationPool);
|
|
158
|
+
}
|
|
159
|
+
getEnr() {
|
|
160
|
+
return this.peerDiscoveryService.getEnr();
|
|
161
|
+
}
|
|
162
|
+
registerBlockReceivedCallback(callback) {
|
|
163
|
+
this.blockReceivedCallback = callback;
|
|
164
|
+
this.logger.verbose('Block received callback registered');
|
|
153
165
|
}
|
|
154
166
|
/**
|
|
155
167
|
* Subscribes to a topic.
|
|
@@ -184,14 +196,47 @@ export class LibP2PService {
|
|
|
184
196
|
const tx = Tx.fromBuffer(Buffer.from(message.data));
|
|
185
197
|
await this.processTxFromPeer(tx);
|
|
186
198
|
}
|
|
199
|
+
if (message.topic === BlockAttestation.p2pTopic) {
|
|
200
|
+
const attestation = BlockAttestation.fromBuffer(Buffer.from(message.data));
|
|
201
|
+
await this.processAttestationFromPeer(attestation);
|
|
202
|
+
}
|
|
203
|
+
if (message.topic == BlockProposal.p2pTopic) {
|
|
204
|
+
const block = BlockProposal.fromBuffer(Buffer.from(message.data));
|
|
205
|
+
await this.processBlockFromPeer(block);
|
|
206
|
+
}
|
|
187
207
|
return;
|
|
188
208
|
}
|
|
209
|
+
/**Process Attestation From Peer
|
|
210
|
+
* When a proposal is received from a peer, we add it to the attestation pool, so it can be accessed by other services.
|
|
211
|
+
*
|
|
212
|
+
* @param attestation - The attestation to process.
|
|
213
|
+
*/
|
|
214
|
+
async processAttestationFromPeer(attestation) {
|
|
215
|
+
this.logger.verbose(`Received attestation ${attestation.p2pMessageIdentifier()} from external peer.`);
|
|
216
|
+
await this.attestationPool.addAttestations([attestation]);
|
|
217
|
+
}
|
|
218
|
+
/**Process block from peer
|
|
219
|
+
*
|
|
220
|
+
* Pass the received block to the validator client
|
|
221
|
+
*
|
|
222
|
+
* @param block - The block to process.
|
|
223
|
+
*/
|
|
224
|
+
// REVIEW: callback pattern https://github.com/AztecProtocol/aztec-packages/issues/7963
|
|
225
|
+
async processBlockFromPeer(block) {
|
|
226
|
+
this.logger.verbose(`Received block ${block.p2pMessageIdentifier()} from external peer.`);
|
|
227
|
+
const attestation = await this.blockReceivedCallback(block);
|
|
228
|
+
// TODO: fix up this pattern - the abstraction is not nice
|
|
229
|
+
// The attestation can be undefined if no handler is registered / the validator deems the block invalid
|
|
230
|
+
if (attestation != undefined) {
|
|
231
|
+
this.propagate(attestation);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
189
234
|
/**
|
|
190
|
-
* Propagates
|
|
191
|
-
* @param
|
|
235
|
+
* Propagates provided message to peers.
|
|
236
|
+
* @param message - The message to propagate.
|
|
192
237
|
*/
|
|
193
|
-
|
|
194
|
-
void this.jobQueue.put(() => Promise.resolve(this.sendToPeers(
|
|
238
|
+
propagate(message) {
|
|
239
|
+
void this.jobQueue.put(() => Promise.resolve(this.sendToPeers(message)));
|
|
195
240
|
}
|
|
196
241
|
async processTxFromPeer(tx) {
|
|
197
242
|
const txHash = tx.getTxHash();
|
|
@@ -202,7 +247,7 @@ export class LibP2PService {
|
|
|
202
247
|
async sendToPeers(message) {
|
|
203
248
|
const parent = message.constructor;
|
|
204
249
|
const identifier = message.p2pMessageIdentifier().toString();
|
|
205
|
-
this.logger.verbose(`Sending
|
|
250
|
+
this.logger.verbose(`Sending message ${identifier} to peers`);
|
|
206
251
|
const recipientsNum = await this.publishToTopic(parent.p2pTopic, message.toBuffer());
|
|
207
252
|
this.logger.verbose(`Sent tx ${identifier} to ${recipientsNum} peers`);
|
|
208
253
|
}
|
|
@@ -221,4 +266,4 @@ export class LibP2PService {
|
|
|
221
266
|
}
|
|
222
267
|
}
|
|
223
268
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9saWJwMnBfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBDLFNBQVMsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUduRSxPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBUWhEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGtCQUFrQixDQUFDLFVBQW1CO0lBQzFELElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDeEIsT0FBTyxNQUFNLHFCQUFxQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRSxPQUFPLE1BQU0sY0FBYyxDQUFDO1FBQzFCLEVBQUUsRUFBRSxFQUFFO1FBQ04sT0FBTyxFQUFFLE1BQU07S0FDaEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFDVSxNQUFpQixFQUNqQixJQUFrQixFQUNsQixvQkFBMEMsRUFDMUMsTUFBYyxFQUNkLFNBQVMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUM7UUFKbEQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ2xCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQTRDO1FBUnBELGFBQVEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQVVoRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLHNDQUFzQztRQUN0QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsa0NBQWtDO1FBQ2xDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUUxRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVuRixvREFBb0Q7UUFDcEQsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRTtZQUN4RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBRTlDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFFSCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsSUFBSTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsTUFBTSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ3JCLE1BQWlCLEVBQ2pCLG9CQUEwQyxFQUMxQyxNQUFjLEVBQ2QsTUFBYyxFQUNkLEtBQW1CO1FBRW5CLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3BGLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLHlHQUF5RztRQUN6RyxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxrQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV2RSxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxNQUFNLElBQUksR0FBRyxNQUFNLFlBQVksQ0FBQztZQUM5QixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU07WUFDTixTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUNyQixRQUFRLEVBQUUsQ0FBQyxlQUFlLENBQUM7YUFDNUI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxDQUFDO29CQUNGLGNBQWMsRUFBRSxNQUFNLENBQUMsWUFBWTtvQkFDbkMsd0VBQXdFO29CQUN4RSxzRUFBc0U7b0JBQ3RFLDJDQUEyQztvQkFDM0MsT0FBTyxFQUFFLENBQUM7b0JBQ1YsMkJBQTJCLEVBQUU7d0JBQzNCLFVBQVUsRUFBRSxZQUFZLElBQUksUUFBUTt3QkFDcEMsV0FBVyxFQUFFLFlBQVksSUFBSSxRQUFRO3FCQUN0QztpQkFDRixDQUFDO2FBQ0g7WUFDRCxTQUFTO1lBQ1QsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQixpQkFBaUIsRUFBRTtnQkFDakIsY0FBYyxFQUFFLFlBQVk7Z0JBQzVCLGNBQWMsRUFBRSxZQUFZO2FBQzdCO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLFFBQVEsRUFBRSxRQUFRLENBQUM7b0JBQ2pCLGNBQWMsRUFBRSxPQUFPO2lCQUN4QixDQUFDO2dCQUNGLE1BQU0sRUFBRSxTQUFTLENBQUM7b0JBQ2hCLDRCQUE0QixFQUFFLElBQUk7b0JBQ2xDLENBQUMsRUFBRSxDQUFDO29CQUNKLEdBQUcsRUFBRSxDQUFDO29CQUNOLEdBQUcsRUFBRSxFQUFFO29CQUNQLGlCQUFpQixFQUFFLElBQUs7b0JBQ3hCLFlBQVksRUFBRSxDQUFDO29CQUNmLFlBQVksRUFBRSxDQUFDO2lCQUNoQixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBYSxFQUFFLElBQWdCO1FBQzFELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEUsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxPQUF5QjtRQUM1RCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsT0FBTztJQUNULENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsRUFBTTtRQUN2QixLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFNO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxZQUFZLHNCQUFzQixDQUFDLENBQUM7UUFDdkUsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQXVCLE9BQVU7UUFDeEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFdBQWdDLENBQUM7UUFFeEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxVQUFVLFdBQVcsQ0FBQyxDQUFDO1FBRXpELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsVUFBVSxPQUFPLGFBQWEsUUFBUSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELDBFQUEwRTtJQUNsRSxLQUFLLENBQUMsVUFBVTtRQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxvQkFBb0I7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9saWJwMnBfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFHYixTQUFTLEVBQ1QsWUFBWSxFQUNaLEVBQUUsR0FDSCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbkUsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUtuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFoRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxV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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/service/reqresp/handlers.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,cAEpC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,cAEtC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function pingHandler(_msg) {
|
|
2
|
+
return Uint8Array.from(Buffer.from('pong'));
|
|
3
|
+
}
|
|
4
|
+
export function statusHandler(_msg) {
|
|
5
|
+
return Uint8Array.from(Buffer.from('ok'));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZS9yZXFyZXNwL2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBUztJQUNuQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVM7SUFDckMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1QyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/reqresp/index.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
/**
|
|
3
|
+
* Request Response protocol allows nodes to ask their peers for data
|
|
4
|
+
* that they missed via the traditional gossip protocol.
|
|
5
|
+
*/
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZS9yZXFyZXNwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0cifQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum ReqRespType {
|
|
2
|
+
Status = "status",
|
|
3
|
+
Ping = "ping",
|
|
4
|
+
/** Ask peers for specific transactions */
|
|
5
|
+
TxsByHash = "txs_by_hash"
|
|
6
|
+
}
|
|
7
|
+
export declare const PING_PROTOCOL = "/aztec/ping/0.1.0";
|
|
8
|
+
export declare const STATUS_PROTOCOL = "/aztec/status/0.1.0";
|
|
9
|
+
export type SubProtocol = typeof PING_PROTOCOL | typeof STATUS_PROTOCOL;
|
|
10
|
+
export type SubProtocolHandler = (msg: string) => Uint8Array;
|
|
11
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/service/reqresp/interface.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,0CAA0C;IAC1C,SAAS,gBAAgB;CAC1B;AAED,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG,OAAO,aAAa,GAAG,OAAO,eAAe,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var ReqRespType;
|
|
2
|
+
(function (ReqRespType) {
|
|
3
|
+
ReqRespType["Status"] = "status";
|
|
4
|
+
ReqRespType["Ping"] = "ping";
|
|
5
|
+
/** Ask peers for specific transactions */
|
|
6
|
+
ReqRespType["TxsByHash"] = "txs_by_hash";
|
|
7
|
+
})(ReqRespType || (ReqRespType = {}));
|
|
8
|
+
export const PING_PROTOCOL = '/aztec/ping/0.1.0';
|
|
9
|
+
export const STATUS_PROTOCOL = '/aztec/status/0.1.0';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2UvcmVxcmVzcC9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FLWDtBQUxELFdBQVksV0FBVztJQUNyQixnQ0FBaUIsQ0FBQTtJQUNqQiw0QkFBYSxDQUFBO0lBQ2IsMENBQTBDO0lBQzFDLHdDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QjtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQztBQUNqRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcscUJBQXFCLENBQUMifQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
3
|
+
import { type PeerId } from '@libp2p/interface';
|
|
4
|
+
import { type Libp2p } from 'libp2p';
|
|
5
|
+
import { type SubProtocol } from './interface.js';
|
|
6
|
+
export declare class ReqResp {
|
|
7
|
+
protected readonly libp2p: Libp2p;
|
|
8
|
+
protected readonly logger: Logger;
|
|
9
|
+
private abortController;
|
|
10
|
+
constructor(libp2p: Libp2p);
|
|
11
|
+
/**
|
|
12
|
+
* Start the reqresp service
|
|
13
|
+
*/
|
|
14
|
+
start(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Stop the reqresp service
|
|
17
|
+
*/
|
|
18
|
+
stop(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Send a request to peers, returns the first response
|
|
21
|
+
*
|
|
22
|
+
* @param subProtocol - The protocol being requested
|
|
23
|
+
* @param payload - The payload to send
|
|
24
|
+
* @returns - The response from the peer, otherwise undefined
|
|
25
|
+
*/
|
|
26
|
+
sendRequest(subProtocol: SubProtocol, payload: Buffer): Promise<Buffer | undefined>;
|
|
27
|
+
/**
|
|
28
|
+
* Sends a request to a specific peer
|
|
29
|
+
*
|
|
30
|
+
* @param peerId - The peer to send the request to
|
|
31
|
+
* @param subProtocol - The protocol to use to request
|
|
32
|
+
* @param payload - The payload to send
|
|
33
|
+
* @returns If the request is successful, the response is returned, otherwise undefined
|
|
34
|
+
*/
|
|
35
|
+
sendRequestToPeer(peerId: PeerId, subProtocol: SubProtocol, payload: Buffer): Promise<Buffer | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Read a message returned from a stream into a single buffer
|
|
38
|
+
*/
|
|
39
|
+
private readMessage;
|
|
40
|
+
/**
|
|
41
|
+
* Stream Handler
|
|
42
|
+
* Reads the incoming stream, determines the protocol, then triggers the appropriate handler
|
|
43
|
+
*
|
|
44
|
+
* @param param0 - The incoming stream data
|
|
45
|
+
*/
|
|
46
|
+
private streamHandler;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=reqresp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/service/reqresp/reqresp.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,EAAkC,KAAK,WAAW,EAA2B,MAAM,gBAAgB,CAAC;AAU3G,qBAAa,OAAO;IAKN,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAJ7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,OAAO,CAAC,eAAe,CAA0C;gBAElC,MAAM,EAAE,MAAM;IAI7C;;OAEG;IACG,KAAK;IAOX;;OAEG;IACG,IAAI;IASV;;;;;;OAMG;IACG,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgBzF;;;;;;;OAOG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAY/G;;OAEG;YACW,WAAW;IASzB;;;;;OAKG;YACW,aAAa;CAkB5B"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// @attribution: lodestar impl for inspiration
|
|
2
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { pipe } from 'it-pipe';
|
|
4
|
+
import { pingHandler, statusHandler } from './handlers.js';
|
|
5
|
+
import { PING_PROTOCOL, STATUS_PROTOCOL } from './interface.js';
|
|
6
|
+
/**
|
|
7
|
+
* A mapping from a protocol to a handler function
|
|
8
|
+
*/
|
|
9
|
+
const SUB_PROTOCOL_HANDLERS = {
|
|
10
|
+
[PING_PROTOCOL]: pingHandler,
|
|
11
|
+
[STATUS_PROTOCOL]: statusHandler,
|
|
12
|
+
};
|
|
13
|
+
export class ReqResp {
|
|
14
|
+
constructor(libp2p) {
|
|
15
|
+
this.libp2p = libp2p;
|
|
16
|
+
this.abortController = new AbortController();
|
|
17
|
+
this.logger = createDebugLogger('aztec:p2p:reqresp');
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Start the reqresp service
|
|
21
|
+
*/
|
|
22
|
+
async start() {
|
|
23
|
+
// Register all protocol handlers
|
|
24
|
+
for (const subProtocol of Object.keys(SUB_PROTOCOL_HANDLERS)) {
|
|
25
|
+
await this.libp2p.handle(subProtocol, this.streamHandler.bind(this, subProtocol));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Stop the reqresp service
|
|
30
|
+
*/
|
|
31
|
+
async stop() {
|
|
32
|
+
// Unregister all handlers
|
|
33
|
+
for (const protocol of Object.keys(SUB_PROTOCOL_HANDLERS)) {
|
|
34
|
+
await this.libp2p.unhandle(protocol);
|
|
35
|
+
}
|
|
36
|
+
await this.libp2p.stop();
|
|
37
|
+
this.abortController.abort();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Send a request to peers, returns the first response
|
|
41
|
+
*
|
|
42
|
+
* @param subProtocol - The protocol being requested
|
|
43
|
+
* @param payload - The payload to send
|
|
44
|
+
* @returns - The response from the peer, otherwise undefined
|
|
45
|
+
*/
|
|
46
|
+
async sendRequest(subProtocol, payload) {
|
|
47
|
+
// Get active peers
|
|
48
|
+
const peers = this.libp2p.getPeers();
|
|
49
|
+
// Attempt to ask all of our peers
|
|
50
|
+
for (const peer of peers) {
|
|
51
|
+
const response = await this.sendRequestToPeer(peer, subProtocol, payload);
|
|
52
|
+
// If we get a response, return it, otherwise we iterate onto the next peer
|
|
53
|
+
if (response) {
|
|
54
|
+
return response;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Sends a request to a specific peer
|
|
61
|
+
*
|
|
62
|
+
* @param peerId - The peer to send the request to
|
|
63
|
+
* @param subProtocol - The protocol to use to request
|
|
64
|
+
* @param payload - The payload to send
|
|
65
|
+
* @returns If the request is successful, the response is returned, otherwise undefined
|
|
66
|
+
*/
|
|
67
|
+
async sendRequestToPeer(peerId, subProtocol, payload) {
|
|
68
|
+
try {
|
|
69
|
+
const stream = await this.libp2p.dialProtocol(peerId, subProtocol);
|
|
70
|
+
const result = await pipe([payload], stream, this.readMessage);
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
this.logger.warn(`Failed to send request to peer ${peerId.publicKey}`);
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Read a message returned from a stream into a single buffer
|
|
80
|
+
*/
|
|
81
|
+
async readMessage(source) {
|
|
82
|
+
const chunks = [];
|
|
83
|
+
for await (const chunk of source) {
|
|
84
|
+
chunks.push(chunk.subarray());
|
|
85
|
+
}
|
|
86
|
+
const messageData = chunks.concat();
|
|
87
|
+
return Buffer.concat(messageData);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Stream Handler
|
|
91
|
+
* Reads the incoming stream, determines the protocol, then triggers the appropriate handler
|
|
92
|
+
*
|
|
93
|
+
* @param param0 - The incoming stream data
|
|
94
|
+
*/
|
|
95
|
+
async streamHandler(protocol, { stream }) {
|
|
96
|
+
try {
|
|
97
|
+
await pipe(stream, async function* (source) {
|
|
98
|
+
for await (const chunkList of source) {
|
|
99
|
+
const msg = Buffer.from(chunkList.subarray()).toString();
|
|
100
|
+
yield SUB_PROTOCOL_HANDLERS[protocol](msg);
|
|
101
|
+
}
|
|
102
|
+
}, stream);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
this.logger.warn(e);
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
await stream.close();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlL3JlcXJlc3AvcmVxcmVzcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHdkUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUkvQixPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBNkMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRzs7R0FFRztBQUNILE1BQU0scUJBQXFCLEdBQTRDO0lBQ3JFLENBQUMsYUFBYSxDQUFDLEVBQUUsV0FBVztJQUM1QixDQUFDLGVBQWUsQ0FBQyxFQUFFLGFBQWE7Q0FDakMsQ0FBQztBQUVGLE1BQU0sT0FBTyxPQUFPO0lBS2xCLFlBQStCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnJDLG9CQUFlLEdBQW9CLElBQUksZUFBZSxFQUFFLENBQUM7UUFHL0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsaUNBQWlDO1FBQ2pDLEtBQUssTUFBTSxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQ25HLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBSTtRQUNSLDBCQUEwQjtRQUMxQixLQUFL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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import type {
|
|
2
|
+
import type { BlockAttestation, BlockProposal, Gossipable } from '@aztec/circuit-types';
|
|
3
3
|
import type { ENR } from '@chainsafe/enr';
|
|
4
4
|
import type { PeerId } from '@libp2p/interface';
|
|
5
5
|
import type EventEmitter from 'events';
|
|
@@ -23,9 +23,11 @@ export interface P2PService {
|
|
|
23
23
|
stop(): Promise<void>;
|
|
24
24
|
/**
|
|
25
25
|
* Called to have the given transaction propagated through the P2P network.
|
|
26
|
-
* @param
|
|
26
|
+
* @param message - The message to be propagated.
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
propagate<T extends Gossipable>(message: T): void;
|
|
29
|
+
registerBlockReceivedCallback(callback: (block: BlockProposal) => Promise<BlockAttestation>): void;
|
|
30
|
+
getEnr(): ENR | undefined;
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
33
|
* The interface for a peer discovery service implementation.
|
|
@@ -60,5 +62,6 @@ export interface PeerDiscoveryService extends EventEmitter {
|
|
|
60
62
|
on(event: 'peer:discovered', listener: (enr: ENR) => void): this;
|
|
61
63
|
emit(event: 'peer:discovered', enr: ENR): boolean;
|
|
62
64
|
getStatus(): PeerDiscoveryState;
|
|
65
|
+
getEnr(): ENR | undefined;
|
|
63
66
|
}
|
|
64
67
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAExF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAEvC,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAGlD,6BAA6B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAEnG,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD;;SAEK;IACL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;SAEK;IACL,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,WAAW,IAAI,GAAG,EAAE,CAAC;IAErB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAElD,SAAS,IAAI,kBAAkB,CAAC;IAEhC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;CAC3B"}
|
package/dest/util.d.ts
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Example usage:
|
|
4
4
|
* const tcpAddr = '123.456.7.8:80' -> /ip4/123.456.7.8/tcp/80
|
|
5
5
|
* const udpAddr = '[2001:db8::1]:8080' -> /ip6/2001:db8::1/udp/8080
|
|
6
|
-
* const dnsAddr = 'example.com:443' -> /dns4/example.com/tcp/443
|
|
7
6
|
* @param address - The address string to convert. Has to be in the format <addr>:<port>.
|
|
8
7
|
* @param protocol - The protocol to use in the multiaddr string.
|
|
9
8
|
* @returns A multiaddr compliant string.
|
|
@@ -18,4 +17,5 @@ export declare function splitAddressPort(address: string, allowEmptyAddress: boo
|
|
|
18
17
|
* Queries the public IP address of the machine.
|
|
19
18
|
*/
|
|
20
19
|
export declare function getPublicIp(): Promise<string>;
|
|
20
|
+
export declare function resolveAddressIfNecessary(address: string): Promise<string>;
|
|
21
21
|
//# sourceMappingURL=util.d.ts.map
|
package/dest/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CASnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB9F;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAInD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYhF"}
|