@waku/core 0.0.36-16328a3.0 → 0.0.36-3730abc.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 (61) hide show
  1. package/bundle/index.js +476 -54
  2. package/bundle/lib/message/version_0.js +1 -1
  3. package/bundle/{version_0-CiYGrPc2.js → version_0-y7BmRolm.js} +919 -184
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/connection_manager/connection_manager.d.ts +1 -1
  9. package/dist/lib/connection_manager/connection_manager.js +1 -1
  10. package/dist/lib/light_push/index.d.ts +5 -1
  11. package/dist/lib/light_push/index.js +5 -1
  12. package/dist/lib/light_push/index.js.map +1 -1
  13. package/dist/lib/light_push/light_push.d.ts +3 -4
  14. package/dist/lib/light_push/light_push.js +18 -19
  15. package/dist/lib/light_push/light_push.js.map +1 -1
  16. package/dist/lib/light_push/light_push_v3.d.ts +10 -0
  17. package/dist/lib/light_push/light_push_v3.js +172 -0
  18. package/dist/lib/light_push/light_push_v3.js.map +1 -0
  19. package/dist/lib/light_push/push_rpc.d.ts +1 -1
  20. package/dist/lib/light_push/push_rpc.js.map +1 -1
  21. package/dist/lib/light_push/push_rpc_v2.d.ts +11 -0
  22. package/dist/lib/light_push/push_rpc_v2.js +32 -0
  23. package/dist/lib/light_push/push_rpc_v2.js.map +1 -0
  24. package/dist/lib/light_push/push_rpc_v3.d.ts +11 -0
  25. package/dist/lib/light_push/push_rpc_v3.js +33 -0
  26. package/dist/lib/light_push/push_rpc_v3.js.map +1 -0
  27. package/dist/lib/light_push/status_codes.d.ts +14 -0
  28. package/dist/lib/light_push/status_codes.js +49 -0
  29. package/dist/lib/light_push/status_codes.js.map +1 -0
  30. package/dist/lib/light_push/status_codes_v3.d.ts +17 -0
  31. package/dist/lib/light_push/status_codes_v3.js +69 -0
  32. package/dist/lib/light_push/status_codes_v3.js.map +1 -0
  33. package/dist/lib/message/version_0.d.ts +2 -3
  34. package/dist/lib/message/version_0.js +1 -4
  35. package/dist/lib/message/version_0.js.map +1 -1
  36. package/dist/lib/message_hash/index.d.ts +1 -0
  37. package/dist/lib/message_hash/index.js +2 -0
  38. package/dist/lib/message_hash/index.js.map +1 -0
  39. package/dist/lib/message_hash/message_hash.d.ts +52 -0
  40. package/dist/lib/message_hash/message_hash.js +84 -0
  41. package/dist/lib/message_hash/message_hash.js.map +1 -0
  42. package/dist/lib/store/rpc.js +16 -10
  43. package/dist/lib/store/rpc.js.map +1 -1
  44. package/dist/lib/store/store.js +12 -2
  45. package/dist/lib/store/store.js.map +1 -1
  46. package/package.json +1 -1
  47. package/src/index.ts +11 -0
  48. package/src/lib/connection_manager/connection_manager.ts +1 -1
  49. package/src/lib/light_push/index.ts +24 -1
  50. package/src/lib/light_push/light_push.ts +25 -23
  51. package/src/lib/light_push/light_push_v3.ts +233 -0
  52. package/src/lib/light_push/push_rpc.ts +1 -1
  53. package/src/lib/light_push/push_rpc_v2.ts +38 -0
  54. package/src/lib/light_push/push_rpc_v3.ts +46 -0
  55. package/src/lib/light_push/status_codes.ts +71 -0
  56. package/src/lib/light_push/status_codes_v3.ts +97 -0
  57. package/src/lib/message/version_0.ts +3 -7
  58. package/src/lib/message_hash/index.ts +1 -0
  59. package/src/lib/message_hash/message_hash.ts +106 -0
  60. package/src/lib/store/rpc.ts +23 -19
  61. package/src/lib/store/store.ts +13 -1
@@ -0,0 +1,172 @@
1
+ import { ProtocolError } from "@waku/interfaces";
2
+ import { proto_lightpush_v3 } from "@waku/proto";
3
+ import { isMessageSizeUnderCap } from "@waku/utils";
4
+ import { Logger } from "@waku/utils";
5
+ import all from "it-all";
6
+ import * as lp from "it-length-prefixed";
7
+ import { pipe } from "it-pipe";
8
+ import { Uint8ArrayList } from "uint8arraylist";
9
+ import { BaseProtocol } from "../base_protocol.js";
10
+ import { PushRpcV3 } from "./push_rpc_v3.js";
11
+ import { getLightPushStatusDescriptionV3, isSuccessStatusCodeV3, lightPushStatusCodeToProtocolErrorV3, LightPushStatusCodeV3 } from "./status_codes_v3.js";
12
+ import { isRLNResponseError } from "./utils.js";
13
+ const log = new Logger("light-push-v3");
14
+ export const LightPushCodecV3 = "/vac/waku/lightpush/3.0.0";
15
+ export class LightPushCoreV3 extends BaseProtocol {
16
+ pubsubTopics;
17
+ constructor(pubsubTopics, libp2p) {
18
+ super(LightPushCodecV3, libp2p.components, pubsubTopics);
19
+ this.pubsubTopics = pubsubTopics;
20
+ }
21
+ async preparePushMessage(encoder, message) {
22
+ try {
23
+ if (!message.payload || message.payload.length === 0) {
24
+ log.error("Failed to send waku light push: payload is empty");
25
+ return { query: null, error: ProtocolError.EMPTY_PAYLOAD };
26
+ }
27
+ if (!(await isMessageSizeUnderCap(encoder, message))) {
28
+ log.error("Failed to send waku light push: message is bigger than 1MB");
29
+ return { query: null, error: ProtocolError.SIZE_TOO_BIG };
30
+ }
31
+ const protoMessage = await encoder.toProtoObj(message);
32
+ if (!protoMessage) {
33
+ log.error("Failed to encode to protoMessage, aborting push");
34
+ return {
35
+ query: null,
36
+ error: ProtocolError.ENCODE_FAILED
37
+ };
38
+ }
39
+ const query = PushRpcV3.createRequest(protoMessage, encoder.pubsubTopic);
40
+ return { query, error: null };
41
+ }
42
+ catch (error) {
43
+ log.error("Failed to prepare push message", error);
44
+ return {
45
+ query: null,
46
+ error: ProtocolError.GENERIC_FAIL
47
+ };
48
+ }
49
+ }
50
+ async send(encoder, message, peerId) {
51
+ const { query, error: preparationError } = await this.preparePushMessage(encoder, message);
52
+ if (preparationError || !query) {
53
+ return {
54
+ success: null,
55
+ failure: {
56
+ error: preparationError,
57
+ peerId
58
+ }
59
+ };
60
+ }
61
+ let stream;
62
+ try {
63
+ stream = await this.getStream(peerId);
64
+ }
65
+ catch (error) {
66
+ log.error("Failed to get stream", error);
67
+ return {
68
+ success: null,
69
+ failure: {
70
+ error: ProtocolError.NO_STREAM_AVAILABLE,
71
+ peerId: peerId
72
+ }
73
+ };
74
+ }
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
+ log.error("Failed to send waku light push request", err);
81
+ return {
82
+ success: null,
83
+ failure: {
84
+ error: ProtocolError.STREAM_ABORTED,
85
+ peerId: peerId
86
+ }
87
+ };
88
+ }
89
+ const bytes = new Uint8ArrayList();
90
+ res.forEach((chunk) => {
91
+ bytes.append(chunk);
92
+ });
93
+ let response;
94
+ try {
95
+ response = proto_lightpush_v3.LightpushResponse.decode(bytes);
96
+ }
97
+ catch (err) {
98
+ log.error("Failed to decode push response", err);
99
+ return {
100
+ success: null,
101
+ failure: {
102
+ error: ProtocolError.DECODE_FAILED,
103
+ peerId: peerId
104
+ }
105
+ };
106
+ }
107
+ if (!response) {
108
+ log.error("Remote peer fault: No response received");
109
+ return {
110
+ success: null,
111
+ failure: {
112
+ error: ProtocolError.NO_RESPONSE,
113
+ peerId: peerId
114
+ }
115
+ };
116
+ }
117
+ // Validate request ID matches (except for rate limiting responses)
118
+ if (response.requestId !== query.query?.requestId) {
119
+ // nwaku sends "N/A" for rate limiting responses
120
+ if (response.statusCode !== LightPushStatusCodeV3.TOO_MANY_REQUESTS) {
121
+ log.error("Request ID mismatch", {
122
+ sent: query.query?.requestId,
123
+ received: response.requestId
124
+ });
125
+ return {
126
+ success: null,
127
+ failure: {
128
+ error: ProtocolError.GENERIC_FAIL,
129
+ peerId: peerId
130
+ }
131
+ };
132
+ }
133
+ }
134
+ const statusCode = response.statusCode;
135
+ const isSuccess = isSuccessStatusCodeV3(statusCode);
136
+ // Special handling for nwaku rate limiting
137
+ if (statusCode === LightPushStatusCodeV3.TOO_MANY_REQUESTS) {
138
+ if (response.requestId === "N/A") {
139
+ log.warn("Rate limited by nwaku node", {
140
+ statusDesc: response.statusDesc || "Request rejected due to too many requests"
141
+ });
142
+ }
143
+ }
144
+ if (response.relayPeerCount !== undefined) {
145
+ log.info(`Message relayed to ${response.relayPeerCount} peers`);
146
+ }
147
+ if (response.statusDesc && isRLNResponseError(response.statusDesc)) {
148
+ log.error("Remote peer fault: RLN generation");
149
+ return {
150
+ success: null,
151
+ failure: {
152
+ error: ProtocolError.RLN_PROOF_GENERATION,
153
+ peerId: peerId
154
+ }
155
+ };
156
+ }
157
+ if (!isSuccess) {
158
+ const errorMessage = getLightPushStatusDescriptionV3(statusCode, response.statusDesc);
159
+ log.error("Remote peer rejected the message: ", errorMessage);
160
+ const protocolError = lightPushStatusCodeToProtocolErrorV3(statusCode);
161
+ return {
162
+ success: null,
163
+ failure: {
164
+ error: protocolError,
165
+ peerId: peerId
166
+ }
167
+ };
168
+ }
169
+ return { success: peerId, failure: null };
170
+ }
171
+ }
172
+ //# sourceMappingURL=light_push_v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light_push_v3.js","sourceRoot":"","sources":["../../../src/lib/light_push/light_push_v3.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { Uint8ArrayList } from "uint8arraylist";
3
3
  export declare class PushRpc {
4
4
  proto: proto.PushRpc;
5
5
  constructor(proto: proto.PushRpc);
6
- static createRequest(message: proto.WakuMessage, pubsubTopic: string): PushRpc;
6
+ static createRequest(message: proto.WakuMessage, pubsubTopic?: string): PushRpc;
7
7
  static decode(bytes: Uint8ArrayList): PushRpc;
8
8
  encode(): Uint8Array;
9
9
  get query(): proto.PushRequest | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"push_rpc.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,OAAO;IACQ;IAA1B,YAA0B,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IAE3C,MAAM,CAAC,aAAa,CACzB,OAA0B,EAC1B,WAAmB;QAEnB,OAAO,IAAI,OAAO,CAAC;YACjB,SAAS,EAAE,IAAI,EAAE;YACjB,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,WAAW;aACzB;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAqB;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"push_rpc.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,OAAO;IACQ;IAA1B,YAA0B,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IAE3C,MAAM,CAAC,aAAa,CACzB,OAA0B,EAC1B,WAAoB;QAEpB,OAAO,IAAI,OAAO,CAAC;YACjB,SAAS,EAAE,IAAI,EAAE;YACjB,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,WAAW;aACzB;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAqB;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { proto_lightpush_v2 as proto } from "@waku/proto";
2
+ import type { Uint8ArrayList } from "uint8arraylist";
3
+ export declare class PushRpcV2 {
4
+ proto: proto.PushRpc;
5
+ constructor(proto: proto.PushRpc);
6
+ static createRequest(message: proto.WakuMessage, pubsubTopic: string): PushRpcV2;
7
+ static decode(bytes: Uint8ArrayList): PushRpcV2;
8
+ encode(): Uint8Array;
9
+ get query(): proto.PushRequest | undefined;
10
+ get response(): proto.PushResponse | undefined;
11
+ }
@@ -0,0 +1,32 @@
1
+ import { proto_lightpush_v2 as proto } from "@waku/proto";
2
+ import { v4 as uuid } from "uuid";
3
+ export class PushRpcV2 {
4
+ proto;
5
+ constructor(proto) {
6
+ this.proto = proto;
7
+ }
8
+ static createRequest(message, pubsubTopic) {
9
+ return new PushRpcV2({
10
+ requestId: uuid(),
11
+ request: {
12
+ message: message,
13
+ pubsubTopic: pubsubTopic
14
+ },
15
+ response: undefined
16
+ });
17
+ }
18
+ static decode(bytes) {
19
+ const res = proto.PushRpc.decode(bytes);
20
+ return new PushRpcV2(res);
21
+ }
22
+ encode() {
23
+ return proto.PushRpc.encode(this.proto);
24
+ }
25
+ get query() {
26
+ return this.proto.request;
27
+ }
28
+ get response() {
29
+ return this.proto.response;
30
+ }
31
+ }
32
+ //# sourceMappingURL=push_rpc_v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push_rpc_v2.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc_v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,SAAS;IACM;IAA1B,YAA0B,KAAoB;QAApB,UAAK,GAAL,KAAK,CAAe;IAAG,CAAC;IAE3C,MAAM,CAAC,aAAa,CACzB,OAA0B,EAC1B,WAAmB;QAEnB,OAAO,IAAI,SAAS,CAAC;YACnB,SAAS,EAAE,IAAI,EAAE;YACjB,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,WAAW;aACzB;YACD,QAAQ,EAAE,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAqB;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM;QACX,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { proto_lightpush_v3, WakuMessage } from "@waku/proto";
2
+ import type { Uint8ArrayList } from "uint8arraylist";
3
+ export declare class PushRpcV3 {
4
+ request?: proto_lightpush_v3.LightpushRequest;
5
+ response?: proto_lightpush_v3.LightpushResponse;
6
+ private constructor();
7
+ static createRequest(message: WakuMessage, pubsubTopic?: string): PushRpcV3;
8
+ static decode(bytes: Uint8ArrayList | Uint8Array): PushRpcV3;
9
+ encode(): Uint8Array;
10
+ get query(): proto_lightpush_v3.LightpushRequest | undefined;
11
+ }
@@ -0,0 +1,33 @@
1
+ import { proto_lightpush_v3 } from "@waku/proto";
2
+ import { v4 as uuid } from "uuid";
3
+ export class PushRpcV3 {
4
+ request;
5
+ response;
6
+ constructor(request, response) {
7
+ this.request = request;
8
+ this.response = response;
9
+ }
10
+ static createRequest(message, pubsubTopic) {
11
+ const request = {
12
+ requestId: uuid(),
13
+ message: message,
14
+ // Only include pubsubTopic if explicitly provided (for nwaku autosharding compatibility)
15
+ ...(pubsubTopic && { pubsubTopic })
16
+ };
17
+ return new PushRpcV3(request, undefined);
18
+ }
19
+ static decode(bytes) {
20
+ const response = proto_lightpush_v3.LightpushResponse.decode(bytes);
21
+ return new PushRpcV3(undefined, response);
22
+ }
23
+ encode() {
24
+ if (!this.request) {
25
+ throw new Error("Cannot encode without a request");
26
+ }
27
+ return proto_lightpush_v3.LightpushRequest.encode(this.request);
28
+ }
29
+ get query() {
30
+ return this.request;
31
+ }
32
+ }
33
+ //# sourceMappingURL=push_rpc_v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push_rpc_v3.js","sourceRoot":"","sources":["../../../src/lib/light_push/push_rpc_v3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,OAAO,SAAS;IACb,OAAO,CAAuC;IAC9C,QAAQ,CAAwC;IAEvD,YACE,OAA6C,EAC7C,QAA+C;QAE/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,aAAa,CACzB,OAAoB,EACpB,WAAoB;QAEpB,MAAM,OAAO,GAAwC;YACnD,SAAS,EAAE,IAAI,EAAE;YACjB,OAAO,EAAE,OAAO;YAChB,yFAAyF;YACzF,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;SACpC,CAAC;QAEF,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAkC;QACrD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { ProtocolError } from "@waku/interfaces";
2
+ export declare enum LightPushStatusCode {
3
+ SUCCESS = 200,
4
+ BAD_REQUEST = 400,
5
+ UNSUPPORTED_PUBSUB_TOPIC = 404,
6
+ REQUEST_TOO_LARGE = 413,
7
+ TOO_MANY_REQUESTS = 429,
8
+ INTERNAL_SERVER_ERROR = 500,
9
+ NO_PEERS_TO_RELAY = 503
10
+ }
11
+ export declare function lightPushStatusCodeToProtocolError(statusCode: number): ProtocolError | null;
12
+ export declare const lightPushStatusDescriptions: Record<number, string>;
13
+ export declare function isSuccessStatusCode(statusCode: number): boolean;
14
+ export declare function getLightPushStatusDescription(statusCode: number, statusDesc?: string): string;
@@ -0,0 +1,49 @@
1
+ import { ProtocolError } from "@waku/interfaces";
2
+ export var LightPushStatusCode;
3
+ (function (LightPushStatusCode) {
4
+ LightPushStatusCode[LightPushStatusCode["SUCCESS"] = 200] = "SUCCESS";
5
+ LightPushStatusCode[LightPushStatusCode["BAD_REQUEST"] = 400] = "BAD_REQUEST";
6
+ LightPushStatusCode[LightPushStatusCode["UNSUPPORTED_PUBSUB_TOPIC"] = 404] = "UNSUPPORTED_PUBSUB_TOPIC";
7
+ LightPushStatusCode[LightPushStatusCode["REQUEST_TOO_LARGE"] = 413] = "REQUEST_TOO_LARGE";
8
+ LightPushStatusCode[LightPushStatusCode["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
9
+ LightPushStatusCode[LightPushStatusCode["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
10
+ LightPushStatusCode[LightPushStatusCode["NO_PEERS_TO_RELAY"] = 503] = "NO_PEERS_TO_RELAY";
11
+ })(LightPushStatusCode || (LightPushStatusCode = {}));
12
+ export function lightPushStatusCodeToProtocolError(statusCode) {
13
+ switch (statusCode) {
14
+ case LightPushStatusCode.SUCCESS:
15
+ return null;
16
+ case LightPushStatusCode.BAD_REQUEST:
17
+ return ProtocolError.GENERIC_FAIL;
18
+ case LightPushStatusCode.UNSUPPORTED_PUBSUB_TOPIC:
19
+ return ProtocolError.TOPIC_NOT_CONFIGURED;
20
+ case LightPushStatusCode.REQUEST_TOO_LARGE:
21
+ return ProtocolError.SIZE_TOO_BIG;
22
+ case LightPushStatusCode.TOO_MANY_REQUESTS:
23
+ return ProtocolError.GENERIC_FAIL;
24
+ case LightPushStatusCode.INTERNAL_SERVER_ERROR:
25
+ return ProtocolError.REMOTE_PEER_REJECTED;
26
+ case LightPushStatusCode.NO_PEERS_TO_RELAY:
27
+ return ProtocolError.NO_PEER_AVAILABLE;
28
+ default:
29
+ return ProtocolError.REMOTE_PEER_REJECTED;
30
+ }
31
+ }
32
+ export const lightPushStatusDescriptions = {
33
+ [LightPushStatusCode.SUCCESS]: "Message pushed successfully",
34
+ [LightPushStatusCode.BAD_REQUEST]: "Invalid request format or missing required fields",
35
+ [LightPushStatusCode.UNSUPPORTED_PUBSUB_TOPIC]: "The specified pubsub topic is not supported",
36
+ [LightPushStatusCode.REQUEST_TOO_LARGE]: "Message size exceeds maximum allowed size",
37
+ [LightPushStatusCode.TOO_MANY_REQUESTS]: "Rate limit exceeded, too many requests",
38
+ [LightPushStatusCode.INTERNAL_SERVER_ERROR]: "Internal server error occurred",
39
+ [LightPushStatusCode.NO_PEERS_TO_RELAY]: "No relay peers available to forward the message"
40
+ };
41
+ export function isSuccessStatusCode(statusCode) {
42
+ return statusCode === LightPushStatusCode.SUCCESS;
43
+ }
44
+ export function getLightPushStatusDescription(statusCode, statusDesc) {
45
+ return (statusDesc ||
46
+ lightPushStatusDescriptions[statusCode] ||
47
+ `Unknown status code: ${statusCode}`);
48
+ }
49
+ //# sourceMappingURL=status_codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status_codes.js","sourceRoot":"","sources":["../../../src/lib/light_push/status_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAN,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,qEAAa,CAAA;IACb,6EAAiB,CAAA;IACjB,uGAA8B,CAAA;IAC9B,yFAAuB,CAAA;IACvB,yFAAuB,CAAA;IACvB,iGAA2B,CAAA;IAC3B,yFAAuB,CAAA;AACzB,CAAC,EARW,mBAAmB,KAAnB,mBAAmB,QAQ9B;AAED,MAAM,UAAU,kCAAkC,CAChD,UAAkB;IAElB,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,mBAAmB,CAAC,OAAO;YAC9B,OAAO,IAAI,CAAC;QAEd,KAAK,mBAAmB,CAAC,WAAW;YAClC,OAAO,aAAa,CAAC,YAAY,CAAC;QAEpC,KAAK,mBAAmB,CAAC,wBAAwB;YAC/C,OAAO,aAAa,CAAC,oBAAoB,CAAC;QAE5C,KAAK,mBAAmB,CAAC,iBAAiB;YACxC,OAAO,aAAa,CAAC,YAAY,CAAC;QAEpC,KAAK,mBAAmB,CAAC,iBAAiB;YACxC,OAAO,aAAa,CAAC,YAAY,CAAC;QAEpC,KAAK,mBAAmB,CAAC,qBAAqB;YAC5C,OAAO,aAAa,CAAC,oBAAoB,CAAC;QAE5C,KAAK,mBAAmB,CAAC,iBAAiB;YACxC,OAAO,aAAa,CAAC,iBAAiB,CAAC;QAEzC;YACE,OAAO,aAAa,CAAC,oBAAoB,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,6BAA6B;IAC5D,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAC/B,mDAAmD;IACrD,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,EAC5C,6CAA6C;IAC/C,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EACrC,2CAA2C;IAC7C,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EACrC,wCAAwC;IAC1C,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAAE,gCAAgC;IAC7E,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EACrC,iDAAiD;CACpD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,OAAO,UAAU,KAAK,mBAAmB,CAAC,OAAO,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,UAAkB,EAClB,UAAmB;IAEnB,OAAO,CACL,UAAU;QACV,2BAA2B,CAAC,UAAU,CAAC;QACvC,wBAAwB,UAAU,EAAE,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ProtocolError } from "@waku/interfaces";
2
+ export declare enum LightPushStatusCodeV3 {
3
+ SUCCESS = 200,
4
+ BAD_REQUEST = 400,
5
+ PAYLOAD_TOO_LARGE = 413,
6
+ INVALID_MESSAGE_ERROR = 420,
7
+ UNSUPPORTED_PUBSUB_TOPIC = 421,
8
+ TOO_MANY_REQUESTS = 429,
9
+ INTERNAL_SERVER_ERROR = 500,
10
+ SERVICE_NOT_AVAILABLE = 503,
11
+ OUT_OF_RLN_PROOF = 504,
12
+ NO_PEERS_TO_RELAY = 505
13
+ }
14
+ export declare const lightPushStatusDescriptionsV3: Record<LightPushStatusCodeV3, string>;
15
+ export declare function lightPushStatusCodeToProtocolErrorV3(statusCode: LightPushStatusCodeV3 | number | undefined): ProtocolError;
16
+ export declare function isSuccessStatusCodeV3(statusCode: number | undefined): boolean;
17
+ export declare function getLightPushStatusDescriptionV3(statusCode: number | undefined, customDesc?: string): string;
@@ -0,0 +1,69 @@
1
+ import { ProtocolError } from "@waku/interfaces";
2
+ export var LightPushStatusCodeV3;
3
+ (function (LightPushStatusCodeV3) {
4
+ LightPushStatusCodeV3[LightPushStatusCodeV3["SUCCESS"] = 200] = "SUCCESS";
5
+ LightPushStatusCodeV3[LightPushStatusCodeV3["BAD_REQUEST"] = 400] = "BAD_REQUEST";
6
+ LightPushStatusCodeV3[LightPushStatusCodeV3["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
7
+ LightPushStatusCodeV3[LightPushStatusCodeV3["INVALID_MESSAGE_ERROR"] = 420] = "INVALID_MESSAGE_ERROR";
8
+ LightPushStatusCodeV3[LightPushStatusCodeV3["UNSUPPORTED_PUBSUB_TOPIC"] = 421] = "UNSUPPORTED_PUBSUB_TOPIC";
9
+ LightPushStatusCodeV3[LightPushStatusCodeV3["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
10
+ LightPushStatusCodeV3[LightPushStatusCodeV3["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
11
+ LightPushStatusCodeV3[LightPushStatusCodeV3["SERVICE_NOT_AVAILABLE"] = 503] = "SERVICE_NOT_AVAILABLE";
12
+ LightPushStatusCodeV3[LightPushStatusCodeV3["OUT_OF_RLN_PROOF"] = 504] = "OUT_OF_RLN_PROOF";
13
+ LightPushStatusCodeV3[LightPushStatusCodeV3["NO_PEERS_TO_RELAY"] = 505] = "NO_PEERS_TO_RELAY";
14
+ })(LightPushStatusCodeV3 || (LightPushStatusCodeV3 = {}));
15
+ export const lightPushStatusDescriptionsV3 = {
16
+ [LightPushStatusCodeV3.SUCCESS]: "Message sent successfully",
17
+ [LightPushStatusCodeV3.BAD_REQUEST]: "Bad request format",
18
+ [LightPushStatusCodeV3.PAYLOAD_TOO_LARGE]: "Message payload exceeds maximum size",
19
+ [LightPushStatusCodeV3.INVALID_MESSAGE_ERROR]: "Message validation failed",
20
+ [LightPushStatusCodeV3.UNSUPPORTED_PUBSUB_TOPIC]: "Unsupported pubsub topic",
21
+ [LightPushStatusCodeV3.TOO_MANY_REQUESTS]: "Rate limit exceeded",
22
+ [LightPushStatusCodeV3.INTERNAL_SERVER_ERROR]: "Internal server error",
23
+ [LightPushStatusCodeV3.SERVICE_NOT_AVAILABLE]: "Service temporarily unavailable",
24
+ [LightPushStatusCodeV3.OUT_OF_RLN_PROOF]: "RLN proof generation failed",
25
+ [LightPushStatusCodeV3.NO_PEERS_TO_RELAY]: "No relay peers available"
26
+ };
27
+ export function lightPushStatusCodeToProtocolErrorV3(statusCode) {
28
+ if (!statusCode) {
29
+ return ProtocolError.GENERIC_FAIL;
30
+ }
31
+ switch (statusCode) {
32
+ case LightPushStatusCodeV3.SUCCESS:
33
+ return ProtocolError.GENERIC_FAIL;
34
+ case LightPushStatusCodeV3.BAD_REQUEST:
35
+ return ProtocolError.DECODE_FAILED;
36
+ case LightPushStatusCodeV3.PAYLOAD_TOO_LARGE:
37
+ return ProtocolError.SIZE_TOO_BIG;
38
+ case LightPushStatusCodeV3.INVALID_MESSAGE_ERROR:
39
+ return ProtocolError.EMPTY_PAYLOAD;
40
+ case LightPushStatusCodeV3.UNSUPPORTED_PUBSUB_TOPIC:
41
+ return ProtocolError.TOPIC_NOT_CONFIGURED;
42
+ case LightPushStatusCodeV3.TOO_MANY_REQUESTS:
43
+ return ProtocolError.REMOTE_PEER_REJECTED;
44
+ case LightPushStatusCodeV3.INTERNAL_SERVER_ERROR:
45
+ return ProtocolError.GENERIC_FAIL;
46
+ case LightPushStatusCodeV3.SERVICE_NOT_AVAILABLE:
47
+ return ProtocolError.NO_PEER_AVAILABLE;
48
+ case LightPushStatusCodeV3.OUT_OF_RLN_PROOF:
49
+ return ProtocolError.RLN_PROOF_GENERATION;
50
+ case LightPushStatusCodeV3.NO_PEERS_TO_RELAY:
51
+ return ProtocolError.NO_PEER_AVAILABLE;
52
+ default:
53
+ return ProtocolError.REMOTE_PEER_REJECTED;
54
+ }
55
+ }
56
+ export function isSuccessStatusCodeV3(statusCode) {
57
+ return statusCode === LightPushStatusCodeV3.SUCCESS;
58
+ }
59
+ export function getLightPushStatusDescriptionV3(statusCode, customDesc) {
60
+ if (customDesc) {
61
+ return customDesc;
62
+ }
63
+ if (!statusCode) {
64
+ return "Unknown error";
65
+ }
66
+ return (lightPushStatusDescriptionsV3[statusCode] ||
67
+ `Unknown status code: ${statusCode}`);
68
+ }
69
+ //# sourceMappingURL=status_codes_v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status_codes_v3.js","sourceRoot":"","sources":["../../../src/lib/light_push/status_codes_v3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,CAAN,IAAY,qBAWX;AAXD,WAAY,qBAAqB;IAC/B,yEAAa,CAAA;IACb,iFAAiB,CAAA;IACjB,6FAAuB,CAAA;IACvB,qGAA2B,CAAA;IAC3B,2GAA8B,CAAA;IAC9B,6FAAuB,CAAA;IACvB,qGAA2B,CAAA;IAC3B,qGAA2B,CAAA;IAC3B,2FAAsB,CAAA;IACtB,6FAAuB,CAAA;AACzB,CAAC,EAXW,qBAAqB,KAArB,qBAAqB,QAWhC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAGtC;IACF,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,2BAA2B;IAC5D,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,oBAAoB;IACzD,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EACvC,sCAAsC;IACxC,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,2BAA2B;IAC1E,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,EAAE,0BAA0B;IAC5E,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,qBAAqB;IAChE,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,uBAAuB;IACtE,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,EAC3C,iCAAiC;IACnC,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,6BAA6B;IACvE,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,0BAA0B;CACtE,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAClD,UAAsD;IAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,qBAAqB,CAAC,OAAO;YAChC,OAAO,aAAa,CAAC,YAAY,CAAC;QAEpC,KAAK,qBAAqB,CAAC,WAAW;YACpC,OAAO,aAAa,CAAC,aAAa,CAAC;QAErC,KAAK,qBAAqB,CAAC,iBAAiB;YAC1C,OAAO,aAAa,CAAC,YAAY,CAAC;QAEpC,KAAK,qBAAqB,CAAC,qBAAqB;YAC9C,OAAO,aAAa,CAAC,aAAa,CAAC;QAErC,KAAK,qBAAqB,CAAC,wBAAwB;YACjD,OAAO,aAAa,CAAC,oBAAoB,CAAC;QAE5C,KAAK,qBAAqB,CAAC,iBAAiB;YAC1C,OAAO,aAAa,CAAC,oBAAoB,CAAC;QAE5C,KAAK,qBAAqB,CAAC,qBAAqB;YAC9C,OAAO,aAAa,CAAC,YAAY,CAAC;QAEpC,KAAK,qBAAqB,CAAC,qBAAqB;YAC9C,OAAO,aAAa,CAAC,iBAAiB,CAAC;QAEzC,KAAK,qBAAqB,CAAC,gBAAgB;YACzC,OAAO,aAAa,CAAC,oBAAoB,CAAC;QAE5C,KAAK,qBAAqB,CAAC,iBAAiB;YAC1C,OAAO,aAAa,CAAC,iBAAiB,CAAC;QAEzC;YACE,OAAO,aAAa,CAAC,oBAAoB,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAA8B;IAClE,OAAO,UAAU,KAAK,qBAAqB,CAAC,OAAO,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,UAA8B,EAC9B,UAAmB;IAEnB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,CACL,6BAA6B,CAAC,UAAmC,CAAC;QAClE,wBAAwB,UAAU,EAAE,CACrC,CAAC;AACJ,CAAC"}
@@ -4,12 +4,11 @@ export declare const Version = 0;
4
4
  export { proto };
5
5
  export declare class DecodedMessage implements IDecodedMessage {
6
6
  pubsubTopic: string;
7
- protected proto: proto.WakuMessage;
7
+ private proto;
8
8
  constructor(pubsubTopic: string, proto: proto.WakuMessage);
9
9
  get ephemeral(): boolean;
10
10
  get payload(): Uint8Array;
11
11
  get contentTopic(): string;
12
- get _rawTimestamp(): bigint | undefined;
13
12
  get timestamp(): Date | undefined;
14
13
  get meta(): Uint8Array | undefined;
15
14
  get version(): number;
@@ -38,7 +37,7 @@ export declare class Decoder implements IDecoder<IDecodedMessage> {
38
37
  contentTopic: string;
39
38
  constructor(pubsubTopic: PubsubTopic, contentTopic: string);
40
39
  fromWireToProtoObj(bytes: Uint8Array): Promise<IProtoMessage | undefined>;
41
- fromProtoObj(pubsubTopic: string, proto: IProtoMessage): Promise<DecodedMessage | undefined>;
40
+ fromProtoObj(pubsubTopic: string, proto: IProtoMessage): Promise<IDecodedMessage | undefined>;
42
41
  }
43
42
  /**
44
43
  * Creates a decoder that decode messages without Waku level encryption.
@@ -20,9 +20,6 @@ export class DecodedMessage {
20
20
  get contentTopic() {
21
21
  return this.proto.contentTopic;
22
22
  }
23
- get _rawTimestamp() {
24
- return this.proto.timestamp;
25
- }
26
23
  get timestamp() {
27
24
  // In the case we receive a value that is bigger than JS's max number,
28
25
  // we catch the error and return undefined.
@@ -44,7 +41,7 @@ export class DecodedMessage {
44
41
  get version() {
45
42
  // https://rfc.vac.dev/spec/14/
46
43
  // > If omitted, the value SHOULD be interpreted as version 0.
47
- return this.proto.version ?? 0;
44
+ return this.proto.version ?? Version;
48
45
  }
49
46
  get rateLimitProof() {
50
47
  return this.proto.rateLimitProof;
@@ -1 +1 @@
1
- {"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version_0.js","sourceRoot":"","sources":["../../../src/lib/message/version_0.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { messageHash, messageHashStr } from "./message_hash.js";
@@ -0,0 +1,2 @@
1
+ export { messageHash, messageHashStr } from "./message_hash.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/message_hash/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { IDecodedMessage, IProtoMessage } from "@waku/interfaces";
2
+ /**
3
+ * Deterministic Message Hashing as defined in
4
+ * [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/#deterministic-message-hashing)
5
+ *
6
+ * Computes a SHA-256 hash of the concatenation of pubsub topic, payload, content topic, meta, and timestamp.
7
+ *
8
+ * @param pubsubTopic - The pubsub topic string
9
+ * @param message - The message to be hashed
10
+ * @returns A Uint8Array containing the SHA-256 hash
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { messageHash } from "@waku/core";
15
+ *
16
+ * const pubsubTopic = "/waku/2/default-waku/proto";
17
+ * const message = {
18
+ * payload: new Uint8Array([1, 2, 3, 4]),
19
+ * contentTopic: "/waku/2/default-content/proto",
20
+ * meta: new Uint8Array([5, 6, 7, 8]),
21
+ * timestamp: new Date()
22
+ * };
23
+ *
24
+ * const hash = messageHash(pubsubTopic, message);
25
+ * ```
26
+ */
27
+ export declare function messageHash(pubsubTopic: string, message: IProtoMessage | IDecodedMessage): Uint8Array;
28
+ /**
29
+ * Computes a deterministic message hash and returns it as a hexadecimal string.
30
+ * This is a convenience wrapper around messageHash that converts the result to a hex string.
31
+ *
32
+ * @param pubsubTopic - The pubsub topic string
33
+ * @param message - The message to be hashed
34
+ * @returns A string containing the hex representation of the SHA-256 hash
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * import { messageHashStr } from "@waku/core";
39
+ *
40
+ * const pubsubTopic = "/waku/2/default-waku/proto";
41
+ * const message = {
42
+ * payload: new Uint8Array([1, 2, 3, 4]),
43
+ * contentTopic: "/waku/2/default-content/proto",
44
+ * meta: new Uint8Array([5, 6, 7, 8]),
45
+ * timestamp: new Date()
46
+ * };
47
+ *
48
+ * const hashString = messageHashStr(pubsubTopic, message);
49
+ * console.log(hashString); // e.g. "a1b2c3d4..."
50
+ * ```
51
+ */
52
+ export declare function messageHashStr(pubsubTopic: string, message: IProtoMessage | IDecodedMessage): string;