From 09f7793f4a38525666d3387d0e9294f70a2a014c Mon Sep 17 00:00:00 2001 From: Sasha Date: Wed, 31 Jan 2024 00:37:31 +0100 Subject: [PATCH] simplify rln-js --- examples/rln-js/package-lock.json | 563 ++++++++++++++++++++---------- examples/rln-js/package.json | 5 +- examples/rln-js/src/const.js | 174 ++------- examples/rln-js/src/index.js | 8 +- examples/rln-js/src/rln.js | 83 ++--- examples/rln-js/src/waku.js | 17 +- 6 files changed, 450 insertions(+), 400 deletions(-) diff --git a/examples/rln-js/package-lock.json b/examples/rln-js/package-lock.json index e5a1ca1..41794ba 100644 --- a/examples/rln-js/package-lock.json +++ b/examples/rln-js/package-lock.json @@ -8,20 +8,17 @@ "name": "rln-chat", "version": "0.1.0", "dependencies": { - "@waku/rln": "0.1.1-0fbf6be", - "@waku/sdk": "^0.0.22", + "@waku/rln": "0.1.1-77ba0a6", + "@waku/sdk": "^0.0.21", "@waku/utils": "^0.0.14", "ethers": "^5.7.2", "multiaddr": "^10.0.1", "protobufjs": "^7.2.5" }, "devDependencies": { - "@metamask/types": "^1.1.0", - "@types/node": "^20", "copy-webpack-plugin": "^11.0.0", "eslint": "^8", "eslint-config-next": "13.5.6", - "typescript": "^5", "webpack": "^5.74.0", "webpack-cli": "^4.10.0", "webpack-dev-server": "^4.11.1" @@ -1202,6 +1199,15 @@ "uint8arraylist": "^2.4.3" } }, + "node_modules/@libp2p/interface-keys": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.8.tgz", + "integrity": "sha512-CJ1SlrwuoHMquhEEWS77E+4vv7hwB7XORkqzGQrPQmA9MRdIEZRS64bA4JqCLUDa4ltH0l+U1vp0oZHLT67NEA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@libp2p/interfaces": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.3.2.tgz", @@ -1403,16 +1409,6 @@ "ws": "^8.12.1" } }, - "node_modules/@metamask/types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@metamask/types/-/types-1.1.0.tgz", - "integrity": "sha512-EEV/GjlYkOSfSPnYXfOosxa3TqYtIW3fhg6jdw+cok/OhMgNn4wCfbENFqjytrHMU2f7ZKtBAvtiP5V8H44sSw==", - "deprecated": "@metamask/types has been folded into @metamask/utils and is no longer being maintained. Please use @metamask/utils going forward.", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/@multiformats/mafmt": { "version": "12.1.6", "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-12.1.6.tgz", @@ -1516,6 +1512,17 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, "node_modules/@noble/hashes": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", @@ -2081,17 +2088,17 @@ "dev": true }, "node_modules/@waku/core": { - "version": "0.0.26", - "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.26.tgz", - "integrity": "sha512-aarhaFrN/mDKB2tmVUSodMDt9V3CwllKFy8iYsy+fBcK1cBrv6Yj2nnl6PLDDhfxv+bylzS/OKEvEIAJ+be7YA==", + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.25.tgz", + "integrity": "sha512-YG6cRo82CaU92bf85hrN1s5FAtHlojaJ6I3pzOzRl7HAhhGVhQvfNgc1XHU1RiVkbw17ug8AapFPSy+A36gjvQ==", "dependencies": { "@noble/hashes": "^1.3.2", - "@waku/enr": "^0.0.20", - "@waku/interfaces": "0.0.21", - "@waku/proto": "0.0.6", - "@waku/utils": "0.0.14", + "@waku/enr": "^0.0.19", + "@waku/interfaces": "0.0.20", + "@waku/proto": "0.0.5", + "@waku/utils": "0.0.13", "debug": "^4.3.4", - "it-all": "^3.0.4", + "it-all": "^3.0.3", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1", "p-event": "^6.0.0", @@ -2111,13 +2118,34 @@ } } }, - "node_modules/@waku/dns-discovery": { + "node_modules/@waku/core/node_modules/@waku/interfaces": { "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@waku/dns-discovery/-/dns-discovery-0.0.20.tgz", - "integrity": "sha512-JnzR/B3iT33aWDg75lGkzM+4eXqZP5n/BlnjMyiXCXX+Du4arRveBg+812ZXZVVMQGLiM/aqM/JOPefKbTegOw==", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@waku/core/node_modules/@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", "dependencies": { - "@waku/enr": "0.0.20", - "@waku/utils": "0.0.14", + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@waku/dns-discovery": { + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/@waku/dns-discovery/-/dns-discovery-0.0.19.tgz", + "integrity": "sha512-K701xc+snE2NrvhORB7Wiyg4WXSGCjzE5LLCTeIaSzlB7eA1HbdU3wC57uiLdChqo495JPqMN/52TQ/m9nAwpQ==", + "dependencies": { + "@waku/enr": "0.0.19", + "@waku/utils": "0.0.13", "debug": "^4.3.4", "dns-query": "^0.11.2", "hi-base32": "^0.5.1", @@ -2127,17 +2155,30 @@ "node": ">=18" } }, + "node_modules/@waku/dns-discovery/node_modules/@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "dependencies": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@waku/enr": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.20.tgz", - "integrity": "sha512-dzTeESBxagggAaJ6xMCEaiB1PdNN+rLFuLF3mC/0iSgb6Ax2nl5lJmSVTsZpdkPuwiv+sZzt5KgaKzjQEvp0QA==", + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.19.tgz", + "integrity": "sha512-SomeHKk9kZwYoCNLqSB7SQ9ngnAIdKfQ0JACsc20azdhTxLYAQ6gWrrDFAmXnYwRKNAJfl8A28XThtWnGIiUpA==", "dependencies": { "@ethersproject/rlp": "^5.7.0", - "@libp2p/crypto": "^3.0.2", + "@libp2p/crypto": "^1.0.17", "@libp2p/peer-id": "^3.0.3", "@multiformats/multiaddr": "^12.0.0", "@noble/secp256k1": "^1.7.1", - "@waku/utils": "0.0.14", + "@waku/utils": "0.0.13", "debug": "^4.3.4", "js-sha3": "^0.9.2" }, @@ -2146,44 +2187,45 @@ } }, "node_modules/@waku/enr/node_modules/@libp2p/crypto": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.4.tgz", - "integrity": "sha512-FzSwBo+RJOUzdzEwug5ZL4dAGKwEBWTLzj+EmUTHHY6c87+oLh571DQk/w0oYObSD9hYbcKePgSBaZeBx0JaZg==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.17.tgz", + "integrity": "sha512-Oeg0Eb/EvAho0gVkOgemXEgrVxWaT3x/DpFgkBdZ9qGxwq75w/E/oPc7souqBz+l1swfz37GWnwV7bIb4Xv5Ag==", "dependencies": { - "@libp2p/interface": "^1.1.1", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "multiformats": "^13.0.0", + "@libp2p/interface-keys": "^1.0.2", + "@libp2p/interfaces": "^3.2.0", + "@noble/ed25519": "^1.6.0", + "@noble/secp256k1": "^1.5.4", + "multiformats": "^11.0.0", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^5.0.0" + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@waku/enr/node_modules/@libp2p/interface": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.1.2.tgz", - "integrity": "sha512-uC4hxtEJuWiDiZfokkSNEEbCzdyZrqb5kp67Wc5PjZsySZ2IoImdIfie003yQXlB1xBp/XUJzdC6kVu4M7LUmg==", + "node_modules/@waku/enr/node_modules/@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", "dependencies": { - "@multiformats/multiaddr": "^12.1.10", - "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.0.0", - "progress-events": "^1.0.0", - "uint8arraylist": "^2.4.7" + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + }, + "engines": { + "node": ">=18" } }, "node_modules/@waku/enr/node_modules/multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - }, - "node_modules/@waku/enr/node_modules/uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "dependencies": { - "multiformats": "^13.0.0" + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", + "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/@waku/interfaces": { @@ -2195,18 +2237,18 @@ } }, "node_modules/@waku/peer-exchange": { - "version": "0.0.19", - "resolved": "https://registry.npmjs.org/@waku/peer-exchange/-/peer-exchange-0.0.19.tgz", - "integrity": "sha512-T6eGHidBj49Lkw0fy3gKXbdJiyQ/0b6WYp8ZgJUySmtFCMmFQUEECbdHLx5iJFtocYmbGYFt04f+47dhoCyhog==", + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@waku/peer-exchange/-/peer-exchange-0.0.18.tgz", + "integrity": "sha512-oRXuASG62SxiVUYdJL7JJAHsa0yORuHHNg1oxL4apVgbnxDXY6SPcvGR1tgpBzMweryPzzx1IqMOZ9tusFCwyA==", "dependencies": { "@libp2p/interfaces": "^3.3.2", - "@waku/core": "0.0.26", - "@waku/enr": "0.0.20", - "@waku/interfaces": "0.0.21", - "@waku/proto": "0.0.6", - "@waku/utils": "0.0.14", + "@waku/core": "0.0.25", + "@waku/enr": "0.0.19", + "@waku/interfaces": "0.0.20", + "@waku/proto": "0.0.5", + "@waku/utils": "0.0.13", "debug": "^4.3.4", - "it-all": "^3.0.4", + "it-all": "^3.0.3", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1" }, @@ -2214,40 +2256,82 @@ "node": ">=18" } }, - "node_modules/@waku/proto": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.6.tgz", - "integrity": "sha512-KSlcpv8BRc/KeChIWfiz7Fska7N3FQhVOsgbV862/RMhj8dCiZPhWtNanuwipfe+GwWz5SMldowipBibukXSNA==", + "node_modules/@waku/peer-exchange/node_modules/@waku/interfaces": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@waku/peer-exchange/node_modules/@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", "dependencies": { - "protons-runtime": "^5.0.2" + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" }, "engines": { "node": ">=18" } }, - "node_modules/@waku/relay": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@waku/relay/-/relay-0.0.9.tgz", - "integrity": "sha512-BfjPUVh4rIyZ82PPGBhCIv7nnx/WhrqkpkcXmmM38gsRDHDZSNCE28I3ILs2m+IBjBdeaT16BCq0dUVQD84m2A==", + "node_modules/@waku/proto": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.5.tgz", + "integrity": "sha512-td0WKhUm+pcnpkbhuu5XV79ZcuM+f7b5swNIHHcqCaW5FaJeCtEhXsG8kNrt97kcDAHdr41lxFgQTRDlmAns4A==", "dependencies": { - "@chainsafe/libp2p-gossipsub": "^10.1.1", + "protons-runtime": "^5.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@waku/relay": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@waku/relay/-/relay-0.0.8.tgz", + "integrity": "sha512-H1DXlB7o6qo3dc+qtVFY8g8/jXlyYhSXEIiNU/4eHjCDt0fzl58JdT170QJMDuTQB8LswVzTMRUxFZM5/LTwXw==", + "dependencies": { + "@chainsafe/libp2p-gossipsub": "^10.1.0", "@noble/hashes": "^1.3.2", - "@waku/core": "0.0.26", - "@waku/interfaces": "0.0.21", - "@waku/proto": "0.0.6", - "@waku/utils": "0.0.14", - "chai": "^4.3.10", + "@waku/core": "0.0.25", + "@waku/interfaces": "0.0.20", + "@waku/proto": "0.0.5", + "@waku/utils": "0.0.13", + "chai": "^4.3.7", "debug": "^4.3.4", - "fast-check": "^3.14.0" + "fast-check": "^3.13.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@waku/relay/node_modules/@waku/interfaces": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@waku/relay/node_modules/@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "dependencies": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" }, "engines": { "node": ">=18" } }, "node_modules/@waku/rln": { - "version": "0.1.1-0fbf6be", - "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.1-0fbf6be.tgz", - "integrity": "sha512-8HiedJjhYLkQ98Qm0LnTEoHwmCEFbMqAV1ebQy052VBsXzSdb/jOHfHwW3h1F+55Vpr7OLkRWGm6BRxHv3Y08w==", + "version": "0.1.1-77ba0a6", + "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.1-77ba0a6.tgz", + "integrity": "sha512-qJGlTsL9xosrF9uNtzfKFa60ouOs2i0LidfolF2S381TZqq1vBa+mullLol5m7XMgvL8ULpKd+1KasXd0lKjMA==", "dependencies": { "@chainsafe/bls-keystore": "^3.0.0", "@waku/utils": "^0.0.13", @@ -2276,25 +2360,46 @@ } }, "node_modules/@waku/sdk": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@waku/sdk/-/sdk-0.0.22.tgz", - "integrity": "sha512-4ZnoYcnfuFYKtA738R6X/9RAoPM/cvG7PvkFp9y7wrnjKFBfb5/Ha36k20AkvdTAmdoUXmdl5g4i9q0iUapeBg==", + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@waku/sdk/-/sdk-0.0.21.tgz", + "integrity": "sha512-LKG4lGJryco9hHa5fS4GaZ1sDze6MoEeZWyRAmt4uN0UtarKWfzDzIUiifTH3x1vgpcV0mioQPCgeVy3z+acYg==", "dependencies": { - "@chainsafe/libp2p-noise": "^13.0.4", - "@libp2p/mplex": "^9.0.10", + "@chainsafe/libp2p-noise": "^13.0.0", + "@libp2p/mplex": "^9.0.5", "@libp2p/websockets": "^7.0.5", - "@waku/core": "0.0.26", - "@waku/dns-discovery": "0.0.20", - "@waku/interfaces": "0.0.21", - "@waku/peer-exchange": "^0.0.19", - "@waku/relay": "0.0.9", - "@waku/utils": "0.0.14", + "@waku/core": "0.0.25", + "@waku/dns-discovery": "0.0.19", + "@waku/interfaces": "0.0.20", + "@waku/peer-exchange": "^0.0.18", + "@waku/relay": "0.0.8", + "@waku/utils": "0.0.13", "libp2p": "^0.46.14" }, "engines": { "node": ">=18" } }, + "node_modules/@waku/sdk/node_modules/@waku/interfaces": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@waku/sdk/node_modules/@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "dependencies": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@waku/utils": { "version": "0.0.14", "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.14.tgz", @@ -9162,6 +9267,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10780,6 +10886,11 @@ "uint8arraylist": "^2.4.3" } }, + "@libp2p/interface-keys": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.8.tgz", + "integrity": "sha512-CJ1SlrwuoHMquhEEWS77E+4vv7hwB7XORkqzGQrPQmA9MRdIEZRS64bA4JqCLUDa4ltH0l+U1vp0oZHLT67NEA==" + }, "@libp2p/interfaces": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.3.2.tgz", @@ -10977,12 +11088,6 @@ "ws": "^8.12.1" } }, - "@metamask/types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@metamask/types/-/types-1.1.0.tgz", - "integrity": "sha512-EEV/GjlYkOSfSPnYXfOosxa3TqYtIW3fhg6jdw+cok/OhMgNn4wCfbENFqjytrHMU2f7ZKtBAvtiP5V8H44sSw==", - "dev": true - }, "@multiformats/mafmt": { "version": "12.1.6", "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-12.1.6.tgz", @@ -11080,6 +11185,11 @@ "@noble/hashes": "1.3.3" } }, + "@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==" + }, "@noble/hashes": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", @@ -11549,92 +11659,111 @@ "dev": true }, "@waku/core": { - "version": "0.0.26", - "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.26.tgz", - "integrity": "sha512-aarhaFrN/mDKB2tmVUSodMDt9V3CwllKFy8iYsy+fBcK1cBrv6Yj2nnl6PLDDhfxv+bylzS/OKEvEIAJ+be7YA==", + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.25.tgz", + "integrity": "sha512-YG6cRo82CaU92bf85hrN1s5FAtHlojaJ6I3pzOzRl7HAhhGVhQvfNgc1XHU1RiVkbw17ug8AapFPSy+A36gjvQ==", "requires": { "@noble/hashes": "^1.3.2", - "@waku/enr": "^0.0.20", - "@waku/interfaces": "0.0.21", - "@waku/proto": "0.0.6", - "@waku/utils": "0.0.14", + "@waku/enr": "^0.0.19", + "@waku/interfaces": "0.0.20", + "@waku/proto": "0.0.5", + "@waku/utils": "0.0.13", "debug": "^4.3.4", - "it-all": "^3.0.4", + "it-all": "^3.0.3", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1", "p-event": "^6.0.0", "uint8arraylist": "^2.4.3", "uuid": "^9.0.0" + }, + "dependencies": { + "@waku/interfaces": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==" + }, + "@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "requires": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + } + } } }, "@waku/dns-discovery": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@waku/dns-discovery/-/dns-discovery-0.0.20.tgz", - "integrity": "sha512-JnzR/B3iT33aWDg75lGkzM+4eXqZP5n/BlnjMyiXCXX+Du4arRveBg+812ZXZVVMQGLiM/aqM/JOPefKbTegOw==", + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/@waku/dns-discovery/-/dns-discovery-0.0.19.tgz", + "integrity": "sha512-K701xc+snE2NrvhORB7Wiyg4WXSGCjzE5LLCTeIaSzlB7eA1HbdU3wC57uiLdChqo495JPqMN/52TQ/m9nAwpQ==", "requires": { - "@waku/enr": "0.0.20", - "@waku/utils": "0.0.14", + "@waku/enr": "0.0.19", + "@waku/utils": "0.0.13", "debug": "^4.3.4", "dns-query": "^0.11.2", "hi-base32": "^0.5.1", "uint8arrays": "^4.0.4" + }, + "dependencies": { + "@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "requires": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + } + } } }, "@waku/enr": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.20.tgz", - "integrity": "sha512-dzTeESBxagggAaJ6xMCEaiB1PdNN+rLFuLF3mC/0iSgb6Ax2nl5lJmSVTsZpdkPuwiv+sZzt5KgaKzjQEvp0QA==", + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.19.tgz", + "integrity": "sha512-SomeHKk9kZwYoCNLqSB7SQ9ngnAIdKfQ0JACsc20azdhTxLYAQ6gWrrDFAmXnYwRKNAJfl8A28XThtWnGIiUpA==", "requires": { "@ethersproject/rlp": "^5.7.0", - "@libp2p/crypto": "^3.0.2", + "@libp2p/crypto": "^1.0.17", "@libp2p/peer-id": "^3.0.3", "@multiformats/multiaddr": "^12.0.0", "@noble/secp256k1": "^1.7.1", - "@waku/utils": "0.0.14", + "@waku/utils": "0.0.13", "debug": "^4.3.4", "js-sha3": "^0.9.2" }, "dependencies": { "@libp2p/crypto": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.4.tgz", - "integrity": "sha512-FzSwBo+RJOUzdzEwug5ZL4dAGKwEBWTLzj+EmUTHHY6c87+oLh571DQk/w0oYObSD9hYbcKePgSBaZeBx0JaZg==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.17.tgz", + "integrity": "sha512-Oeg0Eb/EvAho0gVkOgemXEgrVxWaT3x/DpFgkBdZ9qGxwq75w/E/oPc7souqBz+l1swfz37GWnwV7bIb4Xv5Ag==", "requires": { - "@libp2p/interface": "^1.1.1", - "@noble/curves": "^1.1.0", - "@noble/hashes": "^1.3.1", - "multiformats": "^13.0.0", + "@libp2p/interface-keys": "^1.0.2", + "@libp2p/interfaces": "^3.2.0", + "@noble/ed25519": "^1.6.0", + "@noble/secp256k1": "^1.5.4", + "multiformats": "^11.0.0", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^5.0.0" + "uint8arrays": "^4.0.2" } }, - "@libp2p/interface": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.1.2.tgz", - "integrity": "sha512-uC4hxtEJuWiDiZfokkSNEEbCzdyZrqb5kp67Wc5PjZsySZ2IoImdIfie003yQXlB1xBp/XUJzdC6kVu4M7LUmg==", + "@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", "requires": { - "@multiformats/multiaddr": "^12.1.10", - "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.0.0", - "progress-events": "^1.0.0", - "uint8arraylist": "^2.4.7" + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" } }, "multiformats": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.1.tgz", - "integrity": "sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==" - }, - "uint8arrays": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.1.tgz", - "integrity": "sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ==", - "requires": { - "multiformats": "^13.0.0" - } + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", + "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==" } } }, @@ -11644,50 +11773,84 @@ "integrity": "sha512-6QbXx9IEBz9muSzjrnbaoXnjrMQIu1WOUyhMB6ZgOobgGWluwX/WOPuGGCpqvI7p5WhO0gaziphGVLdopdmRyw==" }, "@waku/peer-exchange": { - "version": "0.0.19", - "resolved": "https://registry.npmjs.org/@waku/peer-exchange/-/peer-exchange-0.0.19.tgz", - "integrity": "sha512-T6eGHidBj49Lkw0fy3gKXbdJiyQ/0b6WYp8ZgJUySmtFCMmFQUEECbdHLx5iJFtocYmbGYFt04f+47dhoCyhog==", + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@waku/peer-exchange/-/peer-exchange-0.0.18.tgz", + "integrity": "sha512-oRXuASG62SxiVUYdJL7JJAHsa0yORuHHNg1oxL4apVgbnxDXY6SPcvGR1tgpBzMweryPzzx1IqMOZ9tusFCwyA==", "requires": { "@libp2p/interfaces": "^3.3.2", - "@waku/core": "0.0.26", - "@waku/enr": "0.0.20", - "@waku/interfaces": "0.0.21", - "@waku/proto": "0.0.6", - "@waku/utils": "0.0.14", + "@waku/core": "0.0.25", + "@waku/enr": "0.0.19", + "@waku/interfaces": "0.0.20", + "@waku/proto": "0.0.5", + "@waku/utils": "0.0.13", "debug": "^4.3.4", - "it-all": "^3.0.4", + "it-all": "^3.0.3", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1" + }, + "dependencies": { + "@waku/interfaces": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==" + }, + "@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "requires": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + } + } } }, "@waku/proto": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.6.tgz", - "integrity": "sha512-KSlcpv8BRc/KeChIWfiz7Fska7N3FQhVOsgbV862/RMhj8dCiZPhWtNanuwipfe+GwWz5SMldowipBibukXSNA==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.5.tgz", + "integrity": "sha512-td0WKhUm+pcnpkbhuu5XV79ZcuM+f7b5swNIHHcqCaW5FaJeCtEhXsG8kNrt97kcDAHdr41lxFgQTRDlmAns4A==", "requires": { - "protons-runtime": "^5.0.2" + "protons-runtime": "^5.0.0" } }, "@waku/relay": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@waku/relay/-/relay-0.0.9.tgz", - "integrity": "sha512-BfjPUVh4rIyZ82PPGBhCIv7nnx/WhrqkpkcXmmM38gsRDHDZSNCE28I3ILs2m+IBjBdeaT16BCq0dUVQD84m2A==", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@waku/relay/-/relay-0.0.8.tgz", + "integrity": "sha512-H1DXlB7o6qo3dc+qtVFY8g8/jXlyYhSXEIiNU/4eHjCDt0fzl58JdT170QJMDuTQB8LswVzTMRUxFZM5/LTwXw==", "requires": { - "@chainsafe/libp2p-gossipsub": "^10.1.1", + "@chainsafe/libp2p-gossipsub": "^10.1.0", "@noble/hashes": "^1.3.2", - "@waku/core": "0.0.26", - "@waku/interfaces": "0.0.21", - "@waku/proto": "0.0.6", - "@waku/utils": "0.0.14", - "chai": "^4.3.10", + "@waku/core": "0.0.25", + "@waku/interfaces": "0.0.20", + "@waku/proto": "0.0.5", + "@waku/utils": "0.0.13", + "chai": "^4.3.7", "debug": "^4.3.4", - "fast-check": "^3.14.0" + "fast-check": "^3.13.1" + }, + "dependencies": { + "@waku/interfaces": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==" + }, + "@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "requires": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + } + } } }, "@waku/rln": { - "version": "0.1.1-0fbf6be", - "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.1-0fbf6be.tgz", - "integrity": "sha512-8HiedJjhYLkQ98Qm0LnTEoHwmCEFbMqAV1ebQy052VBsXzSdb/jOHfHwW3h1F+55Vpr7OLkRWGm6BRxHv3Y08w==", + "version": "0.1.1-77ba0a6", + "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.1-77ba0a6.tgz", + "integrity": "sha512-qJGlTsL9xosrF9uNtzfKFa60ouOs2i0LidfolF2S381TZqq1vBa+mullLol5m7XMgvL8ULpKd+1KasXd0lKjMA==", "requires": { "@chainsafe/bls-keystore": "^3.0.0", "@waku/utils": "^0.0.13", @@ -11712,20 +11875,37 @@ } }, "@waku/sdk": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@waku/sdk/-/sdk-0.0.22.tgz", - "integrity": "sha512-4ZnoYcnfuFYKtA738R6X/9RAoPM/cvG7PvkFp9y7wrnjKFBfb5/Ha36k20AkvdTAmdoUXmdl5g4i9q0iUapeBg==", + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@waku/sdk/-/sdk-0.0.21.tgz", + "integrity": "sha512-LKG4lGJryco9hHa5fS4GaZ1sDze6MoEeZWyRAmt4uN0UtarKWfzDzIUiifTH3x1vgpcV0mioQPCgeVy3z+acYg==", "requires": { - "@chainsafe/libp2p-noise": "^13.0.4", - "@libp2p/mplex": "^9.0.10", + "@chainsafe/libp2p-noise": "^13.0.0", + "@libp2p/mplex": "^9.0.5", "@libp2p/websockets": "^7.0.5", - "@waku/core": "0.0.26", - "@waku/dns-discovery": "0.0.20", - "@waku/interfaces": "0.0.21", - "@waku/peer-exchange": "^0.0.19", - "@waku/relay": "0.0.9", - "@waku/utils": "0.0.14", + "@waku/core": "0.0.25", + "@waku/dns-discovery": "0.0.19", + "@waku/interfaces": "0.0.20", + "@waku/peer-exchange": "^0.0.18", + "@waku/relay": "0.0.8", + "@waku/utils": "0.0.13", "libp2p": "^0.46.14" + }, + "dependencies": { + "@waku/interfaces": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.20.tgz", + "integrity": "sha512-6g2SRCKiAqtxElozXzPNHg68u/lxWSGL1LSXqwA0AAs+WYvK2vYfBM9ceUlbhDEk4ReCUAceUgZgdtdgKGflgA==" + }, + "@waku/utils": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.13.tgz", + "integrity": "sha512-sGZRJyYr7+QZpV2tlGJF48gKmwNdFha6rPKPgXiKDsz2YMhPlg70ffbGcND3bEfOwWmX4g/x5i3Oqwwl+HzwJw==", + "requires": { + "chai": "^4.3.8", + "debug": "^4.3.4", + "uint8arrays": "^4.0.4" + } + } } }, "@waku/utils": { @@ -16990,7 +17170,8 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true + "dev": true, + "peer": true }, "uint8-varint": { "version": "2.0.3", diff --git a/examples/rln-js/package.json b/examples/rln-js/package.json index 45327a4..c43e7b0 100644 --- a/examples/rln-js/package.json +++ b/examples/rln-js/package.json @@ -7,10 +7,9 @@ "start": "webpack-dev-server" }, "dependencies": { - "@waku/rln": "0.1.1-0fbf6be", - "@waku/sdk": "^0.0.22", + "@waku/rln": "0.1.1-77ba0a6", + "@waku/sdk": "^0.0.21", "@waku/utils": "^0.0.14", - "ethers": "^5.7.2", "multiaddr": "^10.0.1", "protobufjs": "^7.2.5" }, diff --git a/examples/rln-js/src/const.js b/examples/rln-js/src/const.js index c7f07a2..ff184c9 100644 --- a/examples/rln-js/src/const.js +++ b/examples/rln-js/src/const.js @@ -1,152 +1,34 @@ import protobuf from "protobufjs"; -import { concat } from "@waku/utils/bytes"; -import { IdentityCredential, Keystore } from "@waku/rln"; + +export const KEYSTORE = `{ + "application": "waku-rln-relay", + "appIdentifier": "0.2", + "version": "01234567890abcdef", + "credentials": { + "740AF0B31F2DCC5C09264019BE6910FFB9C3CA575A25CC9E378BF67965AF48B4": { + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "2089221b325414adcbbc926cc8cec6dc" + }, + "ciphertext": "b3acbe5dc51dc2d67e7e08852577d1d538d5967f632ef097e9887852ea5aac541b4755ed5d4945f61e45437c3f9006836bb4e44d8580524cfb363775c250cb4509f15a0665b16874c9e66fe4a12fd2678002d4bf881806946dd31e510edae962e21a4bc15284442460aa843c630127b9fb46309f403f2480160c56ab9f024e394ba22c5de668e14c2500556a35f8e152d78c18a13faf1dc0542f0ff673f659daf7e8c863339f69e412b22cc83358fea684b61f1c5184ead0004854014f9dbe70b555d91d37b18b12b65ae5860ad67f81dc259f781077b18e226470ce6ae40370db0a32f9d245587dc741212ff636ddbe9fcf0bc68e8c5a9e02bbf35b359b5f5a315cb5a699283121bdde8b2093512aa8d7cef82803a7f2d84d250cb218d34c8a077c566ff7628be42e2ab50d5c115984f54640db0a861917fdaf7391b386c7ff27b48740ce90ede2f025a90fef8f1cf6b02f7c791f83950c53aced5909fef64de2e4c5160880a49b797092abad45acb58986051258628a4c994fe69282aad949d287c4d8efe4cd1ad5863edd71779dffc57ea27b817e8610730223e2b382d3f80f8d51dcb04226a1df0b344de55ff71780b750a0ab58af4360bcbc3b885bb49eb7fa2300464c97d7fda26795f853facdace48251ff6bfdb318747920499c88a68a0a00bb04d39b4357bd543778cf083c1ba38ad43d4c2fb54ee75f8707a02d5fd5b9b36a2298d999d4f008e2b2ae4fc58775d4fb0f7e8db58a6a7cb1feecdda458518916e5c359f953e71a172981efb6dd7ab81aa1b6bb87ebbb81513f19af25525214c15112728e0dd7786459c7c4d9c0ea1df62cd7be42253ab484cc9c8b2b7bfaae4216b26b53b86eb691a4dc91615fcf804f95c50ee8b88ab2ccada1e3633d13cea753258e225e98c3ffbe86ee2327bcf6b540730047da79ffa3661a8783f590470d058454be5d261a77d966105cd8f1560d64635b5ec9882733502a46044d9eabb909acee18a60ade210d26af8eb6007142471174d30b8410df90d667089a28c1ef487dcfe58f14132580fd1a3f771f0e10d19f110c8a54ee5936e395227dcb5d4b895f5d6f9b04118c07671dda3942a9c6836339011e297ef2ca034d0bdc1f44693ea7ee621c532ec3893626f92addafb8518a284873c42a17274da519592a967bf8ad2f646650f39c3e4d4d014f3ff54e4088012b01244cf1dfcd2396d4c36d4f210805f167ec7533254d3a3cdefad7e9d531d6d67fbc497ba0c38036263402489b64d766ea11f4df4b3fe1f4e70b8e8fc708de6fb976fe1fbfae81b1ccb3bc3dc65f61d0b92e8bf39189f5bf2fc727777e3728963cc6163169fc8a0ed72723b506d659f9b2c3048261e295876a88db139c8c15429d9a1e2bb1d3587379e2c504ae384d7563d26dab99fc12069211d6f037e513eb749ad48de58bceb95dcc860abcb0f4c1336e8025a402197434b620d1ec5c8f23230a1d75fff8353259cefc1c837faa335e48be1a49db5a7da89d490cff5f6fbf80c00ecc497ba59cbb69d4ebb57a922e646e66184b41286ceed34ec76be8326f48d66fc79c21512dc847f8b01e0253a469b351beb1288f157348da319856b892448d0b269dafd84c14e1436938e7f322f084207d421d8f5587284c021ac0607524bc29d52be2ce7f3263a237f9b319d5a26349069cf588f8f17e05021bc9bdd6edf90722bf91fb57cc67f9125aa39d09563278bea7acff25bad4968d731501f2ae62a3529d223b88aae57f2670", + "kdf": "pbkdf2", + "kdfparams": { + "dklen": 32, + "c": 262144, + "prf": "hmac-sha256", + "salt": "ff41c018bae51f6cd20e96739a46b4724c854dc6f7d4e741526b2be71f8dc572" + }, + "mac": "4b98784366b4dd610e5bc0f672bd91c9410c3d271cd1bd48ca7db2ffe889d9eb" + } + } + } +}`; +export const MEMBERSHIP_HASH = + "740AF0B31F2DCC5C09264019BE6910FFB9C3CA575A25CC9E378BF67965AF48B4"; +export const MEMBERSHIP_PASSWORD = "qweqwe"; export const CONTENT_TOPIC = "/toy-chat/2/luzhou/proto"; -export const CLUSTER_ID = 1; - -export const MEMBERSHIP_ID = 14; -export const RLN_CREDENTIALS = IdentityCredential.fromBytes( - concat([ - /* IDTrapdoor */ Keystore.fromArraylikeToBytes({ - 0: 182, - 1: 79, - 2: 126, - 3: 47, - 4: 227, - 5: 67, - 6: 22, - 7: 100, - 8: 128, - 9: 168, - 10: 33, - 11: 164, - 12: 240, - 13: 233, - 14: 91, - 15: 245, - 16: 75, - 17: 156, - 18: 224, - 19: 189, - 20: 174, - 21: 19, - 22: 104, - 23: 69, - 24: 190, - 25: 34, - 26: 222, - 27: 244, - 28: 119, - 29: 236, - 30: 43, - 31: 29, - }), - /* IDNullifier */ Keystore.fromArraylikeToBytes({ - 0: 99, - 1: 194, - 2: 251, - 3: 229, - 4: 115, - 5: 41, - 6: 207, - 7: 215, - 8: 31, - 9: 155, - 10: 237, - 11: 129, - 12: 119, - 13: 201, - 14: 241, - 15: 178, - 16: 76, - 17: 227, - 18: 87, - 19: 145, - 20: 151, - 21: 94, - 22: 213, - 23: 40, - 24: 232, - 25: 163, - 26: 3, - 27: 145, - 28: 2, - 29: 34, - 30: 209, - 31: 37, - }), - /* IDSecretHash */ Keystore.fromArraylikeToBytes({ - 0: 35, - 1: 167, - 2: 89, - 3: 158, - 4: 35, - 5: 198, - 6: 187, - 7: 240, - 8: 114, - 9: 76, - 10: 220, - 11: 111, - 12: 245, - 13: 76, - 14: 201, - 15: 187, - 16: 30, - 17: 53, - 18: 94, - 19: 175, - 20: 16, - 21: 73, - 22: 65, - 23: 92, - 24: 156, - 25: 189, - 26: 153, - 27: 66, - 28: 60, - 29: 91, - 30: 235, - 31: 30, - }), - /* IDCommitment */ Keystore.fromArraylikeToBytes({ - 0: 181, - 1: 107, - 2: 5, - 3: 148, - 4: 160, - 5: 49, - 6: 176, - 7: 143, - 8: 203, - 9: 53, - 10: 127, - 11: 44, - 12: 190, - 13: 133, - 14: 75, - 15: 42, - 16: 96, - 17: 153, - 18: 78, - 19: 63, - 20: 205, - 21: 66, - 22: 9, - 23: 72, - 24: 127, - 25: 210, - 26: 22, - 27: 133, - 28: 37, - 29: 28, - 30: 91, - 31: 4, - }), - ]) -); - export const ProtoChatMessage = new protobuf.Type("ChatMessage") .add(new protobuf.Field("timestamp", 1, "uint64")) .add(new protobuf.Field("nick", 2, "string")) diff --git a/examples/rln-js/src/index.js b/examples/rln-js/src/index.js index 08bb7cb..1943c99 100644 --- a/examples/rln-js/src/index.js +++ b/examples/rln-js/src/index.js @@ -4,16 +4,14 @@ import { initWaku } from "./waku"; async function run() { const { onLoaded, onStatusChange, registerEvents } = initUI(); - const { encoder, decoder, rlnContract } = await initRLN(onStatusChange); + const { rln, connectWallet } = await initRLN(onStatusChange); const { onSend, onSubscribe } = await initWaku({ - encoder, - decoder, - rlnContract, + rln, onStatusChange, }); onLoaded(); - registerEvents({ onSend, onSubscribe }); + registerEvents({ onSend, onSubscribe, connectWallet }); } run(); diff --git a/examples/rln-js/src/rln.js b/examples/rln-js/src/rln.js index 527af3c..356a2f1 100644 --- a/examples/rln-js/src/rln.js +++ b/examples/rln-js/src/rln.js @@ -1,61 +1,50 @@ -import { ethers } from "ethers"; +import { createRLN, extractMetaMaskSigner } from "@waku/rln"; -import { - create, - RLNEncoder, - RLNDecoder, - RLNContract, - SEPOLIA_CONTRACT, -} from "@waku/rln"; -import { createEncoder, createDecoder } from "@waku/sdk"; - -import { CONTENT_TOPIC, MEMBERSHIP_ID, RLN_CREDENTIALS } from "./const"; +import { KEYSTORE, MEMBERSHIP_HASH, MEMBERSHIP_PASSWORD } from "./const"; export async function initRLN(onStatusChange) { - onStatusChange("Connecting to wallet..."); - const ethereum = window.ethereum; - if (!ethereum) { - const err = - "Missing or invalid Ethereum provider. Please install MetaMask."; - onStatusChange(err, "error"); - throw Error(err); - } - try { - await ethereum.request({ method: "eth_requestAccounts" }); - } catch (err) { - onStatusChange("Failed to access MetaMask", "error"); - throw Error(err); - } - const provider = new ethers.providers.Web3Provider(ethereum, "any"); - onStatusChange("Initializing RLN..."); - let rlnInstance, rlnContract; + + let rln; try { - rlnInstance = await create(); - rlnContract = await RLNContract.init(rlnInstance, { - registryAddress: SEPOLIA_CONTRACT.address, - provider: provider.getSigner(), - }); + rln = await createRLN(); } catch (err) { - onStatusChange("Failed to initialize RLN", "error"); + onStatusChange(`Failed to initialize RLN: ${err}`, "error"); throw Error(err); } - const encoder = new RLNEncoder( - createEncoder({ - ephemeral: false, - contentTopic: CONTENT_TOPIC, - }), - rlnInstance, - MEMBERSHIP_ID, - RLN_CREDENTIALS - ); - const decoder = new RLNDecoder(rlnInstance, createDecoder(CONTENT_TOPIC)); onStatusChange("RLN initialized", "success"); + const connectWallet = async () => { + let signer; + try { + onStatusChange("Connecting to wallet..."); + signer = await extractMetaMaskSigner(); + } catch (err) { + onStatusChange(`Failed to access MetaMask: ${err}`, "error"); + throw Error(err); + } + + try { + onStatusChange("Connecting to Ethereum..."); + await rln.start({ + signer, + credentials: { + keystore: KEYSTORE, + id: MEMBERSHIP_HASH, + password: MEMBERSHIP_PASSWORD, + }, + }); + } catch (err) { + onStatusChange(`Failed to connect to Ethereum: ${err}`, "error"); + throw Error(err); + } + + onStatusChange("RLN started", "success"); + }; + return { - encoder, - decoder, - rlnContract, + rln, + connectWallet, }; } diff --git a/examples/rln-js/src/waku.js b/examples/rln-js/src/waku.js index 90ab1f5..957ab81 100644 --- a/examples/rln-js/src/waku.js +++ b/examples/rln-js/src/waku.js @@ -1,13 +1,14 @@ import { createLightNode, waitForRemotePeer } from "@waku/sdk"; -import { ProtoChatMessage } from "./const"; +import { ProtoChatMessage, CONTENT_TOPIC } from "./const"; + +export async function initWaku({ rln, onStatusChange }) { + const encoder = rln.createEncoder({ + ephemeral: false, + contentTopic: CONTENT_TOPIC, + }); + const decoder = rln.createDecoder(CONTENT_TOPIC); -export async function initWaku({ - encoder, - decoder, - rlnContract, - onStatusChange, -}) { onStatusChange("Initializing Waku..."); const node = await createLightNode({ defaultBootstrap: true, @@ -45,7 +46,7 @@ export async function initWaku({ try { console.time("Proof verification took:"); - const res = message.verify(rlnContract.roots()); + const res = message.verify(rln.contract.roots()); console.timeEnd("Proof verification took:"); proofStatus = res ? "verified" : "not verified"; } catch (error) {