From 8eda028943044ba622909580b4a6d68b958f2a4d Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 13:13:44 +0530 Subject: [PATCH 1/8] chore: upgrade libp2p to v2 and related deps --- package-lock.json | 843 +++++++++++++++++++++++++------ packages/core/package.json | 4 +- packages/discovery/package.json | 6 +- packages/enr/package.json | 6 +- packages/interfaces/package.json | 4 +- packages/relay/package.json | 4 +- packages/sdk/package.json | 14 +- packages/tests/package.json | 8 +- 8 files changed, 714 insertions(+), 175 deletions(-) diff --git a/package-lock.json b/package-lock.json index cb8799416c..aa6b18fc08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2617,23 +2617,23 @@ "license": "MIT" }, "node_modules/@chainsafe/libp2p-gossipsub": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-13.1.0.tgz", - "integrity": "sha512-Wk1O6ZT/L0o+p9vlAB4qxDa9pAwTh5yxPrQbyc98wvKbrnPhAfZbjMfhCBOEvFKzMkEFDsTd3TGPjP8TTtNtQw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-14.1.0.tgz", + "integrity": "sha512-nzFBbHOoRFa/bXUSzmJaXOgHI+EttTldhLJ33yWcM0DxnWhLKychHkCDLoJO3THa1+dnzrDJoxj3N3/V0WoPVw==", "license": "Apache-2.0", "dependencies": { - "@libp2p/crypto": "^4.0.1", - "@libp2p/interface": "^1.5.0", - "@libp2p/interface-internal": "^1.0.7", - "@libp2p/peer-id": "^4.0.5", - "@libp2p/pubsub": "^9.0.8", + "@libp2p/crypto": "^5.0.0", + "@libp2p/interface": "^2.0.0", + "@libp2p/interface-internal": "^2.0.0", + "@libp2p/peer-id": "^5.0.0", + "@libp2p/pubsub": "^10.0.0", "@multiformats/multiaddr": "^12.1.14", "denque": "^2.1.0", "it-length-prefixed": "^9.0.4", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "multiformats": "^13.0.1", - "protons-runtime": "5.4.0", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.0.1" }, @@ -2641,28 +2641,45 @@ "npm": ">=8.7.0" } }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/protons-runtime": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.4.0.tgz", - "integrity": "sha512-XfA++W/WlQOSyjUyuF5lgYBfXZUEMP01Oh1C2dSwZAlF2e/ZrMRPfWonXj6BGM+o8Xciv7w0tsRMKYwYEuQvaw==", + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", "license": "Apache-2.0 OR MIT", "dependencies": { - "uint8-varint": "^2.0.2", - "uint8arraylist": "^2.4.3", - "uint8arrays": "^5.0.1" + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" } }, "node_modules/@chainsafe/libp2p-noise": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-15.1.2.tgz", - "integrity": "sha512-o6mqsAbaCBucgdLOOHtkwtGVL1c8RLKhlTnHQY+leazY+thiE1Sm6qPCwsTHKQnWii1q5hDVI2Q0l9QgYi5v4Q==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-16.0.0.tgz", + "integrity": "sha512-8rqr8V1RD2/lVbfL0Bb//N8iPOFof11cUe8v8z8xJT7fUhCAbtCCSM4jbwI4HCnw0MvHLmcpmAfDCFRwcWzoeA==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/as-chacha20poly1305": "^0.1.0", "@chainsafe/as-sha256": "^0.4.1", - "@libp2p/crypto": "^4.0.0", - "@libp2p/interface": "^1.5.0", - "@libp2p/peer-id": "^4.0.0", + "@libp2p/crypto": "^5.0.0", + "@libp2p/interface": "^2.0.0", + "@libp2p/peer-id": "^5.0.0", "@noble/ciphers": "^0.6.0", "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", @@ -2671,14 +2688,38 @@ "it-pair": "^2.0.6", "it-pipe": "^3.0.1", "it-stream-types": "^2.0.1", - "protons-runtime": "^5.0.0", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^5.0.0", "wherearewe": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" } }, "node_modules/@chainsafe/netmask": { @@ -5457,21 +5498,51 @@ "license": "MIT" }, "node_modules/@libp2p/bootstrap": { - "version": "10.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-10.1.4.tgz", - "integrity": "sha512-bt4Tz/DMKnlvZhF4d9Nkv/K7qgnoDBM/N0zwjA/aQg1vSq54/Szc2K3cIDAv9/r9dM4ckDRmIZZENr/bwcIIKw==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-11.0.1.tgz", + "integrity": "sha512-xLI6pHVKe6CV+QrEKxrjr/safP2rpZ0u3GXjW8OAZ9g1QSSVjQ91pb642N3dVfQZb7uMMh7EbFf/GFfnvc3CZg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.6.3", - "@libp2p/peer-id": "^4.2.3", + "@libp2p/interface": "^2.0.1", + "@libp2p/interface-internal": "^2.0.1", + "@libp2p/peer-id": "^5.0.1", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3" } }, + "node_modules/@libp2p/bootstrap/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@libp2p/crypto": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-4.1.9.tgz", "integrity": "sha512-8Cf2VKh0uC/rQLvTLSloIOMqUvf4jsSTHXgjWQRf47lDNJlNNI0wSv2S6gakT72GZsRV/jCjYwKPqRlsa5S0iA==", + "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^1.7.0", @@ -5484,16 +5555,32 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/crypto/node_modules/@libp2p/interface": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", + "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^12.2.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.1", + "multiformats": "^13.1.0", + "progress-events": "^1.0.0", + "uint8arraylist": "^2.4.8" + } + }, "node_modules/@libp2p/identify": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-2.1.4.tgz", - "integrity": "sha512-w2JkmoZkXT3OJnTuyBPlEBicj1J1n90pcusZbs+YIiJ+mhsOvNKnQhJgCG8Q6wnTimcBjinqhRRp0hiaHqX7VQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-3.0.1.tgz", + "integrity": "sha512-NKzPWiq2LO1ecpODexiDbZf8wyjkh3DdFptVXEYbUd4Yi7foxzH3Yf3LzocAplXzcn/pN410bdS6+WsBvpi9Bg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.6.3", - "@libp2p/interface-internal": "^1.3.3", - "@libp2p/peer-id": "^4.2.3", - "@libp2p/peer-record": "^7.0.24", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/interface-internal": "^2.0.1", + "@libp2p/peer-id": "^5.0.1", + "@libp2p/peer-record": "^8.0.1", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", "it-drain": "^3.0.7", @@ -5505,10 +5592,38 @@ "wherearewe": "^2.0.1" } }, + "node_modules/@libp2p/identify/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/identify/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@libp2p/interface": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", - "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.0.1.tgz", + "integrity": "sha512-zDAgu+ZNiYZxVsmcvCeNCLMnGORwLMMI8w0k2YcHwolATsv2q7QG3KpakmyKjH4m7C0hT86lGgf1sgGobPssYA==", "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/multiaddr": "^12.2.3", @@ -5520,19 +5635,19 @@ } }, "node_modules/@libp2p/interface-compliance-tests": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-5.4.12.tgz", - "integrity": "sha512-5OsFORK+S0Gz1ftm6P3xXyv3Puup3ODIi2RJZ7qIyr2VL9XKifdgM3+1mWoAwyHqBW39cbgqAt5pR1DsFUW6UA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-6.0.1.tgz", + "integrity": "sha512-Fr8tqxnhMyv9Z9emZUwwZegOoFJs28O2oq3vRf+0skklOJwgPM4J0S1k0TW8aaXvWFxjtiiQousMmBxKupN3OQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.7.0", - "@libp2p/interface-internal": "^1.3.4", - "@libp2p/logger": "^4.0.20", - "@libp2p/multistream-select": "^5.1.17", - "@libp2p/peer-collections": "^5.2.9", - "@libp2p/peer-id": "^4.2.4", - "@libp2p/peer-id-factory": "^4.2.4", - "@libp2p/utils": "^5.4.9", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/interface-internal": "^2.0.1", + "@libp2p/logger": "^5.0.1", + "@libp2p/multistream-select": "^6.0.1", + "@libp2p/peer-collections": "^6.0.1", + "@libp2p/peer-id": "^5.0.1", + "@libp2p/utils": "^6.0.1", "@multiformats/multiaddr": "^12.2.3", "abortable-iterator": "^5.0.1", "aegir": "^44.0.1", @@ -5559,6 +5674,47 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/logger": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.0.1.tgz", + "integrity": "sha512-9TccGq+xPpOFzi1dYp4LQURxS3uG7gyFe7tGsBmqmr+s4uiQ3HUH0a4lpUwqcfo0ZCIhvwW6NQr6h+ztjoiFyg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@multiformats/multiaddr": "^12.2.3", + "interface-datastore": "^8.3.0", + "multiformats": "^13.1.0", + "weald": "^1.0.2" + } + }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@libp2p/interface-compliance-tests/node_modules/p-limit": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.1.0.tgz", @@ -5587,13 +5743,13 @@ } }, "node_modules/@libp2p/interface-internal": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-1.3.4.tgz", - "integrity": "sha512-8x/0sdeH8T16yZ9t/Cfja0ms6Ho9fF3riX56WhQrNxMU6C1sIgAFmzUNzHLxxOR+rkKyL9cyXIyB+RcBf4gzjA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-2.0.1.tgz", + "integrity": "sha512-xu6P7pTAzqpbto/8zWwRT9pJMVsrnEd4ZWOsAOkffiXpQHWNXsRbtL3pLmDUBSkDTDrbNU/xyo9NyyDn0YuyvQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.7.0", - "@libp2p/peer-collections": "^5.2.9", + "@libp2p/interface": "^2.0.1", + "@libp2p/peer-collections": "^6.0.1", "@multiformats/multiaddr": "^12.2.3", "progress-events": "^1.0.0", "uint8arraylist": "^2.4.8" @@ -5603,6 +5759,7 @@ "version": "4.0.20", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.20.tgz", "integrity": "sha512-TTh2dhHsOTAlMPxSa9ncFPHa/0jTt+0AQxwHdlxg/OGLAgc9VRhnrhHUbJZp07Crcw4T/MOfS4KhjlxgqYgJRw==", + "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^1.7.0", @@ -5612,14 +5769,29 @@ "weald": "^1.0.2" } }, + "node_modules/@libp2p/logger/node_modules/@libp2p/interface": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", + "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^12.2.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.1", + "multiformats": "^13.1.0", + "progress-events": "^1.0.0", + "uint8arraylist": "^2.4.8" + } + }, "node_modules/@libp2p/mplex": { - "version": "10.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-10.1.4.tgz", - "integrity": "sha512-DxRAeixdbGVEGV+5ekp0C63NyVkKv0bOYkx/dVozcWDHmfClTD070KOhF3gIplKAVInC3FYaO3ahWzMdrD/J6g==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-11.0.1.tgz", + "integrity": "sha512-w/4aEnC7gcE3R3QWeqYP/bxMac5rB4eCB07Le1mAPxhyaWiFOo+OZT4wn/GFPSouP2IcjGsVkO7aVYT3ETuZbQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.6.3", - "@libp2p/utils": "^5.4.8", + "@libp2p/interface": "^2.0.1", + "@libp2p/utils": "^6.0.1", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", @@ -5629,12 +5801,12 @@ } }, "node_modules/@libp2p/multistream-select": { - "version": "5.1.17", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-5.1.17.tgz", - "integrity": "sha512-QOMGjCzKGf/W+qzWw5OxaqLEYhK45XjMCxGJYQ7L5eUkcwAv6rlPZAYw6YslaMLpJTa61/yfh8D4u7EuoMFsUw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-6.0.1.tgz", + "integrity": "sha512-sdZnbiJE0BDwz7P4+fgwK/Xu7oyL8q8w4USDIEJhGTfwBbhC5TSFLEnP9nv5AGwU2Ecg9zzhhWgmbdkgqZmHdg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.7.0", + "@libp2p/interface": "^2.0.1", "it-length-prefixed": "^9.0.4", "it-length-prefixed-stream": "^1.1.7", "it-stream-types": "^2.0.1", @@ -5646,20 +5818,50 @@ } }, "node_modules/@libp2p/peer-collections": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.2.9.tgz", - "integrity": "sha512-8gBmzQlCWjjb+FSQBKK33T25Y5Df/8FWCXFtJDsprVxVUzDOQoibQJ5Tb4Y+mb96HUhNzoaRWVEamB78MMB3DA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.1.tgz", + "integrity": "sha512-2Y8hV53EYXSHiD4EHa/Zco+DfIWoEvgbPVYG1YZJ92OhvHoerFQ/QilwFHkCVpUpGTm/6bXz6gF5R/BjdSQbZg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.7.0", - "@libp2p/peer-id": "^4.2.4", - "@libp2p/utils": "^5.4.9" + "@libp2p/interface": "^2.0.1", + "@libp2p/peer-id": "^5.0.1", + "@libp2p/utils": "^6.0.1", + "multiformats": "^13.2.2" + } + }, + "node_modules/@libp2p/peer-collections/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/peer-collections/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-id": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.2.4.tgz", "integrity": "sha512-mvvsVxt4HkF14BrTNKbqr14VObW+KBJBWu1Oe6BFCoDttGMQLaI+PdduE1r6Tquntv5IONBqoITgD7ow5dQ+vQ==", + "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^1.7.0", @@ -5671,6 +5873,7 @@ "version": "4.2.4", "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-4.2.4.tgz", "integrity": "sha512-NDQ/qIWpcAG/6xQjyut6xCkrYYAoCaI/33Z+7yzo5qFODwLfNonLzSTasnA6jhuvHn33aHnD1qhdpFkmstxtNQ==", + "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^4.1.9", @@ -5681,35 +5884,95 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/interface": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", + "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^12.2.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.1", + "multiformats": "^13.1.0", + "progress-events": "^1.0.0", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/peer-id/node_modules/@libp2p/interface": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", + "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^12.2.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.1", + "multiformats": "^13.1.0", + "progress-events": "^1.0.0", + "uint8arraylist": "^2.4.8" + } + }, "node_modules/@libp2p/peer-record": { - "version": "7.0.24", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-7.0.24.tgz", - "integrity": "sha512-2LYvLqr3XDjA5u2LGD/3IvdgdrwOYdMzQnzr612/Q+yVS+36CN0dAIqU74OEWx+XeeUJSBQnQ0ryBQq/arbXuA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.1.tgz", + "integrity": "sha512-xNI9huG0lo2PzwOJW1HHmboxlSRZWLDUwXEo1h3b3fqaM7HCZ3YjCX5o7cLWpjZ5ftKW640F16yFzylGJV1T+Q==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^4.1.8", - "@libp2p/interface": "^1.6.3", - "@libp2p/peer-id": "^4.2.3", - "@libp2p/utils": "^5.4.8", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/peer-id": "^5.0.1", + "@libp2p/utils": "^6.0.1", "@multiformats/multiaddr": "^12.2.3", + "multiformats": "^13.2.2", "protons-runtime": "^5.4.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/peer-record/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/peer-record/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@libp2p/peer-store": { - "version": "10.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-10.1.4.tgz", - "integrity": "sha512-D/lqEaWZV8xEBQ7b0ZEFYtaa6+LjXjs+PRrFpmnvyuz86o9KQedVoJPufT4g0nKIeQZUtdRfkzWNnwD+fru64g==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.0.1.tgz", + "integrity": "sha512-iuK6Q1fGozFtB4UXbI7wfAdh21Vd+EhLSN9TwHJHRC1nVtHqy8tfq+IXTy0scF2LnAr3O1ddZtyOnHUv/H77aw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.6.3", - "@libp2p/peer-collections": "^5.2.8", - "@libp2p/peer-id": "^4.2.3", - "@libp2p/peer-record": "^7.0.24", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/peer-collections": "^6.0.1", + "@libp2p/peer-id": "^5.0.1", + "@libp2p/peer-record": "^8.0.1", "@multiformats/multiaddr": "^12.2.3", - "interface-datastore": "^8.2.11", + "interface-datastore": "^8.3.0", "it-all": "^3.0.6", "mortice": "^3.0.4", "multiformats": "^13.1.0", @@ -5718,33 +5981,77 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@libp2p/ping": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-1.1.4.tgz", - "integrity": "sha512-biwYtLaEHky2hsLzVZnPzrwME2WwaMu2MG+poKepxS36Ib9EM7XPGVUjpoafCQBM+Z67AMiFpKVtk3k9Kb24Gw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-2.0.1.tgz", + "integrity": "sha512-KWbzFRDBJyZDd8FziW1N9UKHBcOm2RIVyX7sQh1tFeJ0XpWkNT3IcljOG1STikXTuCXIZmMgan/LrZ+SvJSIGw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^4.1.8", - "@libp2p/interface": "^1.6.3", - "@libp2p/interface-internal": "^1.3.3", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/interface-internal": "^2.0.1", "@multiformats/multiaddr": "^12.2.3", "it-first": "^3.0.6", "it-pipe": "^3.0.1", "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/ping/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@libp2p/pubsub": { - "version": "9.0.25", - "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-9.0.25.tgz", - "integrity": "sha512-IpAN2O/Xcqk0hXDv37zLGvzyQtR4o0xiZl3IC/P7QFikFf+mrmh80Zz447LhmHdRI/BpAwES0NYYCfjBDHu5+Q==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-10.0.1.tgz", + "integrity": "sha512-le8i6gEIZE8j3YVcEa8I8eKa53ZxQ9szmCM0Yv+US0NzQA3brFdeW/0fJOZlL2NPh8y9dc9BGrqDm71V0bzP8w==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^4.1.8", - "@libp2p/interface": "^1.6.3", - "@libp2p/interface-internal": "^1.3.3", - "@libp2p/peer-collections": "^5.2.8", - "@libp2p/peer-id": "^4.2.3", - "@libp2p/utils": "^5.4.8", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/interface-internal": "^2.0.1", + "@libp2p/peer-collections": "^6.0.1", + "@libp2p/peer-id": "^5.0.1", + "@libp2p/utils": "^6.0.1", "it-length-prefixed": "^9.0.4", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", @@ -5754,16 +6061,44 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@libp2p/utils": { - "version": "5.4.9", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-5.4.9.tgz", - "integrity": "sha512-0fRdX98WqhTmXU2WEVLegLFxs/kKTtUHanHk5Lzs4oGsIzlPHR7zE6lj/U1WfsFA+Xo1eYQpNLiXEL29hG+Nyw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.0.1.tgz", + "integrity": "sha512-1q92IeWcx5W/2RMjqG13ldUSOBgvnMX/OnX1OEFb+zefkdDGttn6pKoOfxnM/8iaRwBwM08nI9gL3Vbwel3+Dg==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.2", - "@libp2p/crypto": "^4.1.9", - "@libp2p/interface": "^1.7.0", - "@libp2p/logger": "^4.0.20", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/logger": "^5.0.1", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", "@sindresorhus/fnv1a": "^3.1.0", @@ -5772,6 +6107,8 @@ "delay": "^6.0.0", "get-iterator": "^2.0.1", "is-loopback-addr": "^2.0.2", + "it-foreach": "^2.1.1", + "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", "murmurhash3js-revisited": "^3.0.0", @@ -5783,14 +6120,43 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/utils/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/utils/node_modules/@libp2p/logger": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.0.1.tgz", + "integrity": "sha512-9TccGq+xPpOFzi1dYp4LQURxS3uG7gyFe7tGsBmqmr+s4uiQ3HUH0a4lpUwqcfo0ZCIhvwW6NQr6h+ztjoiFyg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@multiformats/multiaddr": "^12.2.3", + "interface-datastore": "^8.3.0", + "multiformats": "^13.1.0", + "weald": "^1.0.2" + } + }, "node_modules/@libp2p/websockets": { - "version": "8.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-8.1.4.tgz", - "integrity": "sha512-VWVgIo8t4VTzTI+orfGQxeHSXNWQL6dF//nH2p3nI5Z0saR6lrv5pNTsXbIhrZukGRFGgSwqGsd8bGhEohKNrQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-9.0.1.tgz", + "integrity": "sha512-bV/t22l3KdFbW7I9aMyfdIEkBtAVEeZQuB6NvsTv2lUfn77UtQsOgk0c3btoxVk8bUgX28wERPoskOuhedAj3Q==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^1.6.3", - "@libp2p/utils": "^5.4.8", + "@libp2p/interface": "^2.0.1", + "@libp2p/utils": "^6.0.1", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-to-uri": "^10.0.1", @@ -5883,6 +6249,20 @@ "@multiformats/multiaddr": "^12.3.0" } }, + "node_modules/@multiformats/multiaddr/node_modules/@libp2p/interface": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", + "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^12.2.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.1", + "multiformats": "^13.1.0", + "progress-events": "^1.0.0", + "uint8arraylist": "^2.4.8" + } + }, "node_modules/@noble/ciphers": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.6.0.tgz", @@ -14844,6 +15224,7 @@ "version": "9.2.9", "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-9.2.9.tgz", "integrity": "sha512-wraWTPsbtdE7FFaVo3pwPuTB/zXsgwGGAm8BgBYwYAuzZCTS0MfXmd/HH1vR9s0/NFFjOVmBkGiWCvKxZ+QjVw==", + "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^4.0.6", @@ -14864,6 +15245,7 @@ "version": "5.1.8", "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.8.tgz", "integrity": "sha512-7na81Uxkl0vqk0CBPO5PvyTkdaJBaezwUJGsMOz7riPOq0rJt+7W31iaopaMICWea/iykUsvNlPx/Tc+MxC3/w==", + "dev": true, "license": "Apache-2.0 OR MIT" }, "node_modules/date-fns": { @@ -16198,6 +16580,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", + "dev": true, "license": "MIT" }, "node_modules/error-ex": { @@ -20894,6 +21277,15 @@ "integrity": "sha512-ExIewyK9kXKNAplg2GMeWfgjUcfC1FnUXz/RPfAvIXby+w7U4b3//5Lic0NV03gXT8O/isj5Nmp6KiY0d45pIQ==", "license": "Apache-2.0 OR MIT" }, + "node_modules/it-foreach": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.1.1.tgz", + "integrity": "sha512-ID4Gxnavk/LVQLQESAQ9hR6dR63Ih6X+8VdxEktX8rpz2dCGAbZpey/eljTNbMfV2UKXHiu6UsneoNBZuac97g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, "node_modules/it-length-prefixed": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.1.0.tgz", @@ -21962,38 +22354,99 @@ } }, "node_modules/libp2p": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-1.8.3.tgz", - "integrity": "sha512-IpHKhR/gjiRcm3UqaHC3bEFsnBS62hTwXy60L8Uie8NZvvliVL6skmIBAODfma0+C7zvJhNKA8453SOmTeVTwQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.0.2.tgz", + "integrity": "sha512-52uy7+jLXwUF6jsNsqZXwpryephLfZKpPzxD+v9NliWk26PXizFigxvp4oDkuHMy8HZhy5P0Jq9wzeb5YfRQPg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^4.1.8", - "@libp2p/interface": "^1.6.3", - "@libp2p/interface-internal": "^1.3.3", - "@libp2p/logger": "^4.0.19", - "@libp2p/multistream-select": "^5.1.16", - "@libp2p/peer-collections": "^5.2.8", - "@libp2p/peer-id": "^4.2.3", - "@libp2p/peer-id-factory": "^4.2.3", - "@libp2p/peer-store": "^10.1.4", - "@libp2p/utils": "^5.4.8", + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "@libp2p/interface-internal": "^2.0.1", + "@libp2p/logger": "^5.0.1", + "@libp2p/multistream-select": "^6.0.1", + "@libp2p/peer-collections": "^6.0.1", + "@libp2p/peer-id": "^5.0.1", + "@libp2p/peer-store": "^11.0.1", + "@libp2p/utils": "^6.0.1", "@multiformats/dns": "^1.0.6", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", "any-signal": "^4.1.1", - "datastore-core": "^9.2.9", - "interface-datastore": "^8.2.11", + "datastore-core": "^10.0.0", + "interface-datastore": "^8.3.0", + "it-byte-stream": "^1.0.12", "it-merge": "^3.0.5", "it-parallel": "^3.0.7", "merge-options": "^3.0.4", "multiformats": "^13.1.0", "p-defer": "^4.0.1", + "p-retry": "^6.2.0", "progress-events": "^1.0.0", "race-event": "^1.3.0", "race-signal": "^1.0.2", "uint8arrays": "^5.1.0" } }, + "node_modules/libp2p/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/libp2p/node_modules/@libp2p/logger": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.0.1.tgz", + "integrity": "sha512-9TccGq+xPpOFzi1dYp4LQURxS3uG7gyFe7tGsBmqmr+s4uiQ3HUH0a4lpUwqcfo0ZCIhvwW6NQr6h+ztjoiFyg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@multiformats/multiaddr": "^12.2.3", + "interface-datastore": "^8.3.0", + "multiformats": "^13.1.0", + "weald": "^1.0.2" + } + }, + "node_modules/libp2p/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/libp2p/node_modules/datastore-core": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-10.0.2.tgz", + "integrity": "sha512-B3WXxI54VxJkpXxnYibiF17si3bLXE1XOjrJB7wM5co9fx2KOEkiePDGiCCEtnapFHTnmAnYCPdA7WZTIpdn/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/logger": "^5.0.1", + "interface-datastore": "^8.0.0", + "interface-store": "^6.0.0", + "it-drain": "^3.0.7", + "it-filter": "^3.1.1", + "it-map": "^3.1.1", + "it-merge": "^3.0.5", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.3", + "it-sort": "^3.0.6", + "it-take": "^3.0.6" + } + }, "node_modules/lighthouse-logger": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", @@ -39080,7 +39533,7 @@ "version": "0.0.32", "license": "MIT OR Apache-2.0", "dependencies": { - "@libp2p/ping": "^1.1.2", + "@libp2p/ping": "2.0.1", "@waku/enr": "^0.0.26", "@waku/interfaces": "0.0.27", "@waku/proto": "0.0.8", @@ -39118,7 +39571,7 @@ }, "peerDependencies": { "@multiformats/multiaddr": "^12.0.0", - "libp2p": "^1.8.1" + "libp2p": "2.0.2" }, "peerDependenciesMeta": { "@multiformats/multiaddr": { @@ -39158,8 +39611,8 @@ "uint8arrays": "^5.0.1" }, "devDependencies": { - "@libp2p/peer-id": "^4.2.1", - "@libp2p/peer-id-factory": "^4.2.1", + "@libp2p/peer-id": "5.0.1", + "@libp2p/peer-id-factory": "^4.2.4", "@multiformats/multiaddr": "^12.3.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", @@ -39180,7 +39633,7 @@ "node": ">=20" }, "peerDependencies": { - "@libp2p/interface": "^1.6.3" + "@libp2p/interface": "2.0.1" }, "peerDependenciesMeta": { "@libp2p/interface": { @@ -39188,14 +39641,44 @@ } } }, + "packages/discovery/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "packages/discovery/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "packages/enr": { "name": "@waku/enr", "version": "0.0.26", "license": "MIT OR Apache-2.0", "dependencies": { "@ethersproject/rlp": "^5.7.0", - "@libp2p/crypto": "^4.1.6", - "@libp2p/peer-id": "^4.2.1", + "@libp2p/crypto": "^5.0.1", + "@libp2p/peer-id": "^5.0.1", "@multiformats/multiaddr": "^12.0.0", "@noble/secp256k1": "^1.7.1", "@waku/utils": "0.0.20", @@ -39203,7 +39686,7 @@ "js-sha3": "^0.9.2" }, "devDependencies": { - "@libp2p/peer-id-factory": "^4.2.1", + "@libp2p/peer-id-factory": "^4.2.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.2.3", @@ -39232,6 +39715,34 @@ } } }, + "packages/enr/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "packages/enr/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "packages/interfaces": { "name": "@waku/interfaces", "version": "0.0.27", @@ -39240,10 +39751,10 @@ "@waku/proto": "^0.0.8" }, "devDependencies": { - "@chainsafe/libp2p-gossipsub": "^13.1.0", + "@chainsafe/libp2p-gossipsub": "^14.1.0", "@multiformats/multiaddr": "^12.0.0", "cspell": "^8.6.1", - "libp2p": "^1.8.1", + "libp2p": "2.0.2", "npm-run-all": "^4.1.5" }, "engines": { @@ -39361,7 +39872,7 @@ "version": "0.0.15", "license": "MIT OR Apache-2.0", "dependencies": { - "@chainsafe/libp2p-gossipsub": "^13.1.0", + "@chainsafe/libp2p-gossipsub": "^14.1.0", "@noble/hashes": "^1.3.2", "@waku/core": "0.0.32", "@waku/interfaces": "0.0.27", @@ -39383,7 +39894,7 @@ "node": ">=18" }, "peerDependencies": { - "@chainsafe/libp2p-gossipsub": "^12.0.0" + "@chainsafe/libp2p-gossipsub": "^14.1.0" }, "peerDependenciesMeta": { "@chainsafe/libp2p-gossipsub": { @@ -39396,12 +39907,12 @@ "version": "0.0.28", "license": "MIT OR Apache-2.0", "dependencies": { - "@chainsafe/libp2p-noise": "^15.1.0", - "@libp2p/bootstrap": "^10.1.2", - "@libp2p/identify": "^2.1.2", - "@libp2p/mplex": "^10.1.2", - "@libp2p/ping": "^1.1.2", - "@libp2p/websockets": "^8.1.4", + "@chainsafe/libp2p-noise": "^16.0.0", + "@libp2p/bootstrap": "^11.0.1", + "@libp2p/identify": "^3.0.1", + "@libp2p/mplex": "^11.0.1", + "@libp2p/ping": "2.0.1", + "@libp2p/websockets": "^9.0.1", "@noble/hashes": "^1.3.3", "@waku/core": "0.0.32", "@waku/discovery": "0.0.5", @@ -39409,7 +39920,7 @@ "@waku/message-hash": "0.1.16", "@waku/proto": "^0.0.8", "@waku/utils": "0.0.20", - "libp2p": "^1.8.1" + "libp2p": "2.0.2" }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.7", @@ -39439,8 +39950,8 @@ "version": "0.0.1", "license": "MIT OR Apache-2.0", "dependencies": { - "@libp2p/interface-compliance-tests": "^5.4.9", - "@libp2p/peer-id": "^4.2.1", + "@libp2p/interface-compliance-tests": "^6.0.1", + "@libp2p/peer-id": "^5.0.1", "@waku/core": "*", "@waku/enr": "*", "@waku/interfaces": "*", @@ -39457,7 +39968,7 @@ "tail": "^2.2.6" }, "devDependencies": { - "@libp2p/bootstrap": "^10.1.2", + "@libp2p/bootstrap": "^11.0.1", "@types/chai": "^4.3.11", "@types/dockerode": "^3.3.19", "@types/mocha": "^10.0.6", @@ -39474,7 +39985,7 @@ "datastore-core": "^9.2.7", "debug": "^4.3.4", "interface-datastore": "^8.2.10", - "libp2p": "^1.8.1", + "libp2p": "2.0.2", "mocha": "^10.3.0", "mocha-multi-reporters": "^1.5.1", "npm-run-all": "^4.1.5" @@ -39483,6 +39994,34 @@ "node": ">=20" } }, + "packages/tests/node_modules/@libp2p/crypto": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", + "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.0.1", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "packages/tests/node_modules/@libp2p/peer-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", + "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.1", + "@libp2p/interface": "^2.0.1", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" + } + }, "packages/utils": { "name": "@waku/utils", "version": "0.0.20", diff --git a/packages/core/package.json b/packages/core/package.json index 027c66623d..23fa98cfbe 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -68,7 +68,7 @@ "node": ">=20" }, "dependencies": { - "@libp2p/ping": "^1.1.2", + "@libp2p/ping": "2.0.1", "@waku/enr": "^0.0.26", "@waku/interfaces": "0.0.27", "@waku/proto": "0.0.8", @@ -103,7 +103,7 @@ }, "peerDependencies": { "@multiformats/multiaddr": "^12.0.0", - "libp2p": "^1.8.1" + "libp2p": "2.0.2" }, "peerDependenciesMeta": { "@multiformats/multiaddr": { diff --git a/packages/discovery/package.json b/packages/discovery/package.json index da92cc1b12..722c87eea3 100644 --- a/packages/discovery/package.json +++ b/packages/discovery/package.json @@ -62,8 +62,8 @@ "uint8arrays": "^5.0.1" }, "devDependencies": { - "@libp2p/peer-id": "^4.2.1", - "@libp2p/peer-id-factory": "^4.2.1", + "@libp2p/peer-id": "5.0.1", + "@libp2p/peer-id-factory": "^4.2.4", "@multiformats/multiaddr": "^12.3.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", @@ -81,7 +81,7 @@ "sinon": "^18.0.0" }, "peerDependencies": { - "@libp2p/interface": "^1.6.3" + "@libp2p/interface": "2.0.1" }, "peerDependenciesMeta": { "@libp2p/interface": { diff --git a/packages/enr/package.json b/packages/enr/package.json index 53317f549e..453cd8ec8e 100644 --- a/packages/enr/package.json +++ b/packages/enr/package.json @@ -52,8 +52,8 @@ }, "dependencies": { "@ethersproject/rlp": "^5.7.0", - "@libp2p/crypto": "^4.1.6", - "@libp2p/peer-id": "^4.2.1", + "@libp2p/crypto": "^5.0.1", + "@libp2p/peer-id": "^5.0.1", "@multiformats/multiaddr": "^12.0.0", "@noble/secp256k1": "^1.7.1", "@waku/utils": "0.0.20", @@ -61,7 +61,7 @@ "js-sha3": "^0.9.2" }, "devDependencies": { - "@libp2p/peer-id-factory": "^4.2.1", + "@libp2p/peer-id-factory": "^4.2.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.2.3", diff --git a/packages/interfaces/package.json b/packages/interfaces/package.json index 1e8481c084..9f7df6b8b3 100644 --- a/packages/interfaces/package.json +++ b/packages/interfaces/package.json @@ -47,11 +47,11 @@ "node": ">=20" }, "devDependencies": { - "@chainsafe/libp2p-gossipsub": "^13.1.0", + "@chainsafe/libp2p-gossipsub": "^14.1.0", "@multiformats/multiaddr": "^12.0.0", "cspell": "^8.6.1", "npm-run-all": "^4.1.5", - "libp2p": "^1.8.1" + "libp2p": "2.0.2" }, "files": [ "dist", diff --git a/packages/relay/package.json b/packages/relay/package.json index 2f8088487d..edb6c98253 100644 --- a/packages/relay/package.json +++ b/packages/relay/package.json @@ -49,7 +49,7 @@ "node": ">=18" }, "dependencies": { - "@chainsafe/libp2p-gossipsub": "^13.1.0", + "@chainsafe/libp2p-gossipsub": "^14.1.0", "@noble/hashes": "^1.3.2", "@waku/core": "0.0.32", "@waku/sdk": "0.0.28", @@ -68,7 +68,7 @@ "rollup": "^4.12.0" }, "peerDependencies": { - "@chainsafe/libp2p-gossipsub": "^12.0.0" + "@chainsafe/libp2p-gossipsub": "^14.1.0" }, "peerDependenciesMeta": { "@chainsafe/libp2p-gossipsub": { diff --git a/packages/sdk/package.json b/packages/sdk/package.json index e2a6c6dc0b..459466403c 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -57,12 +57,12 @@ "node": ">=20" }, "dependencies": { - "@chainsafe/libp2p-noise": "^15.1.0", - "@libp2p/bootstrap": "^10.1.2", - "@libp2p/identify": "^2.1.2", - "@libp2p/mplex": "^10.1.2", - "@libp2p/ping": "^1.1.2", - "@libp2p/websockets": "^8.1.4", + "@chainsafe/libp2p-noise": "^16.0.0", + "@libp2p/bootstrap": "^11.0.1", + "@libp2p/identify": "^3.0.1", + "@libp2p/mplex": "^11.0.1", + "@libp2p/ping": "2.0.1", + "@libp2p/websockets": "^9.0.1", "@noble/hashes": "^1.3.3", "@waku/core": "0.0.32", "@waku/discovery": "0.0.5", @@ -70,7 +70,7 @@ "@waku/proto": "^0.0.8", "@waku/utils": "0.0.20", "@waku/message-hash": "0.1.16", - "libp2p": "^1.8.1" + "libp2p": "2.0.2" }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.7", diff --git a/packages/tests/package.json b/packages/tests/package.json index 12d88f395a..b32818ebf7 100644 --- a/packages/tests/package.json +++ b/packages/tests/package.json @@ -50,8 +50,8 @@ "node": ">=20" }, "dependencies": { - "@libp2p/interface-compliance-tests": "^5.4.9", - "@libp2p/peer-id": "^4.2.1", + "@libp2p/interface-compliance-tests": "^6.0.1", + "@libp2p/peer-id": "^5.0.1", "@waku/core": "*", "@waku/enr": "*", "@waku/interfaces": "*", @@ -68,7 +68,7 @@ "tail": "^2.2.6" }, "devDependencies": { - "@libp2p/bootstrap": "^10.1.2", + "@libp2p/bootstrap": "^11.0.1", "@types/chai": "^4.3.11", "@types/dockerode": "^3.3.19", "@types/mocha": "^10.0.6", @@ -85,7 +85,7 @@ "datastore-core": "^9.2.7", "debug": "^4.3.4", "interface-datastore": "^8.2.10", - "libp2p": "^1.8.1", + "libp2p": "2.0.2", "mocha": "^10.3.0", "mocha-multi-reporters": "^1.5.1", "npm-run-all": "^4.1.5" From 1be119cc8efb879fe968a1c4c4a23bfce5f383d1 Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 13:37:15 +0530 Subject: [PATCH 2/8] chore: fix ENR --- packages/enr/src/creator.ts | 5 ++--- packages/enr/src/enr.ts | 6 +++--- packages/enr/src/peer_id.ts | 43 ++++++++----------------------------- 3 files changed, 14 insertions(+), 40 deletions(-) diff --git a/packages/enr/src/creator.ts b/packages/enr/src/creator.ts index 44d947b812..1071ce3d20 100644 --- a/packages/enr/src/creator.ts +++ b/packages/enr/src/creator.ts @@ -4,13 +4,12 @@ import { utf8ToBytes } from "@waku/utils/bytes"; import { compressPublicKey } from "./crypto.js"; import { ENR } from "./enr.js"; -import { getPublicKeyFromPeerId } from "./peer_id.js"; export class EnrCreator { public static fromPublicKey( publicKey: Uint8Array, kvs: Record = {} - ): Promise { + ): ENR { // EIP-778 specifies that the key must be in compressed format, 33 bytes if (publicKey.length !== 33) { publicKey = compressPublicKey(publicKey); @@ -28,7 +27,7 @@ export class EnrCreator { ): Promise { switch (peerId.type) { case "secp256k1": - return EnrCreator.fromPublicKey(getPublicKeyFromPeerId(peerId), kvs); + return EnrCreator.fromPublicKey(peerId.publicKey.raw, kvs); default: throw new Error(); } diff --git a/packages/enr/src/enr.ts b/packages/enr/src/enr.ts index 2425cb5790..77c80fc1c2 100644 --- a/packages/enr/src/enr.ts +++ b/packages/enr/src/enr.ts @@ -34,16 +34,16 @@ export class ENR extends RawEnr implements IEnr { public static readonly RECORD_PREFIX = "enr:"; public peerId?: PeerId; - public static async create( + public static create( kvs: Record = {}, seq: SequenceNumber = BigInt(1), signature?: Uint8Array - ): Promise { + ): ENR { const enr = new ENR(kvs, seq, signature); try { const publicKey = enr.publicKey; if (publicKey) { - enr.peerId = await createPeerIdFromPublicKey(publicKey); + enr.peerId = createPeerIdFromPublicKey(publicKey); } } catch (e) { log.error("Could not calculate peer id for ENR", e); diff --git a/packages/enr/src/peer_id.ts b/packages/enr/src/peer_id.ts index 258ed35171..9ffd4da5a7 100644 --- a/packages/enr/src/peer_id.ts +++ b/packages/enr/src/peer_id.ts @@ -1,38 +1,13 @@ -import { unmarshalPrivateKey, unmarshalPublicKey } from "@libp2p/crypto/keys"; -import { supportedKeys } from "@libp2p/crypto/keys"; -import type { PeerId } from "@libp2p/interface"; -import { peerIdFromKeys } from "@libp2p/peer-id"; +import { publicKeyFromRaw } from "@libp2p/crypto/keys"; +import { type PeerId } from "@libp2p/interface"; +import { peerIdFromPublicKey } from "@libp2p/peer-id"; -export function createPeerIdFromPublicKey( - publicKey: Uint8Array -): Promise { - const _publicKey = new supportedKeys.secp256k1.Secp256k1PublicKey(publicKey); - return peerIdFromKeys(_publicKey.bytes, undefined); -} - -export function getPublicKeyFromPeerId(peerId: PeerId): Uint8Array { - if (peerId.type !== "secp256k1") { - throw new Error("Unsupported peer id type"); - } +export const ERR_TYPE_NOT_IMPLEMENTED = "Keypair type not implemented"; - if (!peerId.publicKey) { - throw new Error("Public key not present on peer id"); +export function createPeerIdFromPublicKey(publicKey: Uint8Array): PeerId { + const pubKey = publicKeyFromRaw(publicKey); + if (pubKey.type !== "secp256k1") { + throw new Error(ERR_TYPE_NOT_IMPLEMENTED); } - - return unmarshalPublicKey(peerId.publicKey).marshal(); -} - -// Only used in tests -export async function getPrivateKeyFromPeerId( - peerId: PeerId -): Promise { - if (peerId.type !== "secp256k1") { - throw new Error("Unsupported peer id type"); - } - if (!peerId.privateKey) { - throw new Error("Private key not present on peer id"); - } - - const privateKey = await unmarshalPrivateKey(peerId.privateKey); - return privateKey.marshal(); + return peerIdFromPublicKey(pubKey); } From ea05332c703f59eb72593103cedcf95e4d273aa8 Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 13:38:01 +0530 Subject: [PATCH 3/8] chore(core): remove CustomEvent polyfill import --- packages/core/src/lib/connection_manager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/lib/connection_manager.ts b/packages/core/src/lib/connection_manager.ts index 8fc61f4d54..64bd35434f 100644 --- a/packages/core/src/lib/connection_manager.ts +++ b/packages/core/src/lib/connection_manager.ts @@ -1,5 +1,5 @@ import type { Peer, PeerId, PeerInfo, PeerStore } from "@libp2p/interface"; -import { CustomEvent, TypedEventEmitter } from "@libp2p/interface"; +import { TypedEventEmitter } from "@libp2p/interface"; import { ConnectionManagerOptions, DiscoveryTrigger, From 021e3a403d226a851206a99b84d766d5dba7f512 Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 13:40:24 +0530 Subject: [PATCH 4/8] chore: `peer-id-factory` has been removed --- package-lock.json | 91 --------------------------------- packages/discovery/package.json | 1 - packages/enr/package.json | 1 - 3 files changed, 93 deletions(-) diff --git a/package-lock.json b/package-lock.json index aa6b18fc08..27ea6b8f3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5538,38 +5538,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/crypto": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-4.1.9.tgz", - "integrity": "sha512-8Cf2VKh0uC/rQLvTLSloIOMqUvf4jsSTHXgjWQRf47lDNJlNNI0wSv2S6gakT72GZsRV/jCjYwKPqRlsa5S0iA==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^1.7.0", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/crypto/node_modules/@libp2p/interface": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", - "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@multiformats/multiaddr": "^12.2.3", - "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", - "uint8arraylist": "^2.4.8" - } - }, "node_modules/@libp2p/identify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-3.0.1.tgz", @@ -5857,63 +5825,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/peer-id": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.2.4.tgz", - "integrity": "sha512-mvvsVxt4HkF14BrTNKbqr14VObW+KBJBWu1Oe6BFCoDttGMQLaI+PdduE1r6Tquntv5IONBqoITgD7ow5dQ+vQ==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^1.7.0", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/peer-id-factory": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-4.2.4.tgz", - "integrity": "sha512-NDQ/qIWpcAG/6xQjyut6xCkrYYAoCaI/33Z+7yzo5qFODwLfNonLzSTasnA6jhuvHn33aHnD1qhdpFkmstxtNQ==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^4.1.9", - "@libp2p/interface": "^1.7.0", - "@libp2p/peer-id": "^4.2.4", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/interface": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", - "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@multiformats/multiaddr": "^12.2.3", - "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", - "uint8arraylist": "^2.4.8" - } - }, - "node_modules/@libp2p/peer-id/node_modules/@libp2p/interface": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", - "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@multiformats/multiaddr": "^12.2.3", - "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", - "uint8arraylist": "^2.4.8" - } - }, "node_modules/@libp2p/peer-record": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.1.tgz", @@ -39612,7 +39523,6 @@ }, "devDependencies": { "@libp2p/peer-id": "5.0.1", - "@libp2p/peer-id-factory": "^4.2.4", "@multiformats/multiaddr": "^12.3.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", @@ -39686,7 +39596,6 @@ "js-sha3": "^0.9.2" }, "devDependencies": { - "@libp2p/peer-id-factory": "^4.2.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.2.3", diff --git a/packages/discovery/package.json b/packages/discovery/package.json index 722c87eea3..73ec410e57 100644 --- a/packages/discovery/package.json +++ b/packages/discovery/package.json @@ -63,7 +63,6 @@ }, "devDependencies": { "@libp2p/peer-id": "5.0.1", - "@libp2p/peer-id-factory": "^4.2.4", "@multiformats/multiaddr": "^12.3.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", diff --git a/packages/enr/package.json b/packages/enr/package.json index 453cd8ec8e..74cea3d278 100644 --- a/packages/enr/package.json +++ b/packages/enr/package.json @@ -61,7 +61,6 @@ "js-sha3": "^0.9.2" }, "devDependencies": { - "@libp2p/peer-id-factory": "^4.2.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.2.3", From 5b7505da183c33142c9219e4f9497dfe2527eed7 Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 13:46:04 +0530 Subject: [PATCH 5/8] chore(discovery): fix local-cache & remove CustomEvent imports --- packages/discovery/src/dns/dns_discovery.ts | 1 - packages/discovery/src/local-peer-cache/index.ts | 5 ++--- .../src/peer-exchange/waku_peer_exchange_discovery.ts | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/discovery/src/dns/dns_discovery.ts b/packages/discovery/src/dns/dns_discovery.ts index e7c33c2aab..a998f6eb22 100644 --- a/packages/discovery/src/dns/dns_discovery.ts +++ b/packages/discovery/src/dns/dns_discovery.ts @@ -1,5 +1,4 @@ import { - CustomEvent, PeerDiscovery, PeerDiscoveryEvents, TypedEventEmitter diff --git a/packages/discovery/src/local-peer-cache/index.ts b/packages/discovery/src/local-peer-cache/index.ts index 7b8a846915..cd9708a984 100644 --- a/packages/discovery/src/local-peer-cache/index.ts +++ b/packages/discovery/src/local-peer-cache/index.ts @@ -1,13 +1,12 @@ import { TypedEventEmitter } from "@libp2p/interface"; import { - CustomEvent, IdentifyResult, PeerDiscovery, PeerDiscoveryEvents, PeerInfo, Startable } from "@libp2p/interface"; -import { createFromJSON } from "@libp2p/peer-id-factory"; +import { peerIdFromString } from "@libp2p/peer-id"; import { multiaddr } from "@multiformats/multiaddr"; import { type Libp2pComponents, @@ -58,7 +57,7 @@ export class LocalPeerCacheDiscovery ); for (const { id: idStr, address } of this.peers) { - const peerId = await createFromJSON({ id: idStr }); + const peerId = peerIdFromString(idStr); if (await this.components.peerStore.has(peerId)) continue; await this.components.peerStore.save(peerId, { diff --git a/packages/discovery/src/peer-exchange/waku_peer_exchange_discovery.ts b/packages/discovery/src/peer-exchange/waku_peer_exchange_discovery.ts index f58f298be1..5b9a6d9eb4 100644 --- a/packages/discovery/src/peer-exchange/waku_peer_exchange_discovery.ts +++ b/packages/discovery/src/peer-exchange/waku_peer_exchange_discovery.ts @@ -1,4 +1,4 @@ -import { CustomEvent, TypedEventEmitter } from "@libp2p/interface"; +import { TypedEventEmitter } from "@libp2p/interface"; import { peerDiscoverySymbol as symbol } from "@libp2p/interface"; import type { IdentifyResult, From 18032195e7c031c439ab1e26b2100bc95f2c1d2b Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 13:47:06 +0530 Subject: [PATCH 6/8] chore(sdk): update config --- .cspell.json | 1 + packages/sdk/src/create/libp2p.ts | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.cspell.json b/.cspell.json index 4d79829a48..99da5df60e 100644 --- a/.cspell.json +++ b/.cspell.json @@ -32,6 +32,7 @@ "Dscore", "ecies", "editorconfig", + "Encrypters", "enr", "enrs", "enrtree", diff --git a/packages/sdk/src/create/libp2p.ts b/packages/sdk/src/create/libp2p.ts index bbeb7a3c0a..47bd49dcf7 100644 --- a/packages/sdk/src/create/libp2p.ts +++ b/packages/sdk/src/create/libp2p.ts @@ -59,12 +59,9 @@ export async function defaultLibp2p( : wss; return createLibp2p({ - connectionManager: { - minConnections: 1 - }, transports: [webSockets({ filter: filter })], streamMuxers: [mplex()], - connectionEncryption: [noise()], + connectionEncrypters: [noise()], ...options, services: { identify: identify({ From 543b40932681b8b2be30c6225dacb6e717dad0ca Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 13:57:25 +0530 Subject: [PATCH 7/8] chore(tests): update tests without peer-id-factory --- packages/tests/package.json | 3 +- .../tests/connection-mananger/dials.spec.ts | 24 +++++++++----- .../tests/connection-mananger/events.spec.ts | 26 ++++++++++------ .../tests/connection-mananger/methods.spec.ts | 31 ++++++++++++------- .../tests/tests/dns-peer-discovery.spec.ts | 7 +++-- packages/tests/tests/getPeers.spec.ts | 19 ++++++------ packages/tests/tests/multiaddr.node.spec.ts | 1 - .../continuous_discovery.spec.ts | 9 ++++-- 8 files changed, 76 insertions(+), 44 deletions(-) diff --git a/packages/tests/package.json b/packages/tests/package.json index b32818ebf7..60ab2f0532 100644 --- a/packages/tests/package.json +++ b/packages/tests/package.json @@ -69,6 +69,7 @@ }, "devDependencies": { "@libp2p/bootstrap": "^11.0.1", + "@libp2p/crypto": "^5.0.1", "@types/chai": "^4.3.11", "@types/dockerode": "^3.3.19", "@types/mocha": "^10.0.6", @@ -76,8 +77,8 @@ "@types/tail": "^2.2.3", "@waku/discovery": "*", "@waku/message-encryption": "*", - "@waku/sdk": "*", "@waku/relay": "*", + "@waku/sdk": "*", "allure-commandline": "^2.27.0", "allure-mocha": "^2.9.2", "chai": "^4.3.10", diff --git a/packages/tests/tests/connection-mananger/dials.spec.ts b/packages/tests/tests/connection-mananger/dials.spec.ts index babd4f2533..48282f2986 100644 --- a/packages/tests/tests/connection-mananger/dials.spec.ts +++ b/packages/tests/tests/connection-mananger/dials.spec.ts @@ -1,6 +1,6 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import type { PeerInfo } from "@libp2p/interface"; -import { CustomEvent } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { LightNode, Tags } from "@waku/interfaces"; import { createLightNode } from "@waku/sdk"; import { expect } from "chai"; @@ -49,10 +49,12 @@ describe("Dials", function () { it("should be called at least once on all `peer:discovery` events", async function () { const totalPeerIds = 5; for (let i = 1; i <= totalPeerIds; i++) { + const privateKey = await generateKeyPair("secp256k1"); + const peerId = peerIdFromPrivateKey(privateKey); waku.libp2p.dispatchEvent( new CustomEvent("peer:discovery", { detail: { - id: await createSecp256k1PeerId(), + id: peerId, multiaddrs: [] } }) @@ -110,7 +112,8 @@ describe("Dials", function () { describe("For bootstrap peers", function () { it("should be called for bootstrap peers", async function () { - const bootstrapPeer = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const bootstrapPeer = peerIdFromPrivateKey(privateKey); // emit a peer:discovery event waku.libp2p.dispatchEvent( @@ -130,11 +133,13 @@ describe("Dials", function () { }); it("should not be called more than DEFAULT_MAX_BOOTSTRAP_PEERS_ALLOWED times for bootstrap peers", async function () { + const privateKey = await generateKeyPair("secp256k1"); + const bootstrapPeer = peerIdFromPrivateKey(privateKey); // emit first peer:discovery event waku.libp2p.dispatchEvent( new CustomEvent("peer:discovery", { detail: { - id: await createSecp256k1PeerId(), + id: bootstrapPeer, multiaddrs: [] } }) @@ -151,7 +156,7 @@ describe("Dials", function () { waku.libp2p.dispatchEvent( new CustomEvent("peer:discovery", { detail: { - id: await createSecp256k1PeerId(), + id: bootstrapPeer, multiaddrs: [] } }) @@ -168,7 +173,8 @@ describe("Dials", function () { describe("For peer-exchange peers", function () { it("should be called for peers with PEER_EXCHANGE tags", async function () { - const pxPeer = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const pxPeer = peerIdFromPrivateKey(privateKey); // emit a peer:discovery event waku.libp2p.dispatchEvent( @@ -194,10 +200,12 @@ describe("Dials", function () { // emit multiple peer:discovery events const totalPxPeers = 5; for (let i = 0; i < totalPxPeers; i++) { + const privateKey = await generateKeyPair("secp256k1"); + const pxPeer = peerIdFromPrivateKey(privateKey); waku.libp2p.dispatchEvent( new CustomEvent("peer:discovery", { detail: { - id: await createSecp256k1PeerId(), + id: pxPeer, multiaddrs: [] } }) diff --git a/packages/tests/tests/connection-mananger/events.spec.ts b/packages/tests/tests/connection-mananger/events.spec.ts index 581646ccc0..431eec628a 100644 --- a/packages/tests/tests/connection-mananger/events.spec.ts +++ b/packages/tests/tests/connection-mananger/events.spec.ts @@ -1,6 +1,7 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import type { PeerId, PeerInfo } from "@libp2p/interface"; -import { CustomEvent, TypedEventEmitter } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { TypedEventEmitter } from "@libp2p/interface"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { EConnectionStateEvents, EPeersByDiscoveryEvents, @@ -28,7 +29,8 @@ describe("Events", function () { describe("peer:discovery", () => { it("should emit `peer:discovery:bootstrap` event when a peer is discovered", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { @@ -61,7 +63,8 @@ describe("Events", function () { }); it("should emit `peer:discovery:peer-exchange` event when a peer is discovered", async function () { - const peerIdPx = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdPx = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdPx, { tags: { @@ -96,7 +99,8 @@ describe("Events", function () { describe("peer:connect", () => { it("should emit `peer:connected:bootstrap` event when a peer is connected", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { @@ -123,7 +127,8 @@ describe("Events", function () { expect(await peerConnectedBootstrap).to.eq(true); }); it("should emit `peer:connected:peer-exchange` event when a peer is connected", async function () { - const peerIdPx = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdPx = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdPx, { tags: { @@ -179,8 +184,10 @@ describe("Events", function () { }); it(`should emit events and trasition isConnected state when has peers or no peers`, async function () { - const peerIdPx = await createSecp256k1PeerId(); - const peerIdPx2 = await createSecp256k1PeerId(); + const privateKey1 = await generateKeyPair("secp256k1"); + const privateKey2 = await generateKeyPair("secp256k1"); + const peerIdPx = peerIdFromPrivateKey(privateKey1); + const peerIdPx2 = peerIdFromPrivateKey(privateKey2); await waku.libp2p.peerStore.save(peerIdPx, { tags: { @@ -249,7 +256,8 @@ describe("Events", function () { // have to recreate js-waku for it to pick up new globalThis waku = await createLightNode(); - const peerIdPx = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdPx = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdPx, { tags: { diff --git a/packages/tests/tests/connection-mananger/methods.spec.ts b/packages/tests/tests/connection-mananger/methods.spec.ts index d2bde33f9e..6bd54fd60d 100644 --- a/packages/tests/tests/connection-mananger/methods.spec.ts +++ b/packages/tests/tests/connection-mananger/methods.spec.ts @@ -1,6 +1,6 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import type { PeerId } from "@libp2p/interface"; -import { CustomEvent } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { EPeersByDiscoveryEvents, LightNode, @@ -26,7 +26,8 @@ describe("Public methods", function () { await tearDownNodes([], waku); }); it("addEventListener with correct event", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { [Tags.BOOTSTRAP]: { @@ -50,7 +51,8 @@ describe("Public methods", function () { }); it("addEventListener with wrong event", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { [Tags.BOOTSTRAP]: { @@ -83,7 +85,8 @@ describe("Public methods", function () { }); it("removeEventListener with correct event", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { [Tags.BOOTSTRAP]: { @@ -126,7 +129,8 @@ describe("Public methods", function () { }); it("removeEventListener with wrong event", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { [Tags.BOOTSTRAP]: { @@ -164,7 +168,8 @@ describe("Public methods", function () { }); it("getPeersByDiscovery", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); const peers_before = await waku.connectionManager.getPeersByDiscovery(); expect(peers_before.DISCOVERED[Tags.BOOTSTRAP]).to.deep.eq([]); @@ -202,7 +207,8 @@ describe("Public methods", function () { }); it("listenerCount", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); waku.connectionManager.addEventListener( EPeersByDiscoveryEvents.PEER_CONNECT_BOOTSTRAP, ({ detail: receivedPeerId }) => { @@ -233,7 +239,8 @@ describe("Public methods", function () { }); it("dispatchEvent via connectionManager", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { [Tags.BOOTSTRAP]: { @@ -259,7 +266,8 @@ describe("Public methods", function () { }); it("safeDispatchEvent", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { [Tags.BOOTSTRAP]: { @@ -286,7 +294,8 @@ describe("Public methods", function () { }); it("stop", async function () { - const peerIdBootstrap = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerIdBootstrap = peerIdFromPrivateKey(privateKey); await waku.libp2p.peerStore.save(peerIdBootstrap, { tags: { [Tags.BOOTSTRAP]: { diff --git a/packages/tests/tests/dns-peer-discovery.spec.ts b/packages/tests/tests/dns-peer-discovery.spec.ts index 14139dcba8..4a9408624d 100644 --- a/packages/tests/tests/dns-peer-discovery.spec.ts +++ b/packages/tests/tests/dns-peer-discovery.spec.ts @@ -1,7 +1,8 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import { TypedEventEmitter } from "@libp2p/interface"; import tests from "@libp2p/interface-compliance-tests/peer-discovery"; import { prefixLogger } from "@libp2p/logger"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { PersistentPeerStore } from "@libp2p/peer-store"; import { DnsNodeDiscovery, @@ -22,11 +23,13 @@ describe("DNS Discovery: Compliance Test", function () { this.timeout(10000); tests({ async setup() { + const privateKey = await generateKeyPair("secp256k1"); + const peerId = peerIdFromPrivateKey(privateKey); // create libp2p mock peerStore const components = { peerStore: new PersistentPeerStore({ events: new TypedEventEmitter(), - peerId: await createSecp256k1PeerId(), + peerId, datastore: new MemoryDatastore(), logger: prefixLogger("dns-peer-discovery.spec.ts") }) diff --git a/packages/tests/tests/getPeers.spec.ts b/packages/tests/tests/getPeers.spec.ts index 252340a5bf..2b18b7fc96 100644 --- a/packages/tests/tests/getPeers.spec.ts +++ b/packages/tests/tests/getPeers.spec.ts @@ -1,5 +1,6 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import type { Connection, Peer, PeerStore } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { LightPushCodec, waitForRemotePeer } from "@waku/core"; import { ContentTopicInfo, @@ -468,14 +469,14 @@ describe("getPeers", function () { differentCodecPeerId, anotherDifferentCodecPeerId ] = await Promise.all([ - createSecp256k1PeerId(), - createSecp256k1PeerId(), - createSecp256k1PeerId(), - createSecp256k1PeerId(), - createSecp256k1PeerId(), - createSecp256k1PeerId(), - createSecp256k1PeerId(), - createSecp256k1PeerId() + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey) ]); lowPingBootstrapPeer = { diff --git a/packages/tests/tests/multiaddr.node.spec.ts b/packages/tests/tests/multiaddr.node.spec.ts index b996d5b88e..2efc360786 100644 --- a/packages/tests/tests/multiaddr.node.spec.ts +++ b/packages/tests/tests/multiaddr.node.spec.ts @@ -1,6 +1,5 @@ import type { PeerId } from "@libp2p/interface"; import type { PeerInfo } from "@libp2p/interface"; -import { CustomEvent } from "@libp2p/interface"; import { multiaddr } from "@multiformats/multiaddr"; import type { Multiaddr } from "@multiformats/multiaddr"; import type { Waku } from "@waku/interfaces"; diff --git a/packages/tests/tests/peer-exchange/continuous_discovery.spec.ts b/packages/tests/tests/peer-exchange/continuous_discovery.spec.ts index fe5c18ba73..94ba6bc5b3 100644 --- a/packages/tests/tests/peer-exchange/continuous_discovery.spec.ts +++ b/packages/tests/tests/peer-exchange/continuous_discovery.spec.ts @@ -1,5 +1,6 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import { type PeerId } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { multiaddr } from "@multiformats/multiaddr"; import { PeerExchangeDiscovery } from "@waku/discovery"; import { IEnr, LightNode } from "@waku/interfaces"; @@ -92,7 +93,8 @@ describe("Peer Exchange Continuous Discovery", () => { }); async function discoverPeerOnce(): Promise { - peerId = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + peerId = peerIdFromPrivateKey(privateKey); const enr: IEnr = { peerId, @@ -109,7 +111,8 @@ describe("Peer Exchange Continuous Discovery", () => { queryStub.resolves({ error: null, peerInfos: [peerInfo] }); - randomPeerId = await createSecp256k1PeerId(); + const privateKeyRandom = await generateKeyPair("secp256k1"); + randomPeerId = peerIdFromPrivateKey(privateKeyRandom); const result = await (peerExchangeDiscovery as any).query(randomPeerId); expect(result.error).to.be.null; From 03297bef2c22e99b4b5bfe80873a4bcc8b8c192e Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 19 Sep 2024 14:10:42 +0530 Subject: [PATCH 8/8] fix: spec tests --- package-lock.json | 376 +----------------- packages/core/package.json | 1 + packages/core/src/lib/filterPeers.spec.ts | 45 ++- .../discovery/src/dns/fetch_nodes.spec.ts | 5 +- .../src/local-peer-cache/index.spec.ts | 10 +- packages/enr/src/decoder.ts | 2 +- packages/enr/src/enr.spec.ts | 33 +- packages/relay/src/message_validator.spec.ts | 9 +- 8 files changed, 63 insertions(+), 418 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27ea6b8f3a..e0bf9ad087 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2641,34 +2641,6 @@ "npm": ">=8.7.0" } }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@chainsafe/libp2p-noise": { "version": "16.0.0", "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-16.0.0.tgz", @@ -2694,34 +2666,6 @@ "wherearewe": "^2.0.1" } }, - "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@chainsafe/netmask": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", @@ -5510,7 +5454,7 @@ "@multiformats/multiaddr": "^12.2.3" } }, - "node_modules/@libp2p/bootstrap/node_modules/@libp2p/crypto": { + "node_modules/@libp2p/crypto": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", @@ -5526,18 +5470,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/bootstrap/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/identify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-3.0.1.tgz", @@ -5560,34 +5492,6 @@ "wherearewe": "^2.0.1" } }, - "node_modules/@libp2p/identify/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/identify/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/interface": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.0.1.tgz", @@ -5642,22 +5546,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/logger": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.0.1.tgz", @@ -5671,18 +5559,6 @@ "weald": "^1.0.2" } }, - "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/interface-compliance-tests/node_modules/p-limit": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.1.0.tgz", @@ -5797,23 +5673,7 @@ "multiformats": "^13.2.2" } }, - "node_modules/@libp2p/peer-collections/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/peer-collections/node_modules/@libp2p/peer-id": { + "node_modules/@libp2p/peer-id": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", @@ -5843,34 +5703,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/peer-record/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/peer-record/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/peer-store": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.0.1.tgz", @@ -5892,34 +5724,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/peer-store/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/peer-store/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/ping": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-2.0.1.tgz", @@ -5935,22 +5739,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/ping/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/pubsub": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-10.0.1.tgz", @@ -5972,34 +5760,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/pubsub/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "node_modules/@libp2p/pubsub/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/utils": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.0.1.tgz", @@ -6031,22 +5791,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@libp2p/utils/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, "node_modules/@libp2p/utils/node_modules/@libp2p/logger": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.0.1.tgz", @@ -22298,22 +22042,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/libp2p/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, "node_modules/libp2p/node_modules/@libp2p/logger": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.0.1.tgz", @@ -22327,18 +22055,6 @@ "weald": "^1.0.2" } }, - "node_modules/libp2p/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "node_modules/libp2p/node_modules/datastore-core": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-10.0.2.tgz", @@ -39458,6 +39174,7 @@ "uuid": "^9.0.0" }, "devDependencies": { + "@libp2p/peer-id": "^5.0.1", "@multiformats/multiaddr": "^12.0.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", @@ -39551,36 +39268,6 @@ } } }, - "packages/discovery/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "packages/discovery/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "packages/enr": { "name": "@waku/enr", "version": "0.0.26", @@ -39624,34 +39311,6 @@ } } }, - "packages/enr/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "packages/enr/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "packages/interfaces": { "name": "@waku/interfaces", "version": "0.0.27", @@ -39878,6 +39537,7 @@ }, "devDependencies": { "@libp2p/bootstrap": "^11.0.1", + "@libp2p/crypto": "^5.0.1", "@types/chai": "^4.3.11", "@types/dockerode": "^3.3.19", "@types/mocha": "^10.0.6", @@ -39903,34 +39563,6 @@ "node": ">=20" } }, - "packages/tests/node_modules/@libp2p/crypto": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.1.tgz", - "integrity": "sha512-j7X4ISdWHnIJh752bl70z+3R4LdB8xftFU0ShOuuHg9ETTViHa3O0AK5v1HxyaSXE/uhXhfwjVH3vxn8ECQl/A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^2.0.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" - } - }, - "packages/tests/node_modules/@libp2p/peer-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.1.tgz", - "integrity": "sha512-HwoW7dQ/o4NQ+5PQThOzMK2OHMRicmTZxVuMjbjWcPNnNWb8x/5vwjzdEUfqXimHYdZTIpy2PMMq6Jf4zvculQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/crypto": "^5.0.1", - "@libp2p/interface": "^2.0.1", - "multiformats": "^13.1.0", - "uint8arrays": "^5.1.0" - } - }, "packages/utils": { "name": "@waku/utils", "version": "0.0.20", diff --git a/packages/core/package.json b/packages/core/package.json index 23fa98cfbe..c68cf24a74 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -82,6 +82,7 @@ "uuid": "^9.0.0" }, "devDependencies": { + "@libp2p/peer-id": "^5.0.1", "@multiformats/multiaddr": "^12.0.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.0", diff --git a/packages/core/src/lib/filterPeers.spec.ts b/packages/core/src/lib/filterPeers.spec.ts index 8ae77c3bd2..e9737d9021 100644 --- a/packages/core/src/lib/filterPeers.spec.ts +++ b/packages/core/src/lib/filterPeers.spec.ts @@ -1,6 +1,7 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import { Peer } from "@libp2p/interface"; import type { Tag } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { Tags } from "@waku/interfaces"; import { expect } from "chai"; @@ -8,9 +9,11 @@ import { filterPeersByDiscovery } from "./filterPeers.js"; describe("filterPeersByDiscovery function", function () { it("should return all peers when numPeers is 0", async function () { - const peer1 = await createSecp256k1PeerId(); - const peer2 = await createSecp256k1PeerId(); - const peer3 = await createSecp256k1PeerId(); + const [peer1, peer2, peer3] = await Promise.all([ + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey) + ]); const mockPeers = [ { @@ -32,10 +35,12 @@ describe("filterPeersByDiscovery function", function () { }); it("should return all non-bootstrap peers and no bootstrap peer when numPeers is 0 and maxBootstrapPeers is 0", async function () { - const peer1 = await createSecp256k1PeerId(); - const peer2 = await createSecp256k1PeerId(); - const peer3 = await createSecp256k1PeerId(); - const peer4 = await createSecp256k1PeerId(); + const [peer1, peer2, peer3, peer4] = await Promise.all([ + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey) + ]); const mockPeers = [ { @@ -66,11 +71,13 @@ describe("filterPeersByDiscovery function", function () { }); it("should return one bootstrap peer, and all non-boostrap peers, when numPeers is 0 & maxBootstrap is 1", async function () { - const peer1 = await createSecp256k1PeerId(); - const peer2 = await createSecp256k1PeerId(); - const peer3 = await createSecp256k1PeerId(); - const peer4 = await createSecp256k1PeerId(); - const peer5 = await createSecp256k1PeerId(); + const [peer1, peer2, peer3, peer4, peer5] = await Promise.all([ + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey) + ]); const mockPeers = [ { @@ -105,11 +112,13 @@ describe("filterPeersByDiscovery function", function () { }); it("should return only bootstrap peers up to maxBootstrapPeers", async function () { - const peer1 = await createSecp256k1PeerId(); - const peer2 = await createSecp256k1PeerId(); - const peer3 = await createSecp256k1PeerId(); - const peer4 = await createSecp256k1PeerId(); - const peer5 = await createSecp256k1PeerId(); + const [peer1, peer2, peer3, peer4, peer5] = await Promise.all([ + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey), + generateKeyPair("secp256k1").then(peerIdFromPrivateKey) + ]); const mockPeers = [ { diff --git a/packages/discovery/src/dns/fetch_nodes.spec.ts b/packages/discovery/src/dns/fetch_nodes.spec.ts index 15b22b9b59..4b4bd261c0 100644 --- a/packages/discovery/src/dns/fetch_nodes.spec.ts +++ b/packages/discovery/src/dns/fetch_nodes.spec.ts @@ -1,4 +1,5 @@ -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { generateKeyPair } from "@libp2p/crypto/keys"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { multiaddr } from "@multiformats/multiaddr"; import { ENR } from "@waku/enr"; import { EnrCreator } from "@waku/enr"; @@ -8,7 +9,7 @@ import { expect } from "chai"; import { fetchNodesUntilCapabilitiesFulfilled } from "./fetch_nodes.js"; async function createEnr(waku2: Waku2): Promise { - const peerId = await createSecp256k1PeerId(); + const peerId = await generateKeyPair("secp256k1").then(peerIdFromPrivateKey); const enr = await EnrCreator.fromPeerId(peerId); enr.setLocationMultiaddr(multiaddr("/ip4/18.223.219.100/udp/9000")); enr.multiaddrs = [ diff --git a/packages/discovery/src/local-peer-cache/index.spec.ts b/packages/discovery/src/local-peer-cache/index.spec.ts index 28cb0677d5..03f84b7217 100644 --- a/packages/discovery/src/local-peer-cache/index.spec.ts +++ b/packages/discovery/src/local-peer-cache/index.spec.ts @@ -1,9 +1,9 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import type { IdentifyResult } from "@libp2p/interface"; import { TypedEventEmitter } from "@libp2p/interface"; import tests from "@libp2p/interface-compliance-tests/peer-discovery"; import { prefixLogger } from "@libp2p/logger"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; -import { createFromJSON } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey, peerIdFromString } from "@libp2p/peer-id"; import { PersistentPeerStore } from "@libp2p/peer-store"; import { multiaddr } from "@multiformats/multiaddr"; import { Libp2pComponents } from "@waku/interfaces"; @@ -55,7 +55,7 @@ describe("Local Storage Discovery", function () { components = { peerStore: new PersistentPeerStore({ events: new TypedEventEmitter(), - peerId: await createSecp256k1PeerId(), + peerId: await generateKeyPair("secp256k1").then(peerIdFromPrivateKey), datastore: new MemoryDatastore(), logger: prefixLogger("local_discovery.spec.ts") }), @@ -103,9 +103,7 @@ describe("Local Storage Discovery", function () { it("should update peers in local storage on 'peer:identify' event", async () => { const newPeerIdentifyEvent = { detail: { - peerId: await createFromJSON({ - id: mockPeers[1].id - }), + peerId: peerIdFromString(mockPeers[1].id.toString()), listenAddrs: [multiaddr(mockPeers[1].address)] } } as CustomEvent; diff --git a/packages/enr/src/decoder.ts b/packages/enr/src/decoder.ts index 0fdcca9578..0fc27ddfb8 100644 --- a/packages/enr/src/decoder.ts +++ b/packages/enr/src/decoder.ts @@ -37,7 +37,7 @@ async function fromValues(values: Uint8Array[]): Promise { } const _seq = decodeSeq(seq); - const enr = await ENR.create(obj, _seq, signature); + const enr = ENR.create(obj, _seq, signature); checkSignature(seq, kvs, enr, signature); return enr; } diff --git a/packages/enr/src/enr.spec.ts b/packages/enr/src/enr.spec.ts index 14e5c1f197..65105368ee 100644 --- a/packages/enr/src/enr.spec.ts +++ b/packages/enr/src/enr.spec.ts @@ -1,5 +1,6 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import type { PeerId } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { multiaddr } from "@multiformats/multiaddr"; import * as secp from "@noble/secp256k1"; import type { Waku2 } from "@waku/interfaces"; @@ -16,14 +17,13 @@ import { TransportProtocol, TransportProtocolPerIpVersion } from "./enr.js"; -import { getPrivateKeyFromPeerId } from "./peer_id.js"; describe("ENR", function () { describe("Txt codec", () => { it("should encodeTxt and decodeTxt", async () => { - const peerId = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerId = peerIdFromPrivateKey(privateKey); const enr = await EnrCreator.fromPeerId(peerId); - const privateKey = await getPrivateKeyFromPeerId(peerId); enr.setLocationMultiaddr(multiaddr("/ip4/18.223.219.100/udp/9000")); enr.multiaddrs = [ multiaddr("/dns4/node-01.do-ams3.waku.test.status.im/tcp/443/wss"), @@ -42,7 +42,7 @@ describe("ENR", function () { lightPush: false }; - const txt = await EnrEncoder.toString(enr, privateKey); + const txt = await EnrEncoder.toString(enr, privateKey.raw); const enr2 = await EnrDecoder.fromString(txt); if (!enr.signature) throw "enr.signature is undefined"; @@ -115,13 +115,13 @@ describe("ENR", function () { it("should throw error - no id", async () => { try { - const peerId = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerId = peerIdFromPrivateKey(privateKey); const enr = await EnrCreator.fromPeerId(peerId); - const privateKey = await getPrivateKeyFromPeerId(peerId); enr.setLocationMultiaddr(multiaddr("/ip4/18.223.219.100/udp/9000")); enr.set("id", new Uint8Array([0])); - const txt = await EnrEncoder.toString(enr, privateKey); + const txt = await EnrEncoder.toString(enr, privateKey.raw); await EnrDecoder.fromString(txt); assert.fail("Expect error here"); @@ -147,7 +147,7 @@ describe("ENR", function () { describe("Verify", () => { it("should throw error - no id", async () => { try { - const enr = await ENR.create({}, BigInt(0), new Uint8Array()); + const enr = ENR.create({}, BigInt(0), new Uint8Array()); enr.verify(new Uint8Array(), new Uint8Array()); assert.fail("Expect error here"); } catch (err: unknown) { @@ -158,7 +158,7 @@ describe("ENR", function () { it("should throw error - invalid id", async () => { try { - const enr = await ENR.create( + const enr = ENR.create( { id: utf8ToBytes("v3") }, BigInt(0), new Uint8Array() @@ -173,7 +173,7 @@ describe("ENR", function () { it("should throw error - no public key", async () => { try { - const enr = await ENR.create( + const enr = ENR.create( { id: utf8ToBytes("v4") }, BigInt(0), new Uint8Array() @@ -204,7 +204,7 @@ describe("ENR", function () { privateKey = hexToBytes( "b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291" ); - record = await EnrCreator.fromPublicKey(secp.getPublicKey(privateKey)); + record = EnrCreator.fromPublicKey(secp.getPublicKey(privateKey)); record.setLocationMultiaddr(multiaddr("/ip4/127.0.0.1/udp/30303")); record.seq = seq; await EnrEncoder.toString(record, privateKey); @@ -249,7 +249,7 @@ describe("ENR", function () { privateKey = hexToBytes( "b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291" ); - record = await EnrCreator.fromPublicKey(secp.getPublicKey(privateKey)); + record = EnrCreator.fromPublicKey(secp.getPublicKey(privateKey)); }); it("should get / set UDP multiaddr", () => { @@ -320,7 +320,8 @@ describe("ENR", function () { let enr: ENR; before(async function () { - peerId = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + peerId = peerIdFromPrivateKey(privateKey); enr = await EnrCreator.fromPeerId(peerId); enr.ip = ip4; enr.ip6 = ip6; @@ -422,9 +423,9 @@ describe("ENR", function () { let privateKey: Uint8Array; beforeEach(async function () { - peerId = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + peerId = peerIdFromPrivateKey(privateKey); enr = await EnrCreator.fromPeerId(peerId); - privateKey = await getPrivateKeyFromPeerId(peerId); waku2Protocols = { relay: false, store: false, diff --git a/packages/relay/src/message_validator.spec.ts b/packages/relay/src/message_validator.spec.ts index c5fb36a444..313898708f 100644 --- a/packages/relay/src/message_validator.spec.ts +++ b/packages/relay/src/message_validator.spec.ts @@ -1,6 +1,7 @@ +import { generateKeyPair } from "@libp2p/crypto/keys"; import { TopicValidatorResult } from "@libp2p/interface"; import type { UnsignedMessage } from "@libp2p/interface"; -import { createSecp256k1PeerId } from "@libp2p/peer-id-factory"; +import { peerIdFromPrivateKey } from "@libp2p/peer-id"; import { createEncoder } from "@waku/core"; import { determinePubsubTopic } from "@waku/utils"; import { expect } from "chai"; @@ -15,7 +16,8 @@ describe("Message Validator", () => { it("Accepts a valid Waku Message", async () => { await fc.assert( fc.asyncProperty(fc.uint8Array({ minLength: 1 }), async (payload) => { - const peerId = await createSecp256k1PeerId(); + const privateKey = await generateKeyPair("secp256k1"); + const peerId = peerIdFromPrivateKey(privateKey); const encoder = createEncoder({ contentTopic: TestContentTopic, @@ -39,7 +41,8 @@ describe("Message Validator", () => { it("Rejects garbage", async () => { await fc.assert( fc.asyncProperty(fc.uint8Array(), async (data) => { - const peerId = await createSecp256k1PeerId(); + const peerId = + await generateKeyPair("secp256k1").then(peerIdFromPrivateKey); const message: UnsignedMessage = { type: "unsigned",