@waku/core 0.0.31-15400a5.0 → 0.0.31-409642d.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/bundle/{base_protocol-0VPHaGce.js → base_protocol-Dge5_tvU.js} +3 -7
- package/bundle/{index-D-yd4hdM.js → index-Gts2Ddu_.js} +26 -46
- package/bundle/index.js +52 -95
- package/bundle/lib/base_protocol.js +2 -2
- package/bundle/lib/message/version_0.js +2 -2
- package/bundle/{version_0-Du1FfEvY.js → version_0-CNRKFufI.js} +22 -17
- package/dist/.tsbuildinfo +1 -1
- package/dist/lib/base_protocol.d.ts +2 -3
- package/dist/lib/base_protocol.js +3 -7
- package/dist/lib/base_protocol.js.map +1 -1
- package/dist/lib/connection_manager.d.ts +1 -1
- package/dist/lib/connection_manager.js.map +1 -1
- package/dist/lib/filter/index.d.ts +3 -2
- package/dist/lib/filter/index.js +4 -2
- package/dist/lib/filter/index.js.map +1 -1
- package/dist/lib/light_push/index.d.ts +3 -2
- package/dist/lib/light_push/index.js +4 -2
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/metadata/index.d.ts +2 -2
- package/dist/lib/metadata/index.js +9 -9
- package/dist/lib/metadata/index.js.map +1 -1
- package/dist/lib/store/index.d.ts +3 -2
- package/dist/lib/store/index.js +4 -2
- package/dist/lib/store/index.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/base_protocol.ts +3 -7
- package/src/lib/connection_manager.ts +1 -1
- package/src/lib/filter/index.ts +3 -10
- package/src/lib/light_push/index.ts +6 -9
- package/src/lib/metadata/index.ts +11 -12
- package/src/lib/store/index.ts +6 -9
@@ -15,8 +15,10 @@ export { PushResponse };
|
|
15
15
|
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
16
16
|
*/
|
17
17
|
export class LightPushCore extends BaseProtocol {
|
18
|
-
|
19
|
-
|
18
|
+
pubsubTopics;
|
19
|
+
constructor(pubsubTopics, libp2p) {
|
20
|
+
super(LightPushCodec, libp2p.components, log, pubsubTopics);
|
21
|
+
this.pubsubTopics = pubsubTopics;
|
20
22
|
}
|
21
23
|
async preparePushMessage(encoder, message) {
|
22
24
|
try {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { type IMetadata, type Libp2pComponents,
|
1
|
+
import { type IMetadata, type Libp2pComponents, PubsubTopic } from "@waku/interfaces";
|
2
2
|
export declare const MetadataCodec = "/vac/waku/metadata/1.0.0";
|
3
|
-
export declare function wakuMetadata(
|
3
|
+
export declare function wakuMetadata(pubsubTopics: PubsubTopic[]): (components: Libp2pComponents) => IMetadata;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ProtocolError } from "@waku/interfaces";
|
2
2
|
import { proto_metadata } from "@waku/proto";
|
3
|
-
import { encodeRelayShard, Logger,
|
3
|
+
import { encodeRelayShard, Logger, pubsubTopicsToShardInfo } from "@waku/utils";
|
4
4
|
import all from "it-all";
|
5
5
|
import * as lp from "it-length-prefixed";
|
6
6
|
import { pipe } from "it-pipe";
|
@@ -9,12 +9,12 @@ import { BaseProtocol } from "../base_protocol.js";
|
|
9
9
|
const log = new Logger("metadata");
|
10
10
|
export const MetadataCodec = "/vac/waku/metadata/1.0.0";
|
11
11
|
class Metadata extends BaseProtocol {
|
12
|
-
|
12
|
+
pubsubTopics;
|
13
13
|
libp2pComponents;
|
14
14
|
handshakesConfirmed = new Map();
|
15
|
-
constructor(
|
16
|
-
super(MetadataCodec, libp2p.components, log,
|
17
|
-
this.
|
15
|
+
constructor(pubsubTopics, libp2p) {
|
16
|
+
super(MetadataCodec, libp2p.components, log, pubsubTopics);
|
17
|
+
this.pubsubTopics = pubsubTopics;
|
18
18
|
this.libp2pComponents = libp2p;
|
19
19
|
void libp2p.registrar.handle(MetadataCodec, (streamData) => {
|
20
20
|
void this.onRequest(streamData);
|
@@ -24,7 +24,7 @@ class Metadata extends BaseProtocol {
|
|
24
24
|
* Make a metadata query to a peer
|
25
25
|
*/
|
26
26
|
async query(peerId) {
|
27
|
-
const request = proto_metadata.WakuMetadataRequest.encode(this.
|
27
|
+
const request = proto_metadata.WakuMetadataRequest.encode(pubsubTopicsToShardInfo(this.pubsubTopics));
|
28
28
|
const peer = await this.peerStore.get(peerId);
|
29
29
|
if (!peer) {
|
30
30
|
return {
|
@@ -73,7 +73,7 @@ class Metadata extends BaseProtocol {
|
|
73
73
|
async onRequest(streamData) {
|
74
74
|
try {
|
75
75
|
const { stream, connection } = streamData;
|
76
|
-
const encodedShardInfo = proto_metadata.WakuMetadataResponse.encode(this.
|
76
|
+
const encodedShardInfo = proto_metadata.WakuMetadataResponse.encode(pubsubTopicsToShardInfo(this.pubsubTopics));
|
77
77
|
const encodedResponse = await pipe([encodedShardInfo], lp.encode, stream, lp.decode, async (source) => await all(source));
|
78
78
|
const { error, shardInfo } = this.decodeMetadataResponse(encodedResponse);
|
79
79
|
if (error) {
|
@@ -113,7 +113,7 @@ class Metadata extends BaseProtocol {
|
|
113
113
|
this.handshakesConfirmed.set(peerId.toString(), shardInfo);
|
114
114
|
}
|
115
115
|
}
|
116
|
-
export function wakuMetadata(
|
117
|
-
return (components) => new Metadata(
|
116
|
+
export function wakuMetadata(pubsubTopics) {
|
117
|
+
return (components) => new Metadata(pubsubTopics, components);
|
118
118
|
}
|
119
119
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/metadata/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,aAAa,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/metadata/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import type { Peer } from "@libp2p/interface";
|
2
|
-
import { IDecodedMessage, IDecoder, IStoreCore, Libp2p,
|
2
|
+
import { IDecodedMessage, IDecoder, IStoreCore, Libp2p, PubsubTopic, QueryRequestParams } from "@waku/interfaces";
|
3
3
|
import { BaseProtocol } from "../base_protocol.js";
|
4
4
|
export declare const StoreCodec = "/vac/waku/store-query/3.0.0";
|
5
5
|
export declare class StoreCore extends BaseProtocol implements IStoreCore {
|
6
|
-
|
6
|
+
readonly pubsubTopics: PubsubTopic[];
|
7
|
+
constructor(pubsubTopics: PubsubTopic[], libp2p: Libp2p);
|
7
8
|
queryPerPage<T extends IDecodedMessage>(queryOpts: QueryRequestParams, decoders: Map<string, IDecoder<T>>, peer: Peer): AsyncGenerator<Promise<T | undefined>[]>;
|
8
9
|
}
|
package/dist/lib/store/index.js
CHANGED
@@ -9,8 +9,10 @@ import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, StoreQueryRequest, StoreQueryResponse
|
|
9
9
|
const log = new Logger("store");
|
10
10
|
export const StoreCodec = "/vac/waku/store-query/3.0.0";
|
11
11
|
export class StoreCore extends BaseProtocol {
|
12
|
-
|
13
|
-
|
12
|
+
pubsubTopics;
|
13
|
+
constructor(pubsubTopics, libp2p) {
|
14
|
+
super(StoreCodec, libp2p.components, log, pubsubTopics);
|
15
|
+
this.pubsubTopics = pubsubTopics;
|
14
16
|
}
|
15
17
|
async *queryPerPage(queryOpts, decoders, peer) {
|
16
18
|
if (queryOpts.contentTopics.toString() !==
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,GAAG,MAAM,QAAQ,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,UAAU,GAAG,6BAA6B,CAAC;AAExD,MAAM,OAAO,SAAU,SAAQ,YAAY;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/store/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"@waku/core","version":"0.0.31-
|
1
|
+
{"name":"@waku/core","version":"0.0.31-409642d.0","description":"TypeScript implementation of the Waku v2 protocol","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./lib/message/version_0":{"types":"./dist/lib/message/version_0.d.ts","import":"./dist/lib/message/version_0.js"},"./lib/base_protocol":{"types":"./dist/lib/base_protocol.d.ts","import":"./dist/lib/base_protocol.js"}},"typesVersions":{"*":{"lib/*":["dist/lib/*"],"constants/*":["dist/constants/*"]}},"type":"module","homepage":"https://github.com/waku-org/js-waku/tree/master/packages/core#readme","repository":{"type":"git","url":"https://github.com/waku-org/js-waku.git"},"bugs":{"url":"https://github.com/waku-org/js-waku/issues"},"license":"MIT OR Apache-2.0","keywords":["waku","decentralised","communication","web3","ethereum","dapps"],"scripts":{"build":"run-s build:**","build:esm":"tsc","build:bundle":"rollup --config rollup.config.js","fix":"run-s fix:*","fix:lint":"eslint src *.js --fix","check":"run-s check:*","check:tsc":"tsc -p tsconfig.dev.json","check:lint":"eslint src *.js","check:spelling":"cspell \"{README.md,src/**/*.ts}\"","test":"NODE_ENV=test run-s test:*","test:node":"NODE_ENV=test TS_NODE_PROJECT=./tsconfig.dev.json mocha","test:browser":"NODE_ENV=test karma start karma.conf.cjs","watch:build":"tsc -p tsconfig.json -w","watch:test":"mocha --watch","prepublish":"npm run build","reset-hard":"git clean -dfx -e .idea && git reset --hard && npm i && npm run build"},"engines":{"node":">=18"},"dependencies":{"@libp2p/ping":"^1.1.2","@waku/enr":"0.0.25-409642d.0","@waku/interfaces":"0.0.26-409642d.0","@waku/proto":"0.0.8-409642d.0","@waku/utils":"0.0.19-409642d.0","debug":"^4.3.4","it-all":"^3.0.4","it-length-prefixed":"^9.0.4","it-pipe":"^3.0.1","p-event":"^6.0.1","uint8arraylist":"^2.4.3","uuid":"^9.0.0"},"devDependencies":{"@multiformats/multiaddr":"^12.0.0","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.2.3","@types/chai":"^4.3.11","@types/debug":"^4.1.12","@types/mocha":"^10.0.6","@types/uuid":"^9.0.8","@waku/build-utils":"*","chai":"^4.3.10","cspell":"^8.6.1","fast-check":"^3.19.0","ignore-loader":"^0.1.2","isomorphic-fetch":"^3.0.0","mocha":"^10.3.0","npm-run-all":"^4.1.5","process":"^0.11.10","rollup":"^4.12.0"},"peerDependencies":{"@multiformats/multiaddr":"^12.0.0","libp2p":"^1.8.1","@waku/enr":"0.0.25-409642d.0","@waku/interfaces":"0.0.26-409642d.0","@waku/proto":"0.0.8-409642d.0","@waku/utils":"0.0.19-409642d.0"},"peerDependenciesMeta":{"@multiformats/multiaddr":{"optional":true},"@waku/interfaces":{"optional":true}},"files":["dist","bundle","src/**/*.ts","!**/*.spec.*","!**/*.json","CHANGELOG.md","LICENSE","README.md"]}
|
package/src/lib/base_protocol.ts
CHANGED
@@ -3,10 +3,9 @@ import type { Peer, PeerStore, Stream } from "@libp2p/interface";
|
|
3
3
|
import type {
|
4
4
|
IBaseProtocolCore,
|
5
5
|
Libp2pComponents,
|
6
|
-
ProtocolCreateOptions,
|
7
6
|
PubsubTopic
|
8
7
|
} from "@waku/interfaces";
|
9
|
-
import {
|
8
|
+
import { Logger, pubsubTopicsToShardInfo } from "@waku/utils";
|
10
9
|
import {
|
11
10
|
getConnectedPeersForProtocolAndShard,
|
12
11
|
getPeersForProtocol,
|
@@ -29,8 +28,7 @@ export class BaseProtocol implements IBaseProtocolCore {
|
|
29
28
|
public multicodec: string,
|
30
29
|
private components: Libp2pComponents,
|
31
30
|
private log: Logger,
|
32
|
-
public readonly pubsubTopics: PubsubTopic[]
|
33
|
-
private options?: ProtocolCreateOptions
|
31
|
+
public readonly pubsubTopics: PubsubTopic[]
|
34
32
|
) {
|
35
33
|
this.addLibp2pEventListener = components.events.addEventListener.bind(
|
36
34
|
components.events
|
@@ -100,9 +98,7 @@ export class BaseProtocol implements IBaseProtocolCore {
|
|
100
98
|
this.components.connectionManager.getConnections(),
|
101
99
|
this.peerStore,
|
102
100
|
[this.multicodec],
|
103
|
-
this.
|
104
|
-
? ensureShardingConfigured(this.options.shardInfo).shardInfo
|
105
|
-
: undefined
|
101
|
+
pubsubTopicsToShardInfo(this.pubsubTopics)
|
106
102
|
);
|
107
103
|
|
108
104
|
// Filter the peers based on discovery & number of peers requested
|
@@ -173,7 +173,7 @@ export class ConnectionManager
|
|
173
173
|
private constructor(
|
174
174
|
libp2p: Libp2p,
|
175
175
|
keepAliveOptions: KeepAliveOptions,
|
176
|
-
|
176
|
+
public readonly configuredPubsubTopics: PubsubTopic[],
|
177
177
|
relay?: IRelay,
|
178
178
|
options?: Partial<ConnectionManagerOptions>
|
179
179
|
) {
|
package/src/lib/filter/index.ts
CHANGED
@@ -5,7 +5,6 @@ import {
|
|
5
5
|
type CoreProtocolResult,
|
6
6
|
type IBaseProtocolCore,
|
7
7
|
type Libp2p,
|
8
|
-
type ProtocolCreateOptions,
|
9
8
|
ProtocolError,
|
10
9
|
type PubsubTopic
|
11
10
|
} from "@waku/interfaces";
|
@@ -38,16 +37,10 @@ export class FilterCore extends BaseProtocol implements IBaseProtocolCore {
|
|
38
37
|
wakuMessage: WakuMessage,
|
39
38
|
peerIdStr: string
|
40
39
|
) => Promise<void>,
|
41
|
-
|
42
|
-
|
40
|
+
public readonly pubsubTopics: PubsubTopic[],
|
41
|
+
libp2p: Libp2p
|
43
42
|
) {
|
44
|
-
super(
|
45
|
-
FilterCodecs.SUBSCRIBE,
|
46
|
-
libp2p.components,
|
47
|
-
log,
|
48
|
-
options!.pubsubTopics!,
|
49
|
-
options
|
50
|
-
);
|
43
|
+
super(FilterCodecs.SUBSCRIBE, libp2p.components, log, pubsubTopics);
|
51
44
|
|
52
45
|
libp2p
|
53
46
|
.handle(FilterCodecs.PUSH, this.onRequest.bind(this), {
|
@@ -5,8 +5,8 @@ import {
|
|
5
5
|
type IEncoder,
|
6
6
|
type IMessage,
|
7
7
|
type Libp2p,
|
8
|
-
type ProtocolCreateOptions,
|
9
8
|
ProtocolError,
|
9
|
+
PubsubTopic,
|
10
10
|
type ThisOrThat
|
11
11
|
} from "@waku/interfaces";
|
12
12
|
import { PushResponse } from "@waku/proto";
|
@@ -32,14 +32,11 @@ type PreparePushMessageResult = ThisOrThat<"query", PushRpc>;
|
|
32
32
|
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
33
33
|
*/
|
34
34
|
export class LightPushCore extends BaseProtocol implements IBaseProtocolCore {
|
35
|
-
public constructor(
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
options!.pubsubTopics!,
|
41
|
-
options
|
42
|
-
);
|
35
|
+
public constructor(
|
36
|
+
public readonly pubsubTopics: PubsubTopic[],
|
37
|
+
libp2p: Libp2p
|
38
|
+
) {
|
39
|
+
super(LightPushCodec, libp2p.components, log, pubsubTopics);
|
43
40
|
}
|
44
41
|
|
45
42
|
private async preparePushMessage(
|
@@ -6,10 +6,11 @@ import {
|
|
6
6
|
type MetadataQueryResult,
|
7
7
|
type PeerIdStr,
|
8
8
|
ProtocolError,
|
9
|
+
PubsubTopic,
|
9
10
|
type ShardInfo
|
10
11
|
} from "@waku/interfaces";
|
11
12
|
import { proto_metadata } from "@waku/proto";
|
12
|
-
import { encodeRelayShard, Logger,
|
13
|
+
import { encodeRelayShard, Logger, pubsubTopicsToShardInfo } from "@waku/utils";
|
13
14
|
import all from "it-all";
|
14
15
|
import * as lp from "it-length-prefixed";
|
15
16
|
import { pipe } from "it-pipe";
|
@@ -26,15 +27,10 @@ class Metadata extends BaseProtocol implements IMetadata {
|
|
26
27
|
protected handshakesConfirmed: Map<PeerIdStr, ShardInfo> = new Map();
|
27
28
|
|
28
29
|
public constructor(
|
29
|
-
public
|
30
|
+
public pubsubTopics: PubsubTopic[],
|
30
31
|
libp2p: Libp2pComponents
|
31
32
|
) {
|
32
|
-
super(
|
33
|
-
MetadataCodec,
|
34
|
-
libp2p.components,
|
35
|
-
log,
|
36
|
-
shardInfoToPubsubTopics(shardInfo)
|
37
|
-
);
|
33
|
+
super(MetadataCodec, libp2p.components, log, pubsubTopics);
|
38
34
|
this.libp2pComponents = libp2p;
|
39
35
|
void libp2p.registrar.handle(MetadataCodec, (streamData) => {
|
40
36
|
void this.onRequest(streamData);
|
@@ -45,7 +41,9 @@ class Metadata extends BaseProtocol implements IMetadata {
|
|
45
41
|
* Make a metadata query to a peer
|
46
42
|
*/
|
47
43
|
public async query(peerId: PeerId): Promise<MetadataQueryResult> {
|
48
|
-
const request = proto_metadata.WakuMetadataRequest.encode(
|
44
|
+
const request = proto_metadata.WakuMetadataRequest.encode(
|
45
|
+
pubsubTopicsToShardInfo(this.pubsubTopics)
|
46
|
+
);
|
49
47
|
|
50
48
|
const peer = await this.peerStore.get(peerId);
|
51
49
|
if (!peer) {
|
@@ -112,7 +110,7 @@ class Metadata extends BaseProtocol implements IMetadata {
|
|
112
110
|
try {
|
113
111
|
const { stream, connection } = streamData;
|
114
112
|
const encodedShardInfo = proto_metadata.WakuMetadataResponse.encode(
|
115
|
-
this.
|
113
|
+
pubsubTopicsToShardInfo(this.pubsubTopics)
|
116
114
|
);
|
117
115
|
|
118
116
|
const encodedResponse = await pipe(
|
@@ -177,7 +175,8 @@ class Metadata extends BaseProtocol implements IMetadata {
|
|
177
175
|
}
|
178
176
|
|
179
177
|
export function wakuMetadata(
|
180
|
-
|
178
|
+
pubsubTopics: PubsubTopic[]
|
181
179
|
): (components: Libp2pComponents) => IMetadata {
|
182
|
-
return (components: Libp2pComponents) =>
|
180
|
+
return (components: Libp2pComponents) =>
|
181
|
+
new Metadata(pubsubTopics, components);
|
183
182
|
}
|
package/src/lib/store/index.ts
CHANGED
@@ -4,7 +4,7 @@ import {
|
|
4
4
|
IDecoder,
|
5
5
|
IStoreCore,
|
6
6
|
Libp2p,
|
7
|
-
|
7
|
+
PubsubTopic,
|
8
8
|
QueryRequestParams
|
9
9
|
} from "@waku/interfaces";
|
10
10
|
import { Logger } from "@waku/utils";
|
@@ -28,14 +28,11 @@ const log = new Logger("store");
|
|
28
28
|
export const StoreCodec = "/vac/waku/store-query/3.0.0";
|
29
29
|
|
30
30
|
export class StoreCore extends BaseProtocol implements IStoreCore {
|
31
|
-
public constructor(
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
options?.pubsubTopics || [],
|
37
|
-
options
|
38
|
-
);
|
31
|
+
public constructor(
|
32
|
+
public readonly pubsubTopics: PubsubTopic[],
|
33
|
+
libp2p: Libp2p
|
34
|
+
) {
|
35
|
+
super(StoreCodec, libp2p.components, log, pubsubTopics);
|
39
36
|
}
|
40
37
|
|
41
38
|
public async *queryPerPage<T extends IDecodedMessage>(
|