@waku/core 0.0.36-6d86b6f.0 → 0.0.36-76fb1ea.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-DvQrudwy.js → base_protocol-DbwKyDLW.js} +1 -1
- package/bundle/{index-CTo1my9M.js → index-JnhMR9ZE.js} +20 -1
- package/bundle/index.js +510 -58
- package/bundle/lib/base_protocol.js +2 -2
- package/bundle/lib/message/version_0.js +2 -2
- package/bundle/{version_0-CiYGrPc2.js → version_0-sWyv9XWm.js} +920 -185
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/connection_manager/connection_manager.d.ts +1 -1
- package/dist/lib/connection_manager/connection_manager.js +1 -1
- package/dist/lib/filter/filter.d.ts +4 -2
- package/dist/lib/filter/filter.js +21 -3
- package/dist/lib/filter/filter.js.map +1 -1
- package/dist/lib/light_push/index.d.ts +5 -1
- package/dist/lib/light_push/index.js +5 -1
- package/dist/lib/light_push/index.js.map +1 -1
- package/dist/lib/light_push/light_push.d.ts +3 -4
- package/dist/lib/light_push/light_push.js +12 -21
- package/dist/lib/light_push/light_push.js.map +1 -1
- package/dist/lib/light_push/light_push_v3.d.ts +9 -0
- package/dist/lib/light_push/light_push_v3.js +171 -0
- package/dist/lib/light_push/light_push_v3.js.map +1 -0
- package/dist/lib/light_push/push_rpc.d.ts +1 -1
- package/dist/lib/light_push/push_rpc.js.map +1 -1
- package/dist/lib/light_push/push_rpc_v2.d.ts +11 -0
- package/dist/lib/light_push/push_rpc_v2.js +32 -0
- package/dist/lib/light_push/push_rpc_v2.js.map +1 -0
- package/dist/lib/light_push/push_rpc_v3.d.ts +11 -0
- package/dist/lib/light_push/push_rpc_v3.js +33 -0
- package/dist/lib/light_push/push_rpc_v3.js.map +1 -0
- package/dist/lib/light_push/status_codes.d.ts +14 -0
- package/dist/lib/light_push/status_codes.js +49 -0
- package/dist/lib/light_push/status_codes.js.map +1 -0
- package/dist/lib/light_push/status_codes_v3.d.ts +4 -0
- package/dist/lib/light_push/status_codes_v3.js +53 -0
- package/dist/lib/light_push/status_codes_v3.js.map +1 -0
- package/dist/lib/light_push/utils.d.ts +6 -0
- package/dist/lib/light_push/utils.js +41 -0
- package/dist/lib/light_push/utils.js.map +1 -1
- package/dist/lib/message/version_0.d.ts +2 -3
- package/dist/lib/message/version_0.js +1 -4
- package/dist/lib/message/version_0.js.map +1 -1
- package/dist/lib/message_hash/index.d.ts +1 -0
- package/dist/lib/message_hash/index.js +2 -0
- package/dist/lib/message_hash/index.js.map +1 -0
- package/dist/lib/message_hash/message_hash.d.ts +52 -0
- package/dist/lib/message_hash/message_hash.js +84 -0
- package/dist/lib/message_hash/message_hash.js.map +1 -0
- package/dist/lib/store/rpc.js +16 -10
- package/dist/lib/store/rpc.js.map +1 -1
- package/dist/lib/store/store.js +12 -2
- package/dist/lib/store/store.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +7 -0
- package/src/lib/connection_manager/connection_manager.ts +1 -1
- package/src/lib/filter/filter.ts +33 -6
- package/src/lib/light_push/index.ts +22 -1
- package/src/lib/light_push/light_push.ts +19 -25
- package/src/lib/light_push/light_push_v3.ts +232 -0
- package/src/lib/light_push/push_rpc.ts +1 -1
- package/src/lib/light_push/push_rpc_v2.ts +38 -0
- package/src/lib/light_push/push_rpc_v3.ts +46 -0
- package/src/lib/light_push/status_codes.ts +71 -0
- package/src/lib/light_push/status_codes_v3.ts +80 -0
- package/src/lib/light_push/utils.ts +57 -0
- package/src/lib/message/version_0.ts +3 -7
- package/src/lib/message_hash/index.ts +1 -0
- package/src/lib/message_hash/message_hash.ts +106 -0
- package/src/lib/store/rpc.ts +23 -19
- package/src/lib/store/store.ts +13 -1
@@ -7,14 +7,11 @@ import * as lp from "it-length-prefixed";
|
|
7
7
|
import { pipe } from "it-pipe";
|
8
8
|
import { Uint8ArrayList } from "uint8arraylist";
|
9
9
|
import { BaseProtocol } from "../base_protocol.js";
|
10
|
-
import {
|
11
|
-
import {
|
10
|
+
import { PushRpcV2 } from "./push_rpc_v2.js";
|
11
|
+
import { mapInfoToProtocolError } from "./utils.js";
|
12
12
|
const log = new Logger("light-push");
|
13
13
|
export const LightPushCodec = "/vac/waku/lightpush/2.0.0-beta1";
|
14
|
-
export
|
15
|
-
/**
|
16
|
-
* Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/).
|
17
|
-
*/
|
14
|
+
export const LightPushCodecV2 = LightPushCodec;
|
18
15
|
export class LightPushCore extends BaseProtocol {
|
19
16
|
pubsubTopics;
|
20
17
|
constructor(pubsubTopics, libp2p) {
|
@@ -39,7 +36,7 @@ export class LightPushCore extends BaseProtocol {
|
|
39
36
|
error: ProtocolError.ENCODE_FAILED
|
40
37
|
};
|
41
38
|
}
|
42
|
-
const query =
|
39
|
+
const query = PushRpcV2.createRequest(protoMessage, encoder.pubsubTopic);
|
43
40
|
return { query, error: null };
|
44
41
|
}
|
45
42
|
catch (error) {
|
@@ -80,7 +77,6 @@ export class LightPushCore extends BaseProtocol {
|
|
80
77
|
res = await pipe([query.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
81
78
|
}
|
82
79
|
catch (err) {
|
83
|
-
// can fail only because of `stream` abortion
|
84
80
|
log.error("Failed to send waku light push request", err);
|
85
81
|
return {
|
86
82
|
success: null,
|
@@ -96,7 +92,7 @@ export class LightPushCore extends BaseProtocol {
|
|
96
92
|
});
|
97
93
|
let response;
|
98
94
|
try {
|
99
|
-
response =
|
95
|
+
response = PushRpcV2.decode(bytes).response;
|
100
96
|
}
|
101
97
|
catch (err) {
|
102
98
|
log.error("Failed to decode push reply", err);
|
@@ -118,22 +114,15 @@ export class LightPushCore extends BaseProtocol {
|
|
118
114
|
}
|
119
115
|
};
|
120
116
|
}
|
121
|
-
if (isRLNResponseError(response.info)) {
|
122
|
-
log.error("Remote peer fault: RLN generation");
|
123
|
-
return {
|
124
|
-
success: null,
|
125
|
-
failure: {
|
126
|
-
error: ProtocolError.RLN_PROOF_GENERATION,
|
127
|
-
peerId: peerId
|
128
|
-
}
|
129
|
-
};
|
130
|
-
}
|
131
117
|
if (!response.isSuccess) {
|
132
|
-
|
118
|
+
const errorMessage = response.info || "Message rejected";
|
119
|
+
log.error("Remote peer rejected the message: ", errorMessage);
|
120
|
+
// Use pattern matching to determine the appropriate error type
|
121
|
+
const error = mapInfoToProtocolError(response.info);
|
133
122
|
return {
|
134
123
|
success: null,
|
135
124
|
failure: {
|
136
|
-
error:
|
125
|
+
error: error,
|
137
126
|
peerId: peerId
|
138
127
|
}
|
139
128
|
};
|
@@ -141,4 +130,6 @@ export class LightPushCore extends BaseProtocol {
|
|
141
130
|
return { success: peerId, failure: null };
|
142
131
|
}
|
143
132
|
}
|
133
|
+
export const LightPushCoreV2 = LightPushCore;
|
134
|
+
export { PushResponse };
|
144
135
|
//# 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":"AACA,OAAO,EAML,aAAa,EAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
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,9 @@
|
|
1
|
+
import type { PeerId } from "@libp2p/interface";
|
2
|
+
import { type CoreProtocolResult, type IBaseProtocolCore, type IEncoder, type IMessage, type Libp2p, PubsubTopic } from "@waku/interfaces";
|
3
|
+
import { BaseProtocol } from "../base_protocol.js";
|
4
|
+
export declare class LightPushCoreV3 extends BaseProtocol implements IBaseProtocolCore {
|
5
|
+
readonly pubsubTopics: PubsubTopic[];
|
6
|
+
constructor(pubsubTopics: PubsubTopic[], libp2p: Libp2p);
|
7
|
+
private preparePushMessage;
|
8
|
+
send(encoder: IEncoder, message: IMessage, peerId: PeerId): Promise<CoreProtocolResult>;
|
9
|
+
}
|
@@ -0,0 +1,171 @@
|
|
1
|
+
import { isSuccessStatusCodeV3, LightPushCodecV3, LightPushStatusCodeV3, 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, lightPushStatusCodeToProtocolErrorV3 } from "./status_codes_v3.js";
|
12
|
+
import { isRLNResponseError } from "./utils.js";
|
13
|
+
const log = new Logger("light-push-v3");
|
14
|
+
export class LightPushCoreV3 extends BaseProtocol {
|
15
|
+
pubsubTopics;
|
16
|
+
constructor(pubsubTopics, libp2p) {
|
17
|
+
super(LightPushCodecV3, libp2p.components, pubsubTopics);
|
18
|
+
this.pubsubTopics = pubsubTopics;
|
19
|
+
}
|
20
|
+
async preparePushMessage(encoder, message) {
|
21
|
+
try {
|
22
|
+
if (!message.payload || message.payload.length === 0) {
|
23
|
+
log.error("Failed to send waku light push: payload is empty");
|
24
|
+
return { query: null, error: ProtocolError.EMPTY_PAYLOAD };
|
25
|
+
}
|
26
|
+
if (!(await isMessageSizeUnderCap(encoder, message))) {
|
27
|
+
log.error("Failed to send waku light push: message is bigger than 1MB");
|
28
|
+
return { query: null, error: ProtocolError.SIZE_TOO_BIG };
|
29
|
+
}
|
30
|
+
const protoMessage = await encoder.toProtoObj(message);
|
31
|
+
if (!protoMessage) {
|
32
|
+
log.error("Failed to encode to protoMessage, aborting push");
|
33
|
+
return {
|
34
|
+
query: null,
|
35
|
+
error: ProtocolError.ENCODE_FAILED
|
36
|
+
};
|
37
|
+
}
|
38
|
+
const query = PushRpcV3.createRequest(protoMessage, encoder.pubsubTopic);
|
39
|
+
return { query, error: null };
|
40
|
+
}
|
41
|
+
catch (error) {
|
42
|
+
log.error("Failed to prepare push message", error);
|
43
|
+
return {
|
44
|
+
query: null,
|
45
|
+
error: ProtocolError.GENERIC_FAIL
|
46
|
+
};
|
47
|
+
}
|
48
|
+
}
|
49
|
+
async send(encoder, message, peerId) {
|
50
|
+
const { query, error: preparationError } = await this.preparePushMessage(encoder, message);
|
51
|
+
if (preparationError || !query) {
|
52
|
+
return {
|
53
|
+
success: null,
|
54
|
+
failure: {
|
55
|
+
error: preparationError,
|
56
|
+
peerId
|
57
|
+
}
|
58
|
+
};
|
59
|
+
}
|
60
|
+
let stream;
|
61
|
+
try {
|
62
|
+
stream = await this.getStream(peerId);
|
63
|
+
}
|
64
|
+
catch (error) {
|
65
|
+
log.error("Failed to get stream", error);
|
66
|
+
return {
|
67
|
+
success: null,
|
68
|
+
failure: {
|
69
|
+
error: ProtocolError.NO_STREAM_AVAILABLE,
|
70
|
+
peerId: peerId
|
71
|
+
}
|
72
|
+
};
|
73
|
+
}
|
74
|
+
let res;
|
75
|
+
try {
|
76
|
+
res = await pipe([query.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
|
77
|
+
}
|
78
|
+
catch (err) {
|
79
|
+
log.error("Failed to send waku light push request", err);
|
80
|
+
return {
|
81
|
+
success: null,
|
82
|
+
failure: {
|
83
|
+
error: ProtocolError.STREAM_ABORTED,
|
84
|
+
peerId: peerId
|
85
|
+
}
|
86
|
+
};
|
87
|
+
}
|
88
|
+
const bytes = new Uint8ArrayList();
|
89
|
+
res.forEach((chunk) => {
|
90
|
+
bytes.append(chunk);
|
91
|
+
});
|
92
|
+
let response;
|
93
|
+
try {
|
94
|
+
response = proto_lightpush_v3.LightpushResponse.decode(bytes);
|
95
|
+
}
|
96
|
+
catch (err) {
|
97
|
+
log.error("Failed to decode push response", err);
|
98
|
+
return {
|
99
|
+
success: null,
|
100
|
+
failure: {
|
101
|
+
error: ProtocolError.DECODE_FAILED,
|
102
|
+
peerId: peerId
|
103
|
+
}
|
104
|
+
};
|
105
|
+
}
|
106
|
+
if (!response) {
|
107
|
+
log.error("Remote peer fault: No response received");
|
108
|
+
return {
|
109
|
+
success: null,
|
110
|
+
failure: {
|
111
|
+
error: ProtocolError.NO_RESPONSE,
|
112
|
+
peerId: peerId
|
113
|
+
}
|
114
|
+
};
|
115
|
+
}
|
116
|
+
// Validate request ID matches (except for rate limiting responses)
|
117
|
+
if (response.requestId !== query.query?.requestId) {
|
118
|
+
// nwaku sends "N/A" for rate limiting responses
|
119
|
+
if (response.statusCode !== LightPushStatusCodeV3.TOO_MANY_REQUESTS) {
|
120
|
+
log.error("Request ID mismatch", {
|
121
|
+
sent: query.query?.requestId,
|
122
|
+
received: response.requestId
|
123
|
+
});
|
124
|
+
return {
|
125
|
+
success: null,
|
126
|
+
failure: {
|
127
|
+
error: ProtocolError.GENERIC_FAIL,
|
128
|
+
peerId: peerId
|
129
|
+
}
|
130
|
+
};
|
131
|
+
}
|
132
|
+
}
|
133
|
+
const statusCode = response.statusCode;
|
134
|
+
const isSuccess = isSuccessStatusCodeV3(statusCode);
|
135
|
+
// Special handling for nwaku rate limiting
|
136
|
+
if (statusCode === LightPushStatusCodeV3.TOO_MANY_REQUESTS) {
|
137
|
+
if (response.requestId === "N/A") {
|
138
|
+
log.warn("Rate limited by nwaku node", {
|
139
|
+
statusDesc: response.statusDesc || "Request rejected due to too many requests"
|
140
|
+
});
|
141
|
+
}
|
142
|
+
}
|
143
|
+
if (response.relayPeerCount !== undefined) {
|
144
|
+
log.info(`Message relayed to ${response.relayPeerCount} peers`);
|
145
|
+
}
|
146
|
+
if (response.statusDesc && isRLNResponseError(response.statusDesc)) {
|
147
|
+
log.error("Remote peer fault: RLN generation");
|
148
|
+
return {
|
149
|
+
success: null,
|
150
|
+
failure: {
|
151
|
+
error: ProtocolError.RLN_PROOF_GENERATION,
|
152
|
+
peerId: peerId
|
153
|
+
}
|
154
|
+
};
|
155
|
+
}
|
156
|
+
if (!isSuccess) {
|
157
|
+
const errorMessage = getLightPushStatusDescriptionV3(statusCode, response.statusDesc);
|
158
|
+
log.error("Remote peer rejected the message: ", errorMessage);
|
159
|
+
const protocolError = lightPushStatusCodeToProtocolErrorV3(statusCode);
|
160
|
+
return {
|
161
|
+
success: null,
|
162
|
+
failure: {
|
163
|
+
error: protocolError,
|
164
|
+
peerId: peerId
|
165
|
+
}
|
166
|
+
};
|
167
|
+
}
|
168
|
+
return { success: peerId, failure: null };
|
169
|
+
}
|
170
|
+
}
|
171
|
+
//# 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
|
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,
|
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,4 @@
|
|
1
|
+
import { LightPushStatusCodeV3, ProtocolError } from "@waku/interfaces";
|
2
|
+
export declare const lightPushStatusDescriptionsV3: Record<LightPushStatusCodeV3, string>;
|
3
|
+
export declare function lightPushStatusCodeToProtocolErrorV3(statusCode: LightPushStatusCodeV3 | number | undefined): ProtocolError;
|
4
|
+
export declare function getLightPushStatusDescriptionV3(statusCode: number | undefined, customDesc?: string): string;
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import { LightPushStatusCodeV3, ProtocolError } from "@waku/interfaces";
|
2
|
+
export const lightPushStatusDescriptionsV3 = {
|
3
|
+
[LightPushStatusCodeV3.SUCCESS]: "Message sent successfully",
|
4
|
+
[LightPushStatusCodeV3.BAD_REQUEST]: "Bad request format",
|
5
|
+
[LightPushStatusCodeV3.PAYLOAD_TOO_LARGE]: "Message payload exceeds maximum size",
|
6
|
+
[LightPushStatusCodeV3.INVALID_MESSAGE_ERROR]: "Message validation failed",
|
7
|
+
[LightPushStatusCodeV3.UNSUPPORTED_PUBSUB_TOPIC]: "Unsupported pubsub topic",
|
8
|
+
[LightPushStatusCodeV3.TOO_MANY_REQUESTS]: "Rate limit exceeded",
|
9
|
+
[LightPushStatusCodeV3.INTERNAL_SERVER_ERROR]: "Internal server error",
|
10
|
+
[LightPushStatusCodeV3.SERVICE_NOT_AVAILABLE]: "Service temporarily unavailable",
|
11
|
+
[LightPushStatusCodeV3.OUT_OF_RLN_PROOF]: "RLN proof generation failed",
|
12
|
+
[LightPushStatusCodeV3.NO_PEERS_TO_RELAY]: "No relay peers available"
|
13
|
+
};
|
14
|
+
export function lightPushStatusCodeToProtocolErrorV3(statusCode) {
|
15
|
+
if (!statusCode) {
|
16
|
+
return ProtocolError.GENERIC_FAIL;
|
17
|
+
}
|
18
|
+
switch (statusCode) {
|
19
|
+
case LightPushStatusCodeV3.SUCCESS:
|
20
|
+
return ProtocolError.GENERIC_FAIL;
|
21
|
+
case LightPushStatusCodeV3.BAD_REQUEST:
|
22
|
+
return ProtocolError.DECODE_FAILED;
|
23
|
+
case LightPushStatusCodeV3.PAYLOAD_TOO_LARGE:
|
24
|
+
return ProtocolError.SIZE_TOO_BIG;
|
25
|
+
case LightPushStatusCodeV3.INVALID_MESSAGE_ERROR:
|
26
|
+
return ProtocolError.EMPTY_PAYLOAD;
|
27
|
+
case LightPushStatusCodeV3.UNSUPPORTED_PUBSUB_TOPIC:
|
28
|
+
return ProtocolError.TOPIC_NOT_CONFIGURED;
|
29
|
+
case LightPushStatusCodeV3.TOO_MANY_REQUESTS:
|
30
|
+
return ProtocolError.REMOTE_PEER_REJECTED;
|
31
|
+
case LightPushStatusCodeV3.INTERNAL_SERVER_ERROR:
|
32
|
+
return ProtocolError.GENERIC_FAIL;
|
33
|
+
case LightPushStatusCodeV3.SERVICE_NOT_AVAILABLE:
|
34
|
+
return ProtocolError.NO_PEER_AVAILABLE;
|
35
|
+
case LightPushStatusCodeV3.OUT_OF_RLN_PROOF:
|
36
|
+
return ProtocolError.RLN_PROOF_GENERATION;
|
37
|
+
case LightPushStatusCodeV3.NO_PEERS_TO_RELAY:
|
38
|
+
return ProtocolError.NO_PEER_AVAILABLE;
|
39
|
+
default:
|
40
|
+
return ProtocolError.REMOTE_PEER_REJECTED;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
export function getLightPushStatusDescriptionV3(statusCode, customDesc) {
|
44
|
+
if (customDesc) {
|
45
|
+
return customDesc;
|
46
|
+
}
|
47
|
+
if (!statusCode) {
|
48
|
+
return "Unknown error";
|
49
|
+
}
|
50
|
+
return (lightPushStatusDescriptionsV3[statusCode] ||
|
51
|
+
`Unknown status code: ${statusCode}`);
|
52
|
+
}
|
53
|
+
//# 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,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAExE,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,+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"}
|
@@ -1 +1,7 @@
|
|
1
|
+
import { ProtocolError } from "@waku/interfaces";
|
1
2
|
export declare const isRLNResponseError: (info?: string) => boolean;
|
3
|
+
/**
|
4
|
+
* Maps error information from push response to appropriate ProtocolError
|
5
|
+
* Uses pattern matching to handle various error cases
|
6
|
+
*/
|
7
|
+
export declare function mapInfoToProtocolError(info?: string): ProtocolError;
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { ProtocolError } from "@waku/interfaces";
|
1
2
|
// should match nwaku
|
2
3
|
// https://github.com/waku-org/nwaku/blob/c3cb06ac6c03f0f382d3941ea53b330f6a8dd127/waku/waku_rln_relay/rln_relay.nim#L309
|
3
4
|
// https://github.com/waku-org/nwaku/blob/c3cb06ac6c03f0f382d3941ea53b330f6a8dd127/tests/waku_rln_relay/rln/waku_rln_relay_utils.nim#L20
|
@@ -15,4 +16,44 @@ export const isRLNResponseError = (info) => {
|
|
15
16
|
info.includes(RLN_MESSAGE_ID_PREFIX_ERROR) ||
|
16
17
|
info.includes(RLN_REMOTE_VALIDATION));
|
17
18
|
};
|
19
|
+
/**
|
20
|
+
* Maps error information from push response to appropriate ProtocolError
|
21
|
+
* Uses pattern matching to handle various error cases
|
22
|
+
*/
|
23
|
+
export function mapInfoToProtocolError(info) {
|
24
|
+
if (!info) {
|
25
|
+
return ProtocolError.REMOTE_PEER_REJECTED;
|
26
|
+
}
|
27
|
+
const lowerInfo = info.toLowerCase();
|
28
|
+
// RLN errors
|
29
|
+
if (isRLNResponseError(info)) {
|
30
|
+
return ProtocolError.RLN_PROOF_GENERATION;
|
31
|
+
}
|
32
|
+
// Rate limiting patterns
|
33
|
+
if (lowerInfo.includes("rate limit") ||
|
34
|
+
lowerInfo.includes("too many requests")) {
|
35
|
+
return ProtocolError.REMOTE_PEER_REJECTED;
|
36
|
+
}
|
37
|
+
// Topic errors
|
38
|
+
if (lowerInfo.includes("topic") &&
|
39
|
+
(lowerInfo.includes("not found") || lowerInfo.includes("not configured"))) {
|
40
|
+
return ProtocolError.TOPIC_NOT_CONFIGURED;
|
41
|
+
}
|
42
|
+
// Size errors
|
43
|
+
if (lowerInfo.includes("too large") || lowerInfo.includes("size")) {
|
44
|
+
return ProtocolError.SIZE_TOO_BIG;
|
45
|
+
}
|
46
|
+
// Decoding errors
|
47
|
+
if (lowerInfo.includes("decode") ||
|
48
|
+
lowerInfo.includes("invalid") ||
|
49
|
+
lowerInfo.includes("malformed")) {
|
50
|
+
return ProtocolError.DECODE_FAILED;
|
51
|
+
}
|
52
|
+
// Empty payload
|
53
|
+
if (lowerInfo.includes("empty") && lowerInfo.includes("payload")) {
|
54
|
+
return ProtocolError.EMPTY_PAYLOAD;
|
55
|
+
}
|
56
|
+
// Default case
|
57
|
+
return ProtocolError.REMOTE_PEER_REJECTED;
|
58
|
+
}
|
18
59
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/light_push/utils.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,yHAAyH;AACzH,wIAAwI;AACxI,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AACnE,MAAM,2BAA2B,GAC/B,uDAAuD,CAAC;AAE1D,0BAA0B;AAC1B,wHAAwH;AACxH,gHAAgH;AAChH,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAW,EAAE;IAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACrC,CAAC;AACJ,CAAC,CAAC"}
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/light_push/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAqB;AACrB,yHAAyH;AACzH,wIAAwI;AACxI,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AACnE,MAAM,2BAA2B,GAC/B,uDAAuD,CAAC;AAE1D,0BAA0B;AAC1B,wHAAwH;AACxH,gHAAgH;AAChH,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAW,EAAE;IAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACrC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,aAAa,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,aAAa;IACb,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,yBAAyB;IACzB,IACE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EACvC,CAAC;QACD,OAAO,aAAa,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,eAAe;IACf,IACE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3B,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACzE,CAAC;QACD,OAAO,aAAa,CAAC,oBAAoB,CAAC;IAC5C,CAAC;IAED,cAAc;IACd,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,kBAAkB;IAClB,IACE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC/B,CAAC;QACD,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,gBAAgB;IAChB,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,eAAe;IACf,OAAO,aAAa,CAAC,oBAAoB,CAAC;AAC5C,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
|
-
|
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<
|
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.
|