@waku/core 0.0.1 → 0.0.3

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 (134) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/bundle/{index-691c0be6.js → index-a67d7136.js} +1 -1
  3. package/bundle/{index-0a4bdddc.js → index-f7e049ad.js} +1 -1
  4. package/bundle/index.js +24853 -3555
  5. package/bundle/lib/peer_discovery_static_list.js +18 -4
  6. package/bundle/lib/predefined_bootstrap_nodes.js +1 -1
  7. package/bundle/lib/wait_for_remote_peer.js +2 -3
  8. package/bundle/lib/waku_message/topic_only_message.js +2 -3
  9. package/bundle/lib/waku_message/version_0.js +317 -4
  10. package/bundle/{message-e2db79d7.js → message-049c8b67.js} +861 -2
  11. package/bundle/{topic_only_message-34f36fa6.js → topic_only_message-5ad3a869.js} +1 -1
  12. package/dist/index.d.ts +0 -3
  13. package/dist/index.js +0 -3
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/waku_filter/index.d.ts +2 -2
  16. package/dist/lib/waku_filter/index.js.map +1 -1
  17. package/dist/lib/waku_message/version_0.d.ts +3 -2
  18. package/dist/lib/waku_message/version_0.js +2 -1
  19. package/dist/lib/waku_message/version_0.js.map +1 -1
  20. package/dist/lib/waku_relay/index.d.ts +4 -3
  21. package/dist/lib/waku_relay/index.js.map +1 -1
  22. package/dist/lib/waku_store/index.d.ts +4 -4
  23. package/package.json +4 -123
  24. package/src/index.ts +0 -10
  25. package/src/lib/waku_filter/index.ts +4 -3
  26. package/src/lib/waku_message/version_0.ts +5 -3
  27. package/src/lib/waku_relay/index.ts +4 -3
  28. package/src/lib/waku_store/index.ts +5 -5
  29. package/bundle/crypto-8551d579.js +0 -2585
  30. package/bundle/crypto-b00764b7.js +0 -1772
  31. package/bundle/enr-564d4a51.js +0 -20785
  32. package/bundle/enr-9fc5eed8.js +0 -20786
  33. package/bundle/enr-f6e82a53.js +0 -20785
  34. package/bundle/events-fcbda4dc.js +0 -76
  35. package/bundle/index-02d21809.js +0 -20
  36. package/bundle/index-2ae915be.js +0 -1854
  37. package/bundle/index-a013a259.js +0 -20
  38. package/bundle/index-ba42b4fc.js +0 -862
  39. package/bundle/lib/enr.js +0 -8
  40. package/bundle/lib/peer_discovery_dns.js +0 -5018
  41. package/bundle/lib/utils.js +0 -1
  42. package/bundle/lib/waku_message/version_1.js +0 -463
  43. package/bundle/multiaddr_to_peer_info-c406b1e1.js +0 -19
  44. package/bundle/multiaddr_to_peer_info-fd1de516.js +0 -19
  45. package/bundle/utils-9a3221f2.js +0 -815
  46. package/bundle/version_0-e6fe440c.js +0 -317
  47. package/dist/lib/crypto.d.ts +0 -34
  48. package/dist/lib/crypto.js +0 -79
  49. package/dist/lib/crypto.js.map +0 -1
  50. package/dist/lib/enr/constants.d.ts +0 -4
  51. package/dist/lib/enr/constants.js +0 -8
  52. package/dist/lib/enr/constants.js.map +0 -1
  53. package/dist/lib/enr/enr.d.ts +0 -90
  54. package/dist/lib/enr/enr.js +0 -432
  55. package/dist/lib/enr/enr.js.map +0 -1
  56. package/dist/lib/enr/index.d.ts +0 -5
  57. package/dist/lib/enr/index.js +0 -6
  58. package/dist/lib/enr/index.js.map +0 -1
  59. package/dist/lib/enr/keypair/index.d.ts +0 -8
  60. package/dist/lib/enr/keypair/index.js +0 -53
  61. package/dist/lib/enr/keypair/index.js.map +0 -1
  62. package/dist/lib/enr/keypair/secp256k1.d.ts +0 -13
  63. package/dist/lib/enr/keypair/secp256k1.js +0 -57
  64. package/dist/lib/enr/keypair/secp256k1.js.map +0 -1
  65. package/dist/lib/enr/keypair/types.d.ts +0 -13
  66. package/dist/lib/enr/keypair/types.js +0 -7
  67. package/dist/lib/enr/keypair/types.js.map +0 -1
  68. package/dist/lib/enr/multiaddr_from_fields.d.ts +0 -2
  69. package/dist/lib/enr/multiaddr_from_fields.js +0 -8
  70. package/dist/lib/enr/multiaddr_from_fields.js.map +0 -1
  71. package/dist/lib/enr/multiaddrs_codec.d.ts +0 -3
  72. package/dist/lib/enr/multiaddrs_codec.js +0 -32
  73. package/dist/lib/enr/multiaddrs_codec.js.map +0 -1
  74. package/dist/lib/enr/types.d.ts +0 -8
  75. package/dist/lib/enr/types.js +0 -3
  76. package/dist/lib/enr/types.js.map +0 -1
  77. package/dist/lib/enr/v4.d.ts +0 -3
  78. package/dist/lib/enr/v4.js +0 -14
  79. package/dist/lib/enr/v4.js.map +0 -1
  80. package/dist/lib/enr/waku2_codec.d.ts +0 -8
  81. package/dist/lib/enr/waku2_codec.js +0 -36
  82. package/dist/lib/enr/waku2_codec.js.map +0 -1
  83. package/dist/lib/peer_discovery_dns/dns.d.ts +0 -48
  84. package/dist/lib/peer_discovery_dns/dns.js +0 -158
  85. package/dist/lib/peer_discovery_dns/dns.js.map +0 -1
  86. package/dist/lib/peer_discovery_dns/dns_over_https.d.ts +0 -32
  87. package/dist/lib/peer_discovery_dns/dns_over_https.js +0 -87
  88. package/dist/lib/peer_discovery_dns/dns_over_https.js.map +0 -1
  89. package/dist/lib/peer_discovery_dns/enrtree.d.ts +0 -33
  90. package/dist/lib/peer_discovery_dns/enrtree.js +0 -76
  91. package/dist/lib/peer_discovery_dns/enrtree.js.map +0 -1
  92. package/dist/lib/peer_discovery_dns/fetch_nodes.d.ts +0 -14
  93. package/dist/lib/peer_discovery_dns/fetch_nodes.js +0 -133
  94. package/dist/lib/peer_discovery_dns/fetch_nodes.js.map +0 -1
  95. package/dist/lib/peer_discovery_dns/index.d.ts +0 -30
  96. package/dist/lib/peer_discovery_dns/index.js +0 -54
  97. package/dist/lib/peer_discovery_dns/index.js.map +0 -1
  98. package/dist/lib/utils.d.ts +0 -22
  99. package/dist/lib/utils.js +0 -40
  100. package/dist/lib/utils.js.map +0 -1
  101. package/dist/lib/waku_message/constants.d.ts +0 -12
  102. package/dist/lib/waku_message/constants.js +0 -10
  103. package/dist/lib/waku_message/constants.js.map +0 -1
  104. package/dist/lib/waku_message/ecies.d.ts +0 -17
  105. package/dist/lib/waku_message/ecies.js +0 -126
  106. package/dist/lib/waku_message/ecies.js.map +0 -1
  107. package/dist/lib/waku_message/symmetric.d.ts +0 -3
  108. package/dist/lib/waku_message/symmetric.js +0 -18
  109. package/dist/lib/waku_message/symmetric.js.map +0 -1
  110. package/dist/lib/waku_message/version_1.d.ts +0 -93
  111. package/dist/lib/waku_message/version_1.js +0 -325
  112. package/dist/lib/waku_message/version_1.js.map +0 -1
  113. package/src/lib/crypto.ts +0 -100
  114. package/src/lib/enr/constants.ts +0 -10
  115. package/src/lib/enr/enr.ts +0 -516
  116. package/src/lib/enr/index.ts +0 -5
  117. package/src/lib/enr/keypair/index.ts +0 -76
  118. package/src/lib/enr/keypair/secp256k1.ts +0 -69
  119. package/src/lib/enr/keypair/types.ts +0 -14
  120. package/src/lib/enr/multiaddr_from_fields.ts +0 -18
  121. package/src/lib/enr/multiaddrs_codec.ts +0 -50
  122. package/src/lib/enr/types.ts +0 -11
  123. package/src/lib/enr/v4.ts +0 -22
  124. package/src/lib/enr/waku2_codec.ts +0 -39
  125. package/src/lib/peer_discovery_dns/dns.ts +0 -223
  126. package/src/lib/peer_discovery_dns/dns_over_https.ts +0 -98
  127. package/src/lib/peer_discovery_dns/enrtree.ts +0 -123
  128. package/src/lib/peer_discovery_dns/fetch_nodes.ts +0 -180
  129. package/src/lib/peer_discovery_dns/index.ts +0 -84
  130. package/src/lib/utils.ts +0 -50
  131. package/src/lib/waku_message/constants.ts +0 -10
  132. package/src/lib/waku_message/ecies.ts +0 -194
  133. package/src/lib/waku_message/symmetric.ts +0 -33
  134. package/src/lib/waku_message/version_1.ts +0 -457
@@ -1,432 +0,0 @@
1
- import * as RLP from "@ethersproject/rlp";
2
- import { convertToBytes, convertToString, } from "@multiformats/multiaddr/convert";
3
- import debug from "debug";
4
- import { fromString } from "uint8arrays/from-string";
5
- import { toString } from "uint8arrays/to-string";
6
- import { compressPublicKey, keccak256, verifySignature } from "../crypto.js";
7
- import { bytesToHex, bytesToUtf8, hexToBytes, utf8ToBytes } from "../utils.js";
8
- import { ERR_INVALID_ID, ERR_NO_SIGNATURE, MAX_RECORD_SIZE } from "./constants.js";
9
- import { createKeypair, createKeypairFromPeerId, createPeerIdFromKeypair, KeypairType, } from "./keypair/index.js";
10
- import { multiaddrFromFields } from "./multiaddr_from_fields.js";
11
- import { decodeMultiaddrs, encodeMultiaddrs } from "./multiaddrs_codec.js";
12
- import * as v4 from "./v4.js";
13
- import { decodeWaku2, encodeWaku2 } from "./waku2_codec.js";
14
- const log = debug("waku:enr");
15
- export class ENR extends Map {
16
- constructor(kvs = {}, seq = BigInt(1), signature = null) {
17
- super(Object.entries(kvs));
18
- this.seq = seq;
19
- this.signature = signature;
20
- }
21
- static async create(kvs = {}, seq = BigInt(1), signature = null) {
22
- const enr = new ENR(kvs, seq, signature);
23
- try {
24
- const publicKey = enr.publicKey;
25
- if (publicKey) {
26
- const keypair = createKeypair(enr.keypairType, undefined, publicKey);
27
- enr.peerId = await createPeerIdFromKeypair(keypair);
28
- }
29
- }
30
- catch (e) {
31
- log("Could not calculate peer id for ENR", e);
32
- }
33
- return enr;
34
- }
35
- static createV4(publicKey, kvs = {}) {
36
- // EIP-778 specifies that the key must be in compressed format, 33 bytes
37
- if (publicKey.length !== 33) {
38
- publicKey = compressPublicKey(publicKey);
39
- }
40
- return ENR.create({
41
- ...kvs,
42
- id: utf8ToBytes("v4"),
43
- secp256k1: publicKey,
44
- });
45
- }
46
- static async createFromPeerId(peerId, kvs = {}) {
47
- const keypair = await createKeypairFromPeerId(peerId);
48
- switch (keypair.type) {
49
- case KeypairType.secp256k1:
50
- return ENR.createV4(keypair.publicKey, kvs);
51
- default:
52
- throw new Error();
53
- }
54
- }
55
- static async decodeFromValues(decoded) {
56
- if (!Array.isArray(decoded)) {
57
- throw new Error("Decoded ENR must be an array");
58
- }
59
- if (decoded.length % 2 !== 0) {
60
- throw new Error("Decoded ENR must have an even number of elements");
61
- }
62
- const [signature, seq, ...kvs] = decoded;
63
- if (!signature || Array.isArray(signature)) {
64
- throw new Error("Decoded ENR invalid signature: must be a byte array");
65
- }
66
- if (!seq || Array.isArray(seq)) {
67
- throw new Error("Decoded ENR invalid sequence number: must be a byte array");
68
- }
69
- const obj = {};
70
- for (let i = 0; i < kvs.length; i += 2) {
71
- try {
72
- obj[bytesToUtf8(kvs[i])] = kvs[i + 1];
73
- }
74
- catch (e) {
75
- log("Failed to decode ENR key to UTF-8, skipping it", kvs[i], e);
76
- }
77
- }
78
- // If seq is an empty array, translate as value 0
79
- const hexSeq = "0x" + (seq.length ? bytesToHex(seq) : "00");
80
- const enr = await ENR.create(obj, BigInt(hexSeq), signature);
81
- const rlpEncodedBytes = hexToBytes(RLP.encode([seq, ...kvs]));
82
- if (!enr.verify(rlpEncodedBytes, signature)) {
83
- throw new Error("Unable to verify ENR signature");
84
- }
85
- return enr;
86
- }
87
- static decode(encoded) {
88
- const decoded = RLP.decode(encoded).map(hexToBytes);
89
- return ENR.decodeFromValues(decoded);
90
- }
91
- static decodeTxt(encoded) {
92
- if (!encoded.startsWith(this.RECORD_PREFIX)) {
93
- throw new Error(`"string encoded ENR must start with '${this.RECORD_PREFIX}'`);
94
- }
95
- return ENR.decode(fromString(encoded.slice(4), "base64url"));
96
- }
97
- set(k, v) {
98
- this.signature = null;
99
- this.seq++;
100
- return super.set(k, v);
101
- }
102
- get id() {
103
- const id = this.get("id");
104
- if (!id)
105
- throw new Error("id not found.");
106
- return bytesToUtf8(id);
107
- }
108
- get keypairType() {
109
- switch (this.id) {
110
- case "v4":
111
- return KeypairType.secp256k1;
112
- default:
113
- throw new Error(ERR_INVALID_ID);
114
- }
115
- }
116
- get publicKey() {
117
- switch (this.id) {
118
- case "v4":
119
- return this.get("secp256k1");
120
- default:
121
- throw new Error(ERR_INVALID_ID);
122
- }
123
- }
124
- get keypair() {
125
- if (this.publicKey) {
126
- const publicKey = this.publicKey;
127
- return createKeypair(this.keypairType, undefined, publicKey);
128
- }
129
- return;
130
- }
131
- get nodeId() {
132
- switch (this.id) {
133
- case "v4":
134
- return this.publicKey ? v4.nodeId(this.publicKey) : undefined;
135
- default:
136
- throw new Error(ERR_INVALID_ID);
137
- }
138
- }
139
- get ip() {
140
- const raw = this.get("ip");
141
- if (raw) {
142
- return convertToString("ip4", raw);
143
- }
144
- else {
145
- return undefined;
146
- }
147
- }
148
- set ip(ip) {
149
- if (ip) {
150
- this.set("ip", convertToBytes("ip4", ip));
151
- }
152
- else {
153
- this.delete("ip");
154
- }
155
- }
156
- get tcp() {
157
- const raw = this.get("tcp");
158
- if (raw) {
159
- return Number(convertToString("tcp", raw));
160
- }
161
- else {
162
- return undefined;
163
- }
164
- }
165
- set tcp(port) {
166
- if (port === undefined) {
167
- this.delete("tcp");
168
- }
169
- else {
170
- this.set("tcp", convertToBytes("tcp", port.toString(10)));
171
- }
172
- }
173
- get udp() {
174
- const raw = this.get("udp");
175
- if (raw) {
176
- return Number(convertToString("udp", raw));
177
- }
178
- else {
179
- return undefined;
180
- }
181
- }
182
- set udp(port) {
183
- if (port === undefined) {
184
- this.delete("udp");
185
- }
186
- else {
187
- this.set("udp", convertToBytes("udp", port.toString(10)));
188
- }
189
- }
190
- get ip6() {
191
- const raw = this.get("ip6");
192
- if (raw) {
193
- return convertToString("ip6", raw);
194
- }
195
- else {
196
- return undefined;
197
- }
198
- }
199
- set ip6(ip) {
200
- if (ip) {
201
- this.set("ip6", convertToBytes("ip6", ip));
202
- }
203
- else {
204
- this.delete("ip6");
205
- }
206
- }
207
- get tcp6() {
208
- const raw = this.get("tcp6");
209
- if (raw) {
210
- return Number(convertToString("tcp", raw));
211
- }
212
- else {
213
- return undefined;
214
- }
215
- }
216
- set tcp6(port) {
217
- if (port === undefined) {
218
- this.delete("tcp6");
219
- }
220
- else {
221
- this.set("tcp6", convertToBytes("tcp", port.toString(10)));
222
- }
223
- }
224
- get udp6() {
225
- const raw = this.get("udp6");
226
- if (raw) {
227
- return Number(convertToString("udp", raw));
228
- }
229
- else {
230
- return undefined;
231
- }
232
- }
233
- set udp6(port) {
234
- if (port === undefined) {
235
- this.delete("udp6");
236
- }
237
- else {
238
- this.set("udp6", convertToBytes("udp", port.toString(10)));
239
- }
240
- }
241
- /**
242
- * Get the `multiaddrs` field from ENR.
243
- *
244
- * This field is used to store multiaddresses that cannot be stored with the current ENR pre-defined keys.
245
- * These can be a multiaddresses that include encapsulation (e.g. wss) or do not use `ip4` nor `ip6` for the host
246
- * address (e.g. `dns4`, `dnsaddr`, etc)..
247
- *
248
- * If the peer information only contains information that can be represented with the ENR pre-defined keys
249
- * (ip, tcp, etc) then the usage of { @link getLocationMultiaddr } should be preferred.
250
- *
251
- * The multiaddresses stored in this field are expected to be location multiaddresses, ie, peer id less.
252
- */
253
- get multiaddrs() {
254
- const raw = this.get("multiaddrs");
255
- if (raw)
256
- return decodeMultiaddrs(raw);
257
- return;
258
- }
259
- /**
260
- * Set the `multiaddrs` field on the ENR.
261
- *
262
- * This field is used to store multiaddresses that cannot be stored with the current ENR pre-defined keys.
263
- * These can be a multiaddresses that include encapsulation (e.g. wss) or do not use `ip4` nor `ip6` for the host
264
- * address (e.g. `dns4`, `dnsaddr`, etc)..
265
- *
266
- * If the peer information only contains information that can be represented with the ENR pre-defined keys
267
- * (ip, tcp, etc) then the usage of { @link setLocationMultiaddr } should be preferred.
268
- * The multiaddresses stored in this field must be location multiaddresses,
269
- * ie, without a peer id.
270
- */
271
- set multiaddrs(multiaddrs) {
272
- if (multiaddrs === undefined) {
273
- this.delete("multiaddrs");
274
- }
275
- else {
276
- const multiaddrsBuf = encodeMultiaddrs(multiaddrs);
277
- this.set("multiaddrs", multiaddrsBuf);
278
- }
279
- }
280
- getLocationMultiaddr(protocol) {
281
- if (protocol === "udp") {
282
- return (this.getLocationMultiaddr("udp4") || this.getLocationMultiaddr("udp6"));
283
- }
284
- if (protocol === "tcp") {
285
- return (this.getLocationMultiaddr("tcp4") || this.getLocationMultiaddr("tcp6"));
286
- }
287
- const isIpv6 = protocol.endsWith("6");
288
- const ipVal = this.get(isIpv6 ? "ip6" : "ip");
289
- if (!ipVal) {
290
- return;
291
- }
292
- const isUdp = protocol.startsWith("udp");
293
- const isTcp = protocol.startsWith("tcp");
294
- let protoName, protoVal;
295
- if (isUdp) {
296
- protoName = "udp";
297
- protoVal = isIpv6 ? this.get("udp6") : this.get("udp");
298
- }
299
- else if (isTcp) {
300
- protoName = "tcp";
301
- protoVal = isIpv6 ? this.get("tcp6") : this.get("tcp");
302
- }
303
- else {
304
- return;
305
- }
306
- if (!protoVal) {
307
- return;
308
- }
309
- return multiaddrFromFields(isIpv6 ? "ip6" : "ip4", protoName, ipVal, protoVal);
310
- }
311
- setLocationMultiaddr(multiaddr) {
312
- const protoNames = multiaddr.protoNames();
313
- if (protoNames.length !== 2 &&
314
- protoNames[1] !== "udp" &&
315
- protoNames[1] !== "tcp") {
316
- throw new Error("Invalid multiaddr");
317
- }
318
- const tuples = multiaddr.tuples();
319
- if (!tuples[0][1] || !tuples[1][1]) {
320
- throw new Error("Invalid multiaddr");
321
- }
322
- // IPv4
323
- if (tuples[0][0] === 4) {
324
- this.set("ip", tuples[0][1]);
325
- this.set(protoNames[1], tuples[1][1]);
326
- }
327
- else {
328
- this.set("ip6", tuples[0][1]);
329
- this.set(protoNames[1] + "6", tuples[1][1]);
330
- }
331
- }
332
- /**
333
- * Returns the full multiaddr from the ENR fields matching the provided
334
- * `protocol` parameter.
335
- * To return full multiaddrs from the `multiaddrs` ENR field,
336
- * use { @link ENR.getFullMultiaddrs }.
337
- *
338
- * @param protocol
339
- */
340
- getFullMultiaddr(protocol) {
341
- if (this.peerId) {
342
- const locationMultiaddr = this.getLocationMultiaddr(protocol);
343
- if (locationMultiaddr) {
344
- return locationMultiaddr.encapsulate(`/p2p/${this.peerId.toString()}`);
345
- }
346
- }
347
- return;
348
- }
349
- /**
350
- * Returns the full multiaddrs from the `multiaddrs` ENR field.
351
- */
352
- getFullMultiaddrs() {
353
- if (this.peerId && this.multiaddrs) {
354
- const peerId = this.peerId;
355
- return this.multiaddrs.map((ma) => {
356
- return ma.encapsulate(`/p2p/${peerId.toString()}`);
357
- });
358
- }
359
- return [];
360
- }
361
- /**
362
- * Get the `waku2` field from ENR.
363
- */
364
- get waku2() {
365
- const raw = this.get("waku2");
366
- if (raw)
367
- return decodeWaku2(raw[0]);
368
- return;
369
- }
370
- /**
371
- * Set the `waku2` field on the ENR.
372
- */
373
- set waku2(waku2) {
374
- if (waku2 === undefined) {
375
- this.delete("waku2");
376
- }
377
- else {
378
- const byte = encodeWaku2(waku2);
379
- this.set("waku2", new Uint8Array([byte]));
380
- }
381
- }
382
- verify(data, signature) {
383
- if (!this.get("id") || this.id !== "v4") {
384
- throw new Error(ERR_INVALID_ID);
385
- }
386
- if (!this.publicKey) {
387
- throw new Error("Failed to verify ENR: No public key");
388
- }
389
- return verifySignature(signature, keccak256(data), this.publicKey);
390
- }
391
- async sign(data, privateKey) {
392
- switch (this.id) {
393
- case "v4":
394
- this.signature = await v4.sign(privateKey, data);
395
- break;
396
- default:
397
- throw new Error(ERR_INVALID_ID);
398
- }
399
- return this.signature;
400
- }
401
- async encodeToValues(privateKey) {
402
- // sort keys and flatten into [k, v, k, v, ...]
403
- const content = Array.from(this.keys())
404
- .sort((a, b) => a.localeCompare(b))
405
- .map((k) => [k, this.get(k)])
406
- .map(([k, v]) => [utf8ToBytes(k), v])
407
- .flat();
408
- content.unshift(new Uint8Array([Number(this.seq)]));
409
- if (privateKey) {
410
- content.unshift(await this.sign(hexToBytes(RLP.encode(content)), privateKey));
411
- }
412
- else {
413
- if (!this.signature) {
414
- throw new Error(ERR_NO_SIGNATURE);
415
- }
416
- content.unshift(this.signature);
417
- }
418
- return content;
419
- }
420
- async encode(privateKey) {
421
- const encoded = hexToBytes(RLP.encode(await this.encodeToValues(privateKey)));
422
- if (encoded.length >= MAX_RECORD_SIZE) {
423
- throw new Error("ENR must be less than 300 bytes");
424
- }
425
- return encoded;
426
- }
427
- async encodeTxt(privateKey) {
428
- return (ENR.RECORD_PREFIX + toString(await this.encode(privateKey), "base64url"));
429
- }
430
- }
431
- ENR.RECORD_PREFIX = "enr:";
432
- //# sourceMappingURL=enr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enr.js","sourceRoot":"","sources":["../../../src/lib/enr/enr.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export * from "./constants";
2
- export * from "./enr";
3
- export * from "./types";
4
- export * from "./keypair";
5
- export * from "./waku2_codec";
@@ -1,6 +0,0 @@
1
- export * from "./constants.js";
2
- export * from "./enr.js";
3
- export * from "./types.js";
4
- export * from "./keypair/index.js";
5
- export * from "./waku2_codec.js";
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/enr/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { PeerId } from "@libp2p/interface-peer-id";
2
- import { IKeypair, KeypairType } from "./types";
3
- export declare const ERR_TYPE_NOT_IMPLEMENTED = "Keypair type not implemented";
4
- export * from "./types";
5
- export * from "./secp256k1";
6
- export declare function createKeypair(type: KeypairType, privateKey?: Uint8Array, publicKey?: Uint8Array): IKeypair;
7
- export declare function createPeerIdFromKeypair(keypair: IKeypair): Promise<PeerId>;
8
- export declare function createKeypairFromPeerId(peerId: PeerId): Promise<IKeypair>;
@@ -1,53 +0,0 @@
1
- import { unmarshalPrivateKey, unmarshalPublicKey } from "@libp2p/crypto/keys";
2
- import { supportedKeys } from "@libp2p/crypto/keys";
3
- import { peerIdFromKeys } from "@libp2p/peer-id";
4
- import { Secp256k1Keypair } from "./secp256k1.js";
5
- import { KeypairType } from "./types.js";
6
- export const ERR_TYPE_NOT_IMPLEMENTED = "Keypair type not implemented";
7
- export * from "./types.js";
8
- export * from "./secp256k1.js";
9
- export function createKeypair(type, privateKey, publicKey) {
10
- switch (type) {
11
- case KeypairType.secp256k1:
12
- return new Secp256k1Keypair(privateKey, publicKey);
13
- default:
14
- throw new Error(ERR_TYPE_NOT_IMPLEMENTED);
15
- }
16
- }
17
- export async function createPeerIdFromKeypair(keypair) {
18
- switch (keypair.type) {
19
- case KeypairType.secp256k1: {
20
- const publicKey = new supportedKeys.secp256k1.Secp256k1PublicKey(keypair.publicKey);
21
- const privateKey = keypair.hasPrivateKey()
22
- ? new supportedKeys.secp256k1.Secp256k1PrivateKey(keypair.privateKey)
23
- : undefined;
24
- return peerIdFromKeys(publicKey.bytes, privateKey?.bytes);
25
- }
26
- default:
27
- throw new Error(ERR_TYPE_NOT_IMPLEMENTED);
28
- }
29
- }
30
- export async function createKeypairFromPeerId(peerId) {
31
- let keypairType;
32
- switch (peerId.type) {
33
- case "RSA":
34
- keypairType = KeypairType.rsa;
35
- break;
36
- case "Ed25519":
37
- keypairType = KeypairType.ed25519;
38
- break;
39
- case "secp256k1":
40
- keypairType = KeypairType.secp256k1;
41
- break;
42
- default:
43
- throw new Error("Unsupported peer id type");
44
- }
45
- const publicKey = peerId.publicKey
46
- ? unmarshalPublicKey(peerId.publicKey)
47
- : undefined;
48
- const privateKey = peerId.privateKey
49
- ? await unmarshalPrivateKey(peerId.privateKey)
50
- : undefined;
51
- return createKeypair(keypairType, privateKey?.marshal(), publicKey?.marshal());
52
- }
53
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/enr/keypair/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,CAAC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AACvE,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAE5B,MAAM,UAAU,aAAa,CAC3B,IAAiB,EACjB,UAAuB,EACvB,SAAsB;IAEtB,QAAQ,IAAI,EAAE;QACZ,KAAK,WAAW,CAAC,SAAS;YACxB,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrD;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAiB;IAEjB,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAC9D,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE;gBACxC,CAAC,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrE,CAAC,CAAC,SAAS,CAAC;YAEd,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;SAC3D;QACD;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC7C;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAc;IAEd,IAAI,WAAW,CAAC;IAChB,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,KAAK;YACR,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC;YAC9B,MAAM;QACR,KAAK,SAAS;YACZ,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;YAClC,MAAM;QACR,KAAK,WAAW;YACd,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC;YACpC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC/C;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS;QAChC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU;QAClC,CAAC,CAAC,MAAM,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,aAAa,CAClB,WAAW,EACX,UAAU,EAAE,OAAO,EAAE,EACrB,SAAS,EAAE,OAAO,EAAE,CACrB,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- import { IKeypair, KeypairType } from "./types";
2
- export declare class Secp256k1Keypair implements IKeypair {
3
- readonly type: KeypairType;
4
- _privateKey?: Uint8Array;
5
- readonly _publicKey?: Uint8Array;
6
- constructor(privateKey?: Uint8Array, publicKey?: Uint8Array);
7
- static generate(): Promise<Secp256k1Keypair>;
8
- privateKeyVerify(key?: Uint8Array | undefined): boolean;
9
- publicKeyVerify(key?: Uint8Array | undefined): boolean;
10
- get privateKey(): Uint8Array;
11
- get publicKey(): Uint8Array;
12
- hasPrivateKey(): boolean;
13
- }
@@ -1,57 +0,0 @@
1
- import * as secp from "@noble/secp256k1";
2
- import { compressPublicKey, randomBytes } from "../../crypto.js";
3
- import { KeypairType } from "./types.js";
4
- export class Secp256k1Keypair {
5
- constructor(privateKey, publicKey) {
6
- let pub = publicKey;
7
- if (pub) {
8
- pub = compressPublicKey(pub);
9
- }
10
- if ((this._privateKey = privateKey) && !this.privateKeyVerify()) {
11
- throw new Error("Invalid private key");
12
- }
13
- if ((this._publicKey = pub) && !this.publicKeyVerify()) {
14
- throw new Error("Invalid public key");
15
- }
16
- this.type = KeypairType.secp256k1;
17
- }
18
- static async generate() {
19
- const privateKey = randomBytes(32);
20
- const publicKey = secp.getPublicKey(privateKey);
21
- return new Secp256k1Keypair(privateKey, publicKey);
22
- }
23
- privateKeyVerify(key = this._privateKey) {
24
- if (key) {
25
- return secp.utils.isValidPrivateKey(key);
26
- }
27
- return true;
28
- }
29
- publicKeyVerify(key = this._publicKey) {
30
- if (key) {
31
- try {
32
- secp.Point.fromHex(key);
33
- return true;
34
- }
35
- catch {
36
- return false;
37
- }
38
- }
39
- return true;
40
- }
41
- get privateKey() {
42
- if (!this._privateKey) {
43
- throw new Error();
44
- }
45
- return this._privateKey;
46
- }
47
- get publicKey() {
48
- if (!this._publicKey) {
49
- throw new Error();
50
- }
51
- return this._publicKey;
52
- }
53
- hasPrivateKey() {
54
- return !!this._privateKey;
55
- }
56
- }
57
- //# sourceMappingURL=secp256k1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../../../../src/lib/enr/keypair/secp256k1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,OAAO,gBAAgB;IAK3B,YAAY,UAAuB,EAAE,SAAsB;QACzD,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,IAAI,GAAG,EAAE;YACP,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC/D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAED,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW;QACrC,IAAI,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU;QACnC,IAAI,GAAG,EAAE;YACP,IAAI;gBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC;aACb;YAAC,MAAM;gBACN,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,IAAI,KAAK,EAAE,CAAC;SACnB;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,MAAM,IAAI,KAAK,EAAE,CAAC;SACnB;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,aAAa;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- export declare enum KeypairType {
2
- rsa = 0,
3
- ed25519 = 1,
4
- secp256k1 = 2
5
- }
6
- export interface IKeypair {
7
- type: KeypairType;
8
- privateKey: Uint8Array;
9
- publicKey: Uint8Array;
10
- privateKeyVerify(): boolean;
11
- publicKeyVerify(): boolean;
12
- hasPrivateKey(): boolean;
13
- }
@@ -1,7 +0,0 @@
1
- export var KeypairType;
2
- (function (KeypairType) {
3
- KeypairType[KeypairType["rsa"] = 0] = "rsa";
4
- KeypairType[KeypairType["ed25519"] = 1] = "ed25519";
5
- KeypairType[KeypairType["secp256k1"] = 2] = "secp256k1";
6
- })(KeypairType || (KeypairType = {}));
7
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/enr/keypair/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,2CAAO,CAAA;IACP,mDAAW,CAAA;IACX,uDAAa,CAAA;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -1,2 +0,0 @@
1
- import type { Multiaddr } from "@multiformats/multiaddr";
2
- export declare function multiaddrFromFields(ipFamily: string, protocol: string, ipBytes: Uint8Array, protocolBytes: Uint8Array): Multiaddr;
@@ -1,8 +0,0 @@
1
- import { multiaddr } from "@multiformats/multiaddr";
2
- import { convertToString } from "@multiformats/multiaddr/convert";
3
- export function multiaddrFromFields(ipFamily, protocol, ipBytes, protocolBytes) {
4
- let ma = multiaddr("/" + ipFamily + "/" + convertToString(ipFamily, ipBytes));
5
- ma = ma.encapsulate(multiaddr("/" + protocol + "/" + convertToString(protocol, protocolBytes)));
6
- return ma;
7
- }
8
- //# sourceMappingURL=multiaddr_from_fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiaddr_from_fields.js","sourceRoot":"","sources":["../../../src/lib/enr/multiaddr_from_fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,QAAgB,EAChB,OAAmB,EACnB,aAAyB;IAEzB,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9E,EAAE,GAAG,EAAE,CAAC,WAAW,CACjB,SAAS,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAC3E,CAAC;IAEF,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Multiaddr } from "@multiformats/multiaddr";
2
- export declare function decodeMultiaddrs(bytes: Uint8Array): Multiaddr[];
3
- export declare function encodeMultiaddrs(multiaddrs: Multiaddr[]): Uint8Array;