From c36f3238d059ef323d967f3a85e58346f04d7e38 Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 3 Apr 2025 23:55:30 +0530 Subject: [PATCH] chore: upgrade to new API --- .../keystore-management/package-lock.json | 56 ++++---- examples/keystore-management/package.json | 2 +- .../src/components/KeystoreManager.tsx | 123 ------------------ .../src/components/Layout.tsx | 6 +- .../components/RLNImplementationToggle.tsx | 2 +- .../src/components/RLNinitButton.tsx | 2 +- .../Tabs/KeystoreTab/KeystoreManagement.tsx | 39 +++++- .../keystore-management/src/contexts/index.ts | 14 +- .../src/contexts/keystore/KeystoreContext.tsx | 15 +-- .../src/contexts/rln/RLNContext.tsx | 35 +++-- .../contexts/rln/implementations/factory.tsx | 30 +---- .../src/contexts/rln/implementations/index.ts | 2 +- .../contexts/rln/implementations/light.tsx | 22 +--- .../contexts/rln/implementations/standard.tsx | 18 +-- .../src/contexts/rln/implementations/types.ts | 12 ++ .../src/contexts/rln/index.ts | 3 +- .../src/contexts/wallet/WalletContext.tsx | 28 +--- .../src/contexts/wallet/types.ts | 29 +++++ .../src/utils/{fileUtils.ts => file.ts} | 0 .../src/{contexts/rln => }/utils/network.ts | 0 20 files changed, 158 insertions(+), 280 deletions(-) delete mode 100644 examples/keystore-management/src/components/KeystoreManager.tsx create mode 100644 examples/keystore-management/src/contexts/rln/implementations/types.ts create mode 100644 examples/keystore-management/src/contexts/wallet/types.ts rename examples/keystore-management/src/utils/{fileUtils.ts => file.ts} (100%) rename examples/keystore-management/src/{contexts/rln => }/utils/network.ts (100%) diff --git a/examples/keystore-management/package-lock.json b/examples/keystore-management/package-lock.json index 8c4f764..08bad08 100644 --- a/examples/keystore-management/package-lock.json +++ b/examples/keystore-management/package-lock.json @@ -8,7 +8,7 @@ "name": "waku-keystore-management", "version": "0.1.0", "dependencies": { - "@waku/rln": "0.1.5-ad0e277.0", + "@waku/rln": "0.1.5-6997987.0", "next": "15.1.7", "react": "^19.0.0", "react-dom": "^19.0.0" @@ -2309,16 +2309,16 @@ } }, "node_modules/@waku/core": { - "version": "0.0.35-ad0e277.0", - "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.35-ad0e277.0.tgz", - "integrity": "sha512-IfgWE/Kc8jpcmO6PGsLzySHAWwoDQtIY9gsxWtoqPnll1cE9ylxfGVh0je4o58E5F0XGw+wm9TdD149hq30cJQ==", + "version": "0.0.35-6997987.0", + "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.35-6997987.0.tgz", + "integrity": "sha512-rdTBFpaoJr9PClZWcnazRu2bydIjj1MnG31espjWNe072vepEAMZln48ZtPqtjIn1pfr5Dn0QOL9blVDdGIAkw==", "license": "MIT OR Apache-2.0", "dependencies": { "@libp2p/ping": "2.0.1", - "@waku/enr": "0.0.29-ad0e277.0", - "@waku/interfaces": "0.0.30-ad0e277.0", - "@waku/proto": "0.0.10-ad0e277.0", - "@waku/utils": "0.0.23-ad0e277.0", + "@waku/enr": "0.0.29-6997987.0", + "@waku/interfaces": "0.0.30-6997987.0", + "@waku/proto": "0.0.10-6997987.0", + "@waku/utils": "0.0.23-6997987.0", "debug": "^4.3.4", "it-all": "^3.0.4", "it-length-prefixed": "^9.0.4", @@ -2356,9 +2356,9 @@ } }, "node_modules/@waku/enr": { - "version": "0.0.29-ad0e277.0", - "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.29-ad0e277.0.tgz", - "integrity": "sha512-3IoFVU3XX7rEge3VFMl5r3wc0XVnZTvheRuFYSm0HgPrMls23PmAd7IdFLOMq5e9CGWAbWx0fdT3StzIdN2PbQ==", + "version": "0.0.29-6997987.0", + "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.29-6997987.0.tgz", + "integrity": "sha512-w3ECNF1LuZ1Jwki3aeu9VJv2oGW0xXsgn8pgszGjFk0ydHPlJY9gbuvTK2xx+o+vedRaiAXWBXwOY5g7GRc9lg==", "license": "MIT OR Apache-2.0", "dependencies": { "@ethersproject/rlp": "^5.7.0", @@ -2366,7 +2366,7 @@ "@libp2p/peer-id": "^5.0.1", "@multiformats/multiaddr": "^12.0.0", "@noble/secp256k1": "^1.7.1", - "@waku/utils": "0.0.23-ad0e277.0", + "@waku/utils": "0.0.23-6997987.0", "debug": "^4.3.4", "js-sha3": "^0.9.2" }, @@ -2383,21 +2383,21 @@ } }, "node_modules/@waku/interfaces": { - "version": "0.0.30-ad0e277.0", - "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.30-ad0e277.0.tgz", - "integrity": "sha512-Xg0vupz9y+PGNKVsJ3AodpcxWLkGafLPser4H/0SYvwiBKR0doEs08wfRdXY83WID1GZPVkA3jcIm0rAnPZWSw==", + "version": "0.0.30-6997987.0", + "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.30-6997987.0.tgz", + "integrity": "sha512-df526iM92hkW2Fj2zrn+iDQp+xfhDx2EqGbUwaK/G52oK5cyh77a/AtaBEFIOE301i1Ur0TAi4KEivryfKYfwg==", "license": "MIT OR Apache-2.0", "dependencies": { - "@waku/proto": "0.0.10-ad0e277.0" + "@waku/proto": "0.0.10-6997987.0" }, "engines": { "node": ">=20" } }, "node_modules/@waku/proto": { - "version": "0.0.10-ad0e277.0", - "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.10-ad0e277.0.tgz", - "integrity": "sha512-F4RKTcdX3v+E3/TxdINPWpsQEjst1VXlslJdNXC1LXPRqd87S7r2e47PXafM7TGBdOitIIPw8Xf4MxbPFGa1Gg==", + "version": "0.0.10-6997987.0", + "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.10-6997987.0.tgz", + "integrity": "sha512-OtM6cCFNlc8fcSj4t7Wcz2HEAcqDHh3cXZI4TLsvXk7Xm0/bJ5AR6KdPvmFdWNUWvMOGLkw6rVkXMsFTsgcN3A==", "license": "MIT OR Apache-2.0", "dependencies": { "protons-runtime": "^5.4.0" @@ -2407,15 +2407,15 @@ } }, "node_modules/@waku/rln": { - "version": "0.1.5-ad0e277.0", - "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.5-ad0e277.0.tgz", - "integrity": "sha512-2QxvEhZoZjsP0J8wg6BAv7GTvDMeOzD7a46WR6M3Gld39TNf+2hQMzED5I91QxjcoAvMMbphD8FiH4X5tqzM5g==", + "version": "0.1.5-6997987.0", + "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.5-6997987.0.tgz", + "integrity": "sha512-lEoVyR2LdNIjo/VFeoBFKgDHspAoBQTdECLTIu9oOZ9iJLvT5VWX/PVGAoQ55yNteTu56Oivl9fkzDmITfIMbg==", "license": "MIT OR Apache-2.0", "dependencies": { "@chainsafe/bls-keystore": "3.0.0", "@noble/hashes": "^1.2.0", - "@waku/core": "0.0.35-ad0e277.0", - "@waku/utils": "0.0.23-ad0e277.0", + "@waku/core": "0.0.35-6997987.0", + "@waku/utils": "0.0.23-6997987.0", "@waku/zerokit-rln-wasm": "^0.0.13", "chai": "^5.1.2", "chai-as-promised": "^8.0.1", @@ -2432,13 +2432,13 @@ } }, "node_modules/@waku/utils": { - "version": "0.0.23-ad0e277.0", - "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.23-ad0e277.0.tgz", - "integrity": "sha512-r3nef/L4fZx2GA7byUAOFLSjhVXuH22FFgmEp7+/jzbAjKAcVIaCfG2M09SnNDbxc5uViKeEE6ODIfw+k+2rZw==", + "version": "0.0.23-6997987.0", + "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.23-6997987.0.tgz", + "integrity": "sha512-ExVLIpaBnjbGNjOl6JLTWMj0rBvqvK0kW/MhqtPue4i6l+iKVytdBAsq7KDT9V/DN1MyXpSVd8kptOPh5+y8iA==", "license": "MIT OR Apache-2.0", "dependencies": { "@noble/hashes": "^1.3.2", - "@waku/interfaces": "0.0.30-ad0e277.0", + "@waku/interfaces": "0.0.30-6997987.0", "chai": "^4.3.10", "debug": "^4.3.4", "uint8arrays": "^5.0.1" diff --git a/examples/keystore-management/package.json b/examples/keystore-management/package.json index 0643827..584a361 100644 --- a/examples/keystore-management/package.json +++ b/examples/keystore-management/package.json @@ -10,7 +10,7 @@ "lint": "next lint" }, "dependencies": { - "@waku/rln": "0.1.5-ad0e277.0", + "@waku/rln": "0.1.5-6997987.0", "next": "15.1.7", "react": "^19.0.0", "react-dom": "^19.0.0" diff --git a/examples/keystore-management/src/components/KeystoreManager.tsx b/examples/keystore-management/src/components/KeystoreManager.tsx deleted file mode 100644 index 2ef1bc8..0000000 --- a/examples/keystore-management/src/components/KeystoreManager.tsx +++ /dev/null @@ -1,123 +0,0 @@ -"use client"; - -import { useState } from 'react'; -import { useKeystore } from '../contexts/KeystoreContext'; -import { saveKeystoreToFile, readKeystoreFromFile } from '../utils/fileUtils'; - -export default function KeystoreManager() { - const { - isInitialized: isKeystoreInitialized, - hasStoredCredentials, - storedCredentialsHashes, - exportKeystore, - importKeystore - } = useKeystore(); - - const [error, setError] = useState(null); - const [successMessage, setSuccessMessage] = useState(null); - - const handleExport = () => { - try { - const keystoreJson = exportKeystore(); - saveKeystoreToFile(keystoreJson); - setSuccessMessage('Keystore exported successfully'); - setTimeout(() => setSuccessMessage(null), 3000); - } catch (err) { - setError(err instanceof Error ? err.message : 'Failed to export keystore'); - setTimeout(() => setError(null), 3000); - } - }; - - const handleImport = async () => { - try { - const keystoreJson = await readKeystoreFromFile(); - const success = importKeystore(keystoreJson); - - if (success) { - setSuccessMessage('Keystore imported successfully'); - } else { - setError('Failed to import keystore'); - } - - setTimeout(() => { - setSuccessMessage(null); - setError(null); - }, 3000); - } catch (err) { - setError(err instanceof Error ? err.message : 'Failed to import keystore'); - setTimeout(() => setError(null), 3000); - } - }; - - if (!isKeystoreInitialized) { - return ( -
-

Initializing keystore...

-
- ); - } - - return ( -
-

Keystore Management

- - {/* Status */} -
-

- Status: {hasStoredCredentials ? 'Credentials found' : 'No credentials stored'} -

- {hasStoredCredentials && ( -

- Stored credentials: {storedCredentialsHashes.length} -

- )} -
- - {/* Notifications */} - {error && ( -
-

{error}

-
- )} - - {successMessage && ( -
-

{successMessage}

-
- )} - - {/* Import/Export Buttons */} -
- {/* Export Keystore */} -
- - {!hasStoredCredentials && ( -

- No credentials to export -

- )} -
- - {/* Import Keystore */} -
- -
-
-
- ); -} \ No newline at end of file diff --git a/examples/keystore-management/src/components/Layout.tsx b/examples/keystore-management/src/components/Layout.tsx index 78b6fb0..7fbdec3 100644 --- a/examples/keystore-management/src/components/Layout.tsx +++ b/examples/keystore-management/src/components/Layout.tsx @@ -1,10 +1,10 @@ "use client"; import React, { Children, isValidElement } from 'react'; -import { TabNavigation, TabItem } from './Tabs/TabNavigation'; -import { useAppState } from '../contexts/AppStateContext'; +import { TabItem, TabNavigation } from './Tabs/TabNavigation'; +import { useAppState } from '@/contexts/AppStateContext'; -const tabs: TabItem[] = [ +const tabs: TabItem [] = [ { id: 'membership', label: 'Membership Registration', diff --git a/examples/keystore-management/src/components/RLNImplementationToggle.tsx b/examples/keystore-management/src/components/RLNImplementationToggle.tsx index 3552397..f29afd8 100644 --- a/examples/keystore-management/src/components/RLNImplementationToggle.tsx +++ b/examples/keystore-management/src/components/RLNImplementationToggle.tsx @@ -1,7 +1,7 @@ "use client"; +import { useRLNImplementation } from '@/contexts'; import React from 'react'; -import { useRLNImplementation } from '../contexts/rln'; export function RLNImplementationToggle() { const { implementation, setImplementation } = useRLNImplementation(); diff --git a/examples/keystore-management/src/components/RLNinitButton.tsx b/examples/keystore-management/src/components/RLNinitButton.tsx index c918a05..5964c00 100644 --- a/examples/keystore-management/src/components/RLNinitButton.tsx +++ b/examples/keystore-management/src/components/RLNinitButton.tsx @@ -1,7 +1,7 @@ "use client"; +import { useRLN } from '@/contexts'; import React from 'react'; -import { useRLN } from '../contexts/rln'; export function RLNInitButton() { const { initializeRLN, isInitialized, isStarted, error, isLoading } = useRLN(); diff --git a/examples/keystore-management/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx b/examples/keystore-management/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx index 00f3b6f..cd34212 100644 --- a/examples/keystore-management/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx +++ b/examples/keystore-management/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx @@ -3,8 +3,8 @@ import React, { useState } from 'react'; import { useKeystore } from '@/contexts/keystore'; import { useRLN } from '@/contexts/rln'; -import { saveKeystoreToFile, readKeystoreFromFile } from '../../../utils/fileUtils'; -import { KeystoreEntity } from '@waku/rln'; +import { saveKeystoreToFile, readKeystoreFromFile } from '../../../utils/file'; +import { DecryptedCredentials } from '@waku/rln'; import { useAppState } from '@/contexts/AppStateContext'; export function KeystoreManagement() { @@ -23,7 +23,7 @@ export function KeystoreManagement() { const [selectedCredential, setSelectedCredential] = useState(null); const [viewPassword, setViewPassword] = useState(''); const [viewingCredential, setViewingCredential] = useState(null); - const [decryptedInfo, setDecryptedInfo] = useState(null); + const [decryptedInfo, setDecryptedInfo] = useState(null); const [isDecrypting, setIsDecrypting] = useState(false); React.useEffect(() => { @@ -206,7 +206,38 @@ export function KeystoreManagement() {
-                                  {JSON.stringify(decryptedInfo, null, 2)}
+                                  
+
+ ID Commitment: + {decryptedInfo.identity.IDCommitment} +
+
+ ID Nullifier: + {decryptedInfo.identity.IDNullifier} +
+
+ ID Secret Hash: + {decryptedInfo.identity.IDSecretHash} +
+
+ Membership Address: + {decryptedInfo.membership.address} +
+
+ Chain ID: + {decryptedInfo.membership.chainId} +
+
+ Tree Index: + {decryptedInfo.membership.treeIndex} +
+
+ Rate Limit: + {decryptedInfo.membership.rateLimit} +
+
+ + {/* {JSON.stringify(decryptedInfo, null, 2)} */}