@waku/core 0.0.39-9684e7b.0 → 0.0.39-c0ee9ec.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.
Files changed (49) hide show
  1. package/bundle/index.js +497 -256
  2. package/bundle/lib/message/version_0.js +1 -1
  3. package/bundle/{version_0-DV1Db0r-.js → version_0-DQUncDnb.js} +3 -3
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/connection_manager/connection_limiter.js +3 -3
  9. package/dist/lib/connection_manager/connection_limiter.js.map +1 -1
  10. package/dist/lib/connection_manager/network_monitor.js +1 -2
  11. package/dist/lib/connection_manager/network_monitor.js.map +1 -1
  12. package/dist/lib/filter/filter.d.ts +6 -6
  13. package/dist/lib/filter/filter.js +14 -14
  14. package/dist/lib/filter/filter.js.map +1 -1
  15. package/dist/lib/light_push/index.d.ts +1 -1
  16. package/dist/lib/light_push/index.js +1 -1
  17. package/dist/lib/light_push/index.js.map +1 -1
  18. package/dist/lib/light_push/light_push.d.ts +8 -6
  19. package/dist/lib/light_push/light_push.js +40 -79
  20. package/dist/lib/light_push/light_push.js.map +1 -1
  21. package/dist/lib/light_push/protocol_handler.d.ts +27 -0
  22. package/dist/lib/light_push/protocol_handler.js +145 -0
  23. package/dist/lib/light_push/protocol_handler.js.map +1 -0
  24. package/dist/lib/light_push/push_rpc.d.ts +3 -3
  25. package/dist/lib/light_push/push_rpc.js +3 -3
  26. package/dist/lib/light_push/push_rpc.js.map +1 -1
  27. package/dist/lib/light_push/push_rpc_v3.d.ts +73 -0
  28. package/dist/lib/light_push/push_rpc_v3.js +136 -0
  29. package/dist/lib/light_push/push_rpc_v3.js.map +1 -0
  30. package/dist/lib/metadata/metadata.js +1 -1
  31. package/dist/lib/metadata/metadata.js.map +1 -1
  32. package/dist/lib/store/store.d.ts +1 -1
  33. package/dist/lib/store/store.js +1 -1
  34. package/dist/lib/store/store.js.map +1 -1
  35. package/dist/lib/stream_manager/stream_manager.d.ts +1 -1
  36. package/dist/lib/stream_manager/stream_manager.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/index.ts +5 -1
  39. package/src/lib/connection_manager/connection_limiter.ts +3 -7
  40. package/src/lib/connection_manager/network_monitor.ts +2 -2
  41. package/src/lib/filter/filter.ts +19 -19
  42. package/src/lib/light_push/index.ts +5 -1
  43. package/src/lib/light_push/light_push.ts +59 -106
  44. package/src/lib/light_push/protocol_handler.ts +192 -0
  45. package/src/lib/light_push/push_rpc.ts +5 -5
  46. package/src/lib/light_push/push_rpc_v3.ts +162 -0
  47. package/src/lib/metadata/metadata.ts +1 -1
  48. package/src/lib/store/store.ts +1 -1
  49. package/src/lib/stream_manager/stream_manager.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { PeerId } from "@libp2p/interface";
2
- import { type ContentTopic, type CoreProtocolResult, type Libp2p, type PubsubTopic } from "@waku/interfaces";
2
+ import { type ContentTopic, type FilterCoreResult, type Libp2p, type PubsubTopic } from "@waku/interfaces";
3
3
  import { WakuMessage } from "@waku/proto";
4
4
  export declare const FilterCodecs: {
5
5
  SUBSCRIBE: string;
@@ -9,12 +9,12 @@ type IncomingMessageHandler = (pubsubTopic: PubsubTopic, wakuMessage: WakuMessag
9
9
  export declare class FilterCore {
10
10
  private handleIncomingMessage;
11
11
  private streamManager;
12
- readonly multicodec: string;
12
+ readonly multicodec: string[];
13
13
  constructor(handleIncomingMessage: IncomingMessageHandler, libp2p: Libp2p);
14
- subscribe(pubsubTopic: PubsubTopic, peerId: PeerId, contentTopics: ContentTopic[]): Promise<CoreProtocolResult>;
15
- unsubscribe(pubsubTopic: PubsubTopic, peerId: PeerId, contentTopics: ContentTopic[]): Promise<CoreProtocolResult>;
16
- unsubscribeAll(pubsubTopic: PubsubTopic, peerId: PeerId): Promise<CoreProtocolResult>;
17
- ping(peerId: PeerId): Promise<CoreProtocolResult>;
14
+ subscribe(pubsubTopic: PubsubTopic, peerId: PeerId, contentTopics: ContentTopic[]): Promise<FilterCoreResult>;
15
+ unsubscribe(pubsubTopic: PubsubTopic, peerId: PeerId, contentTopics: ContentTopic[]): Promise<FilterCoreResult>;
16
+ unsubscribeAll(pubsubTopic: PubsubTopic, peerId: PeerId): Promise<FilterCoreResult>;
17
+ ping(peerId: PeerId): Promise<FilterCoreResult>;
18
18
  private onRequest;
19
19
  }
20
20
  export {};
@@ -1,4 +1,4 @@
1
- import { ProtocolError } from "@waku/interfaces";
1
+ import { FilterError } from "@waku/interfaces";
2
2
  import { Logger } from "@waku/utils";
3
3
  import all from "it-all";
4
4
  import * as lp from "it-length-prefixed";
@@ -13,7 +13,7 @@ export const FilterCodecs = {
13
13
  export class FilterCore {
14
14
  handleIncomingMessage;
15
15
  streamManager;
16
- multicodec = FilterCodecs.SUBSCRIBE;
16
+ multicodec = [FilterCodecs.SUBSCRIBE];
17
17
  constructor(handleIncomingMessage, libp2p) {
18
18
  this.handleIncomingMessage = handleIncomingMessage;
19
19
  this.streamManager = new StreamManager(FilterCodecs.SUBSCRIBE, libp2p.components);
@@ -31,7 +31,7 @@ export class FilterCore {
31
31
  return {
32
32
  success: null,
33
33
  failure: {
34
- error: ProtocolError.NO_STREAM_AVAILABLE,
34
+ error: FilterError.NO_STREAM_AVAILABLE,
35
35
  peerId: peerId
36
36
  }
37
37
  };
@@ -49,7 +49,7 @@ export class FilterCore {
49
49
  return {
50
50
  success: null,
51
51
  failure: {
52
- error: ProtocolError.GENERIC_FAIL,
52
+ error: FilterError.GENERIC_FAIL,
53
53
  peerId: peerId
54
54
  }
55
55
  };
@@ -59,7 +59,7 @@ export class FilterCore {
59
59
  log.error(`Filter subscribe request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
60
60
  return {
61
61
  failure: {
62
- error: ProtocolError.REMOTE_PEER_REJECTED,
62
+ error: FilterError.REMOTE_PEER_REJECTED,
63
63
  peerId: peerId
64
64
  },
65
65
  success: null
@@ -77,7 +77,7 @@ export class FilterCore {
77
77
  return {
78
78
  success: null,
79
79
  failure: {
80
- error: ProtocolError.NO_STREAM_AVAILABLE,
80
+ error: FilterError.NO_STREAM_AVAILABLE,
81
81
  peerId: peerId
82
82
  }
83
83
  };
@@ -91,7 +91,7 @@ export class FilterCore {
91
91
  return {
92
92
  success: null,
93
93
  failure: {
94
- error: ProtocolError.GENERIC_FAIL,
94
+ error: FilterError.GENERIC_FAIL,
95
95
  peerId: peerId
96
96
  }
97
97
  };
@@ -108,7 +108,7 @@ export class FilterCore {
108
108
  return {
109
109
  success: null,
110
110
  failure: {
111
- error: ProtocolError.NO_STREAM_AVAILABLE,
111
+ error: FilterError.NO_STREAM_AVAILABLE,
112
112
  peerId: peerId
113
113
  }
114
114
  };
@@ -118,7 +118,7 @@ export class FilterCore {
118
118
  if (!res || !res.length) {
119
119
  return {
120
120
  failure: {
121
- error: ProtocolError.NO_RESPONSE,
121
+ error: FilterError.NO_RESPONSE,
122
122
  peerId: peerId
123
123
  },
124
124
  success: null
@@ -129,7 +129,7 @@ export class FilterCore {
129
129
  log.error(`Filter unsubscribe all request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
130
130
  return {
131
131
  failure: {
132
- error: ProtocolError.REMOTE_PEER_REJECTED,
132
+ error: FilterError.REMOTE_PEER_REJECTED,
133
133
  peerId: peerId
134
134
  },
135
135
  success: null
@@ -147,7 +147,7 @@ export class FilterCore {
147
147
  return {
148
148
  success: null,
149
149
  failure: {
150
- error: ProtocolError.NO_STREAM_AVAILABLE,
150
+ error: FilterError.NO_STREAM_AVAILABLE,
151
151
  peerId: peerId
152
152
  }
153
153
  };
@@ -162,7 +162,7 @@ export class FilterCore {
162
162
  return {
163
163
  success: null,
164
164
  failure: {
165
- error: ProtocolError.GENERIC_FAIL,
165
+ error: FilterError.GENERIC_FAIL,
166
166
  peerId: peerId
167
167
  }
168
168
  };
@@ -171,7 +171,7 @@ export class FilterCore {
171
171
  return {
172
172
  success: null,
173
173
  failure: {
174
- error: ProtocolError.NO_RESPONSE,
174
+ error: FilterError.NO_RESPONSE,
175
175
  peerId: peerId
176
176
  }
177
177
  };
@@ -182,7 +182,7 @@ export class FilterCore {
182
182
  return {
183
183
  success: null,
184
184
  failure: {
185
- error: ProtocolError.REMOTE_PEER_REJECTED,
185
+ error: FilterError.REMOTE_PEER_REJECTED,
186
186
  peerId: peerId
187
187
  }
188
188
  };
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/lib/filter/filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/lib/filter/filter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export { LightPushCore, LightPushCodec, PushResponse } from "./light_push.js";
1
+ export { LightPushCore, LightPushCodec, LightPushCodecV2 } from "./light_push.js";
@@ -1,2 +1,2 @@
1
- export { LightPushCore, LightPushCodec, PushResponse } from "./light_push.js";
1
+ export { LightPushCore, LightPushCodec, LightPushCodecV2 } from "./light_push.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/light_push/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,iBAAiB,CAAC"}
@@ -1,15 +1,17 @@
1
1
  import type { PeerId } from "@libp2p/interface";
2
- import { type CoreProtocolResult, type IEncoder, type IMessage, type Libp2p } from "@waku/interfaces";
2
+ import { type IEncoder, type IMessage, type Libp2p, type LightPushCoreResult } from "@waku/interfaces";
3
3
  import { PushResponse } from "@waku/proto";
4
- export declare const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
5
4
  export { PushResponse };
5
+ export declare const LightPushCodec: "/vac/waku/lightpush/3.0.0";
6
+ export declare const LightPushCodecV2: "/vac/waku/lightpush/2.0.0-beta1";
6
7
  /**
7
8
  * Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
8
9
  */
9
10
  export declare class LightPushCore {
11
+ private libp2p;
10
12
  private readonly streamManager;
11
- readonly multicodec = "/vac/waku/lightpush/2.0.0-beta1";
12
- constructor(libp2p: Libp2p);
13
- private preparePushMessage;
14
- send(encoder: IEncoder, message: IMessage, peerId: PeerId): Promise<CoreProtocolResult>;
13
+ private readonly streamManagerV2;
14
+ readonly multicodec: ("/vac/waku/lightpush/2.0.0-beta1" | "/vac/waku/lightpush/3.0.0")[];
15
+ constructor(libp2p: Libp2p, legacy?: boolean);
16
+ send(encoder: IEncoder, message: IMessage, peerId: PeerId): Promise<LightPushCoreResult>;
15
17
  }
@@ -1,141 +1,102 @@
1
- import { ProtocolError } from "@waku/interfaces";
1
+ import { LightPushError } from "@waku/interfaces";
2
2
  import { PushResponse } from "@waku/proto";
3
- import { isMessageSizeUnderCap } from "@waku/utils";
4
3
  import { Logger } from "@waku/utils";
5
4
  import all from "it-all";
6
5
  import * as lp from "it-length-prefixed";
7
6
  import { pipe } from "it-pipe";
8
7
  import { Uint8ArrayList } from "uint8arraylist";
9
8
  import { StreamManager } from "../stream_manager/index.js";
10
- import { PushRpc } from "./push_rpc.js";
11
- import { isRLNResponseError } from "./utils.js";
9
+ import { CODECS, ProtocolHandler } from "./protocol_handler.js";
12
10
  const log = new Logger("light-push");
13
- export const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
14
11
  export { PushResponse };
12
+ export const LightPushCodec = CODECS.v3;
13
+ export const LightPushCodecV2 = CODECS.v2;
15
14
  /**
16
15
  * Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
17
16
  */
18
17
  export class LightPushCore {
18
+ libp2p;
19
19
  streamManager;
20
- multicodec = LightPushCodec;
21
- constructor(libp2p) {
22
- this.streamManager = new StreamManager(LightPushCodec, libp2p.components);
20
+ streamManagerV2;
21
+ multicodec = [CODECS.v3, CODECS.v2];
22
+ constructor(libp2p, legacy) {
23
+ this.libp2p = libp2p;
24
+ this.streamManagerV2 = new StreamManager(CODECS.v2, libp2p.components);
25
+ this.streamManager = legacy
26
+ ? this.streamManagerV2
27
+ : new StreamManager(CODECS.v3, libp2p.components);
23
28
  }
24
- async preparePushMessage(encoder, message) {
29
+ async send(encoder, message, peerId) {
30
+ let stream;
31
+ let protocol;
25
32
  try {
26
- if (!message.payload || message.payload.length === 0) {
27
- log.error("Failed to send waku light push: payload is empty");
28
- return { query: null, error: ProtocolError.EMPTY_PAYLOAD };
29
- }
30
- if (!(await isMessageSizeUnderCap(encoder, message))) {
31
- log.error("Failed to send waku light push: message is bigger than 1MB");
32
- return { query: null, error: ProtocolError.SIZE_TOO_BIG };
33
+ const peer = await this.libp2p.peerStore.get(peerId);
34
+ if (this.streamManager.multicodec === CODECS.v3 &&
35
+ peer.protocols.includes(CODECS.v3)) {
36
+ stream = await this.streamManager.getStream(peerId);
37
+ protocol = CODECS.v3;
33
38
  }
34
- const protoMessage = await encoder.toProtoObj(message);
35
- if (!protoMessage) {
36
- log.error("Failed to encode to protoMessage, aborting push");
37
- return {
38
- query: null,
39
- error: ProtocolError.ENCODE_FAILED
40
- };
39
+ else {
40
+ stream = await this.streamManagerV2.getStream(peerId);
41
+ protocol = CODECS.v2;
41
42
  }
42
- const query = PushRpc.createRequest(protoMessage, encoder.pubsubTopic);
43
- return { query, error: null };
44
43
  }
45
44
  catch (error) {
46
- log.error("Failed to prepare push message", error);
47
- return {
48
- query: null,
49
- error: ProtocolError.GENERIC_FAIL
50
- };
51
- }
52
- }
53
- async send(encoder, message, peerId) {
54
- const { query, error: preparationError } = await this.preparePushMessage(encoder, message);
55
- if (preparationError || !query) {
45
+ log.error("Failed to get stream", error);
56
46
  return {
57
47
  success: null,
58
48
  failure: {
59
- error: preparationError,
49
+ error: LightPushError.GENERIC_FAIL,
60
50
  peerId
61
51
  }
62
52
  };
63
53
  }
64
- const stream = await this.streamManager.getStream(peerId);
65
54
  if (!stream) {
66
55
  log.error(`Failed to get a stream for remote peer:${peerId.toString()}`);
67
56
  return {
68
57
  success: null,
69
58
  failure: {
70
- error: ProtocolError.NO_STREAM_AVAILABLE,
59
+ error: LightPushError.NO_STREAM_AVAILABLE,
71
60
  peerId: peerId
72
61
  }
73
62
  };
74
63
  }
75
- let res;
76
- try {
77
- res = await pipe([query.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
78
- }
79
- catch (err) {
80
- // can fail only because of `stream` abortion
81
- log.error("Failed to send waku light push request", err);
64
+ const { rpc, error: prepError } = await ProtocolHandler.preparePushMessage(encoder, message, protocol);
65
+ if (prepError || !rpc) {
82
66
  return {
83
67
  success: null,
84
68
  failure: {
85
- error: ProtocolError.STREAM_ABORTED,
86
- peerId: peerId
69
+ error: prepError ?? LightPushError.GENERIC_FAIL,
70
+ peerId
87
71
  }
88
72
  };
89
73
  }
90
- const bytes = new Uint8ArrayList();
91
- res.forEach((chunk) => {
92
- bytes.append(chunk);
93
- });
94
- let response;
74
+ let res;
95
75
  try {
96
- response = PushRpc.decode(bytes).response;
76
+ res = await pipe([rpc.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
97
77
  }
98
78
  catch (err) {
99
- log.error("Failed to decode push reply", err);
100
- return {
101
- success: null,
102
- failure: {
103
- error: ProtocolError.DECODE_FAILED,
104
- peerId: peerId
105
- }
106
- };
107
- }
108
- if (!response) {
109
- log.error("Remote peer fault: No response in PushRPC");
110
- return {
111
- success: null,
112
- failure: {
113
- error: ProtocolError.NO_RESPONSE,
114
- peerId: peerId
115
- }
116
- };
117
- }
118
- if (isRLNResponseError(response.info)) {
119
- log.error("Remote peer fault: RLN generation");
79
+ log.error("Failed to send waku light push request", err);
120
80
  return {
121
81
  success: null,
122
82
  failure: {
123
- error: ProtocolError.RLN_PROOF_GENERATION,
83
+ error: LightPushError.STREAM_ABORTED,
124
84
  peerId: peerId
125
85
  }
126
86
  };
127
87
  }
128
- if (!response.isSuccess) {
129
- log.error("Remote peer rejected the message: ", response.info);
88
+ const bytes = new Uint8ArrayList();
89
+ res.forEach((chunk) => bytes.append(chunk));
90
+ if (bytes.length === 0) {
130
91
  return {
131
92
  success: null,
132
93
  failure: {
133
- error: ProtocolError.REMOTE_PEER_REJECTED,
94
+ error: LightPushError.NO_RESPONSE,
134
95
  peerId: peerId
135
96
  }
136
97
  };
137
98
  }
138
- return { success: peerId, failure: null };
99
+ return ProtocolHandler.handleResponse(bytes, protocol, peerId);
139
100
  }
140
101
  }
141
102
  //# sourceMappingURL=light_push.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"light_push.js","sourceRoot":"","sources":["../../../src/lib/light_push/light_push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"light_push.js","sourceRoot":"","sources":["../../../src/lib/light_push/light_push.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { PeerId } from "@libp2p/interface";
2
+ import type { IEncoder, IMessage, LightPushCoreResult } from "@waku/interfaces";
3
+ import { LightPushError } from "@waku/interfaces";
4
+ import { Uint8ArrayList } from "uint8arraylist";
5
+ import { PushRpcV2 } from "./push_rpc.js";
6
+ import { PushRpc } from "./push_rpc_v3.js";
7
+ export type VersionedPushRpc = ({
8
+ version: "v2";
9
+ } & PushRpcV2) | ({
10
+ version: "v3";
11
+ } & PushRpc);
12
+ export declare const CODECS: {
13
+ readonly v2: "/vac/waku/lightpush/2.0.0-beta1";
14
+ readonly v3: "/vac/waku/lightpush/3.0.0";
15
+ };
16
+ export declare class ProtocolHandler {
17
+ static preparePushMessage(encoder: IEncoder, message: IMessage, protocol: string): Promise<{
18
+ rpc: VersionedPushRpc | null;
19
+ error: LightPushError | null;
20
+ }>;
21
+ /**
22
+ * Decode and evaluate a LightPush response according to the protocol version
23
+ */
24
+ static handleResponse(bytes: Uint8ArrayList, protocol: string, peerId: PeerId): LightPushCoreResult;
25
+ private static handleV3Response;
26
+ private static handleV2Response;
27
+ }
@@ -0,0 +1,145 @@
1
+ import { LightPushError, LightPushStatusCode } from "@waku/interfaces";
2
+ import { isMessageSizeUnderCap, Logger } from "@waku/utils";
3
+ import { PushRpcV2 } from "./push_rpc.js";
4
+ import { PushRpc } from "./push_rpc_v3.js";
5
+ import { isRLNResponseError } from "./utils.js";
6
+ export const CODECS = {
7
+ v2: "/vac/waku/lightpush/2.0.0-beta1",
8
+ v3: "/vac/waku/lightpush/3.0.0"
9
+ };
10
+ const log = new Logger("light-push:protocol-handler");
11
+ export class ProtocolHandler {
12
+ static async preparePushMessage(encoder, message, protocol) {
13
+ try {
14
+ if (!message.payload || message.payload.length === 0) {
15
+ log.error("Failed to send waku light push: payload is empty");
16
+ return { rpc: null, error: LightPushError.EMPTY_PAYLOAD };
17
+ }
18
+ if (!(await isMessageSizeUnderCap(encoder, message))) {
19
+ log.error("Failed to send waku light push: message is bigger than 1MB");
20
+ return { rpc: null, error: LightPushError.SIZE_TOO_BIG };
21
+ }
22
+ const protoMessage = await encoder.toProtoObj(message);
23
+ if (!protoMessage) {
24
+ log.error("Failed to encode to protoMessage, aborting push");
25
+ return { rpc: null, error: LightPushError.ENCODE_FAILED };
26
+ }
27
+ // Select version implementation
28
+ if (protocol === CODECS.v3) {
29
+ log.info("Creating v3 RPC message");
30
+ return {
31
+ rpc: createV3Rpc(protoMessage, encoder.pubsubTopic),
32
+ error: null
33
+ };
34
+ }
35
+ // Default to v2
36
+ log.info("Creating v2 RPC message");
37
+ return {
38
+ rpc: createV2Rpc(protoMessage, encoder.pubsubTopic),
39
+ error: null
40
+ };
41
+ }
42
+ catch (err) {
43
+ log.error("Failed to prepare push message", err);
44
+ return { rpc: null, error: LightPushError.GENERIC_FAIL };
45
+ }
46
+ }
47
+ /**
48
+ * Decode and evaluate a LightPush response according to the protocol version
49
+ */
50
+ static handleResponse(bytes, protocol, peerId) {
51
+ if (protocol === CODECS.v3) {
52
+ return ProtocolHandler.handleV3Response(bytes, peerId);
53
+ }
54
+ return ProtocolHandler.handleV2Response(bytes, peerId);
55
+ }
56
+ static handleV3Response(bytes, peerId) {
57
+ try {
58
+ const decodedRpcV3 = PushRpc.decodeResponse(bytes);
59
+ const statusCode = decodedRpcV3.statusCode;
60
+ const statusDesc = decodedRpcV3.statusDesc;
61
+ if (statusCode !== LightPushStatusCode.SUCCESS) {
62
+ const error = LightPushError.REMOTE_PEER_REJECTED;
63
+ log.error(`Remote peer rejected with v3 status code ${statusCode}: ${statusDesc}`);
64
+ return {
65
+ success: null,
66
+ failure: {
67
+ error,
68
+ peerId: peerId
69
+ }
70
+ };
71
+ }
72
+ if (decodedRpcV3.relayPeerCount !== undefined) {
73
+ log.info(`Message relayed to ${decodedRpcV3.relayPeerCount} peers`);
74
+ }
75
+ return { success: peerId, failure: null };
76
+ }
77
+ catch (err) {
78
+ return {
79
+ success: null,
80
+ failure: {
81
+ error: LightPushError.DECODE_FAILED,
82
+ peerId: peerId
83
+ }
84
+ };
85
+ }
86
+ }
87
+ static handleV2Response(bytes, peerId) {
88
+ let response;
89
+ try {
90
+ const decodedRpc = PushRpcV2.decode(bytes);
91
+ response = decodedRpc.response;
92
+ }
93
+ catch (err) {
94
+ return {
95
+ success: null,
96
+ failure: {
97
+ error: LightPushError.DECODE_FAILED,
98
+ peerId: peerId
99
+ }
100
+ };
101
+ }
102
+ if (!response) {
103
+ return {
104
+ success: null,
105
+ failure: {
106
+ error: LightPushError.NO_RESPONSE,
107
+ peerId: peerId
108
+ }
109
+ };
110
+ }
111
+ if (isRLNResponseError(response.info)) {
112
+ log.error("Remote peer fault: RLN generation");
113
+ return {
114
+ success: null,
115
+ failure: {
116
+ error: LightPushError.RLN_PROOF_GENERATION,
117
+ peerId: peerId
118
+ }
119
+ };
120
+ }
121
+ if (!response.isSuccess) {
122
+ log.error("Remote peer rejected the message: ", response.info);
123
+ return {
124
+ success: null,
125
+ failure: {
126
+ error: LightPushError.REMOTE_PEER_REJECTED,
127
+ peerId: peerId
128
+ }
129
+ };
130
+ }
131
+ return { success: peerId, failure: null };
132
+ }
133
+ }
134
+ function createV2Rpc(message, pubsubTopic) {
135
+ const v2Rpc = PushRpcV2.createRequest(message, pubsubTopic);
136
+ return Object.assign(v2Rpc, { version: "v2" });
137
+ }
138
+ function createV3Rpc(message, pubsubTopic) {
139
+ if (!message.timestamp) {
140
+ message.timestamp = BigInt(Date.now()) * BigInt(1_000_000);
141
+ }
142
+ const v3Rpc = PushRpc.createRequest(message, pubsubTopic);
143
+ return Object.assign(v3Rpc, { version: "v3" });
144
+ }
145
+ //# sourceMappingURL=protocol_handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol_handler.js","sourceRoot":"","sources":["../../../src/lib/light_push/protocol_handler.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { proto_lightpush as proto } from "@waku/proto";
2
2
  import type { Uint8ArrayList } from "uint8arraylist";
3
- export declare class PushRpc {
3
+ export declare class PushRpcV2 {
4
4
  proto: proto.PushRpc;
5
5
  constructor(proto: proto.PushRpc);
6
- static createRequest(message: proto.WakuMessage, pubsubTopic: string): PushRpc;
7
- static decode(bytes: Uint8ArrayList): PushRpc;
6
+ static createRequest(message: proto.WakuMessage, pubsubTopic: string): PushRpcV2;
7
+ static decode(bytes: Uint8ArrayList): PushRpcV2;
8
8
  encode(): Uint8Array;
9
9
  get query(): proto.PushRequest | undefined;
10
10
  get response(): proto.PushResponse | undefined;