diff --git a/.env.example b/.env.example index 3bf7d8ceab..3d1ee41519 100644 --- a/.env.example +++ b/.env.example @@ -4,3 +4,5 @@ VITE_DISABLE_TYPESCRIPT_CHECK=false VITE_DISABLE_ESLINT_CHECK=false # if you want to see the errors in the browser VITE_ENABLE_CHECKS_OVERLAY=false + +LOCAL_STORAGE_PASSWORD="umami-password-example" diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 0b2f09a48e..6e4dcb8b02 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@umami/desktop", "productName": "umami", - "version": "2.3.4", + "version": "2.3.5", "author": "Trilitech ", "description": "Tezos Desktop Wallet", "homepage": "https://umamiwallet.com", @@ -37,7 +37,7 @@ "theme": "chakra-cli tokens src/style/theme.ts" }, "devDependencies": { - "@airgap/beacon-wallet": "^4.3.0", + "@airgap/beacon-wallet": "^4.3.1", "@babel/core": "^7.26.0", "@babel/preset-env": "^7.26.0", "@babel/preset-react": "^7.25.9", diff --git a/packages/crypto/src/AES.ts b/packages/crypto/src/AES.ts index 20eedcce98..aebcbcbbf4 100644 --- a/packages/crypto/src/AES.ts +++ b/packages/crypto/src/AES.ts @@ -32,6 +32,7 @@ export const encrypt = async (data: string, password: string): Promise diff --git a/packages/state/src/beacon/storage.ts b/packages/state/src/beacon/storage.ts new file mode 100644 index 0000000000..231cf6b2ac --- /dev/null +++ b/packages/state/src/beacon/storage.ts @@ -0,0 +1,68 @@ +// extend storage from beacon-types such that we encrypt the data we store and decrypt it when we retrieve it +// we can use the same encryption key for all data + +import { Storage, type StorageKey, type StorageKeyReturnType } from "@airgap/beacon-sdk"; +import { decrypt, encrypt, type EncryptedData } from "@umami/crypto"; + +// get a static password from enviornment variables + +const local_storage_password: string = "umami-test-password-123"; + +export class EncryptedBeaconStorage extends Storage { + static async isSupported(): Promise { + return typeof localStorage !== "undefined"; + } + + async get(key: K): Promise { + const decryptData= localStorage.getItem(this.getPrefixedKey(key))?.split(","); + if (decryptData === undefined || local_storage_password === undefined) { + return undefined as StorageKeyReturnType[K]; + } + const encryptedValue :EncryptedData= { + iv: decryptData[0], + salt: decryptData[1], + data: decryptData[2], + }; + const decryptedValue = decrypt(encryptedValue, local_storage_password); + let result = JSON.parse(await decryptedValue) as StorageKeyReturnType[K]; + console.log("Beacon encryption get:", key, result); + return result; + + } + + async set(key: K, value: StorageKeyReturnType[K]): Promise { + console.log("Beacon encryption set:", key, value ); + if (local_storage_password === undefined) { + return; + } + const stringValue = JSON.stringify(value); + const encryptedValue = await encrypt(stringValue, local_storage_password); + localStorage.setItem(this.getPrefixedKey(key),[encryptedValue.iv, encryptedValue.salt, encryptedValue.data].join(",")); + } + + async delete(key: K): Promise { + localStorage.removeItem(this.getPrefixedKey(key)); + } + + async subscribeToStorageChanged(callback: (arg: { + eventType: "storageCleared" | "entryModified"; + key: string | null; + oldValue: string | null; + newValue: string | null; + }) => {}): Promise { + window.addEventListener("storage", (event) => { + if (event.storageArea === localStorage) { + callback({ + eventType: event.key ? "entryModified" : "storageCleared", + key: event.key, + oldValue: event.oldValue, + newValue: event.newValue, + }); + } + }); + } + + getPrefixedKey(key: K): string { + return `beacon:${key}`; + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6c3a21c62..830c64d2a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1734,9 +1734,9 @@ importers: packages/state: dependencies: - '@airgap/beacon-wallet': - specifier: ^4.3.0 - version: 4.3.0 + '@airgap/beacon-sdk': + specifier: ^4.3.1 + version: 4.3.1(encoding@0.1.13) '@chakra-ui/react': specifier: ^2.8.2 version: 2.8.2(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.5(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(framer-motion@11.11.17(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -2112,30 +2112,54 @@ packages: '@adobe/css-tools@4.4.0': resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} + '@airgap/beacon-blockchain-substrate@4.3.1': + resolution: {integrity: sha512-kUnIo4qlGJDvheupN5S4ax1MrjsT6Idw4L/6KhpRTLIHd9yXz6JEJRLgrxIp4pFtmGsxIxol8kPnNTSMu15DhA==} + + '@airgap/beacon-blockchain-tezos@4.3.1': + resolution: {integrity: sha512-aLTtwQeC0OQ64uCx66PF04oYKMeqXFh1EXD3KIk7Mv7fKlizDg7+MObcxdixAg1vObA2JDreurJTU9Uui7XVCw==} + '@airgap/beacon-core@4.2.2': resolution: {integrity: sha512-pvp6T57fL734Yi81ZOvAo6oQmw7PPsj5BLC/brg17ic2uGCF0aFgYrExTDxVz5SoM93v5NJCPvg1TRkitTcvtA==} '@airgap/beacon-core@4.3.0': resolution: {integrity: sha512-O9b4Nn1xLu/6KjugT7cPy3g/yI7qJwnXbjNNJ80VSWNAMSCzKrC/FZ7SulZDM2POq0CixP7jcPNblspemRRxRg==} + '@airgap/beacon-core@4.3.1': + resolution: {integrity: sha512-Zo4dG6R7ZBapGTvuBSBM9jPIJYW3DJjEcbshJLnLBgCU3zjcitnW6auKaqpWjWIXqwP2ThzYwpjftWKpavCf9g==} + '@airgap/beacon-dapp@4.2.2': resolution: {integrity: sha512-kXH9gwjkbZKlt1irg/QGOWJeUwvR+ffa/3m39F8Mv5uIdS/PnOU4QMso6F4VVbtk6RmAGFr1gG/Q6pIkkWPFxg==} + '@airgap/beacon-dapp@4.3.1': + resolution: {integrity: sha512-WTQB7ULv9ergD+6OSv9RDbZyWjSCForWUEhKNMbAYd1RZSz4bcoMaqw8/0v97b+bjLayZmqNqhrUEo0Y7z/jXw==} + + '@airgap/beacon-sdk@4.3.1': + resolution: {integrity: sha512-zk6HkieYGHY+LrA+VPpoQhbTjAQuDzGU81L3mzyECFg0/HWamiY3Tr9BpwwGKIJo1IW8WV1HLfzhE9SckzA0aA==} + '@airgap/beacon-transport-matrix@4.2.2': resolution: {integrity: sha512-lCwFo6laGQbowvQoGU5tlkgrdBx9S9Nyk/OjJUE5Db9DgvQZhRR77zA0jl7lPdYDYcKeklHahBz6vwkiN/ferA==} '@airgap/beacon-transport-matrix@4.3.0': resolution: {integrity: sha512-Md3crBPgj6RTkBlR5UegHLuwqLt/EkksWnMAlVpMRN17gKdhEsvrU7FRIIUHgS9oljzc82ir7QHKuGA2hID8LQ==} + '@airgap/beacon-transport-matrix@4.3.1': + resolution: {integrity: sha512-Kmm2056712xSbGkIFWM2IEeifw++owHubOg163bCcvSPc6dwNgTodZdbeXmkpHcTg8ZisRhe0j46IRwvMcw4gg==} + '@airgap/beacon-transport-postmessage@4.2.2': resolution: {integrity: sha512-xLFeTEw6Yydq+4cr8IISxFprEQm3Us1QKNI/zNTAy1ssTxML1MZGAoLXWm/3adXKc8kzeR7dZH9blNEKhZWGcQ==} '@airgap/beacon-transport-postmessage@4.3.0': resolution: {integrity: sha512-l/mx2hXFuxnJ7cuoVnvU2F67RQhhzsv/stOEqEa8JIK9izufsKC09Jl2866IWEz1yqCZ/FQ6GI64M/Dq30mEmg==} + '@airgap/beacon-transport-postmessage@4.3.1': + resolution: {integrity: sha512-Dy3LsIhNkqR7s85iOnt0iAqoB3k9NPyP4x4uHEhhyV8jEn0Z03N+Ra09Zk3RvysqS5oIoFWPjuaG8HvRjuXihg==} + '@airgap/beacon-transport-walletconnect@4.2.2': resolution: {integrity: sha512-ftwUDhQdjLPtyX1ESUp9VkFS5vyEvp377eL4lVFaEdqf4mCpxg/XxHffO/o7OeRD1NI0nZfCxsKOWU2plg+ghg==} + '@airgap/beacon-transport-walletconnect@4.3.1': + resolution: {integrity: sha512-UACRVnM6O6qVDua5nBBcY94FfiLxU56cArHVeNVTA2cp9jOyeE2JPUJ4jcaPs4yslikFbsT21Vn3d5FJl5Y1YQ==} + '@airgap/beacon-types@4.2.2': resolution: {integrity: sha512-4sX5QEZTanQ5E6FiY7lp6ilv6rlzu5eNrWa3KdygpHm0NFfkJCY7YRPWo4V5LkCCkILa9QF5TS9tVKMORNcocQ==} @@ -2148,15 +2172,24 @@ packages: '@airgap/beacon-ui@4.2.2': resolution: {integrity: sha512-iuVH8ZgyejRo61vwZP4gTju+FfRxtEvA+Y9CanizlkJY3UcPa2ATx9Bmz8fGOeo5bkohxS1Ny36WEQ81z5cpIw==} + '@airgap/beacon-ui@4.3.1': + resolution: {integrity: sha512-OJYrQlQxU98ZckW4xhyX1+hEMLOEd80N302sauKGzpUv7P0oxBfMLHaTVhQlZ7A+cAJkwMSqBa+Ek19QRPvoiQ==} + '@airgap/beacon-utils@4.2.2': resolution: {integrity: sha512-TwDJ8O8/Lky6qdpczVJKWACu3BWEE49hMyCylXYJPnLlCZtpaqByD6awc+BEooJkC2c8Bj4V3JfcwBJGNzMs6w==} '@airgap/beacon-utils@4.3.0': resolution: {integrity: sha512-5g2tfJi30/x26sLmFv24iGY5aVlo78hZ561GB0BQlthJrROoCkFNZu7/uz/fXU/2+4dBFhJ9j/Ily5ELeq5JkQ==} + '@airgap/beacon-utils@4.3.1': + resolution: {integrity: sha512-6mghsASMxObCLcypsnTC38S+BkW8oZNxeuiSjPQSNE5c5LtNmDWS0Lm+UF69FjaskcbiUOxJWhOnmZZM3A9hcg==} + '@airgap/beacon-wallet@4.3.0': resolution: {integrity: sha512-kODhz8zjRqffeNNGKUeYckm7rOyW9N87eFWSSGML1Y+/QOpe7CdclxaYqqjcPg6MzQM3SmKl6qre821SEJONSQ==} + '@airgap/beacon-wallet@4.3.1': + resolution: {integrity: sha512-xsZdZLAsT4yKj2wz7lhMXhLChFhk1GglHi0bLaiJIi0ZycAbB76gOIwSAat7otMBLaswJj0b08JRinOCN4bf6Q==} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -6322,6 +6355,9 @@ packages: '@walletconnect/core@2.11.2': resolution: {integrity: sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g==} + '@walletconnect/core@2.14.0': + resolution: {integrity: sha512-E/dgBM9q3judXnTfZQ5ILvDpeSdDpabBLsXtYXa3Nyc26cfNplfLJ2nXm9FgtTdhM1nZ7yx4+zDPiXawBRZl2g==} + '@walletconnect/environment@1.0.1': resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} @@ -6331,9 +6367,15 @@ packages: '@walletconnect/heartbeat@1.2.1': resolution: {integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==} + '@walletconnect/heartbeat@1.2.2': + resolution: {integrity: sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==} + '@walletconnect/jsonrpc-provider@1.0.13': resolution: {integrity: sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==} + '@walletconnect/jsonrpc-provider@1.0.14': + resolution: {integrity: sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==} + '@walletconnect/jsonrpc-types@1.0.3': resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==} @@ -6369,15 +6411,24 @@ packages: '@walletconnect/sign-client@2.11.2': resolution: {integrity: sha512-MfBcuSz2GmMH+P7MrCP46mVE5qhP0ZyWA0FyIH6/WuxQ6G+MgKsGfaITqakpRPsykWOJq8tXMs3XvUPDU413OQ==} + '@walletconnect/sign-client@2.14.0': + resolution: {integrity: sha512-UrB3S3eLjPYfBLCN3WJ5u7+WcZ8kFMe/QIDqLf76Jk6TaLwkSUy563LvnSw4KW/kA+/cY1KBSdUDfX1tzYJJXg==} + '@walletconnect/time@1.0.2': resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} '@walletconnect/types@2.11.2': resolution: {integrity: sha512-p632MFB+lJbip2cvtXPBQslpUdiw1sDtQ5y855bOlAGquay+6fZ4h1DcDePeKQDQM3P77ax2a9aNPZxV6y/h1Q==} + '@walletconnect/types@2.14.0': + resolution: {integrity: sha512-vevMi4jZLJ55vLuFOicQFmBBbLyb+S0sZS4IsaBdZkQflfGIq34HkN13c/KPl4Ye0aoR4/cUcUSitmGIzEQM5g==} + '@walletconnect/utils@2.11.2': resolution: {integrity: sha512-LyfdmrnZY6dWqlF4eDrx5jpUwsB2bEPjoqR5Z6rXPiHJKUOdJt7az+mNOn5KTSOlRpd1DmozrBrWr+G9fFLYVw==} + '@walletconnect/utils@2.14.0': + resolution: {integrity: sha512-vRVomYQEtEAyCK2c5bzzEvtgxaGGITF8mWuIL+WYSAMyEJLY97mirP2urDucNwcUczwxUgI+no9RiNFbUHreQQ==} + '@walletconnect/window-getters@1.0.1': resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} @@ -11964,6 +12015,9 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + uint8arrays@3.1.0: + resolution: {integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==} + uint8arrays@3.1.1: resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} @@ -12563,6 +12617,46 @@ snapshots: '@adobe/css-tools@4.4.0': {} + '@airgap/beacon-blockchain-substrate@4.3.1': + dependencies: + '@airgap/beacon-types': 4.3.1 + '@airgap/beacon-ui': 4.3.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + - uWebSockets.js + + '@airgap/beacon-blockchain-tezos@4.3.1': + dependencies: + '@airgap/beacon-types': 4.3.1 + '@airgap/beacon-ui': 4.3.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + - uWebSockets.js + '@airgap/beacon-core@4.2.2': dependencies: '@airgap/beacon-types': 4.2.2 @@ -12584,6 +12678,17 @@ snapshots: broadcast-channel: 7.0.0 bs58check: 2.1.2 + '@airgap/beacon-core@4.3.1': + dependencies: + '@airgap/beacon-types': 4.3.1 + '@airgap/beacon-utils': 4.3.1 + '@stablelib/ed25519': 1.0.3 + '@stablelib/nacl': 1.0.4 + '@stablelib/utf8': 1.0.2 + '@stablelib/x25519-session': 1.0.4 + broadcast-channel: 7.0.0 + bs58check: 2.1.2 + '@airgap/beacon-dapp@4.2.2(encoding@0.1.13)': dependencies: '@airgap/beacon-core': 4.2.2 @@ -12611,6 +12716,66 @@ snapshots: - uWebSockets.js - utf-8-validate + '@airgap/beacon-dapp@4.3.1(encoding@0.1.13)': + dependencies: + '@airgap/beacon-core': 4.3.1 + '@airgap/beacon-transport-matrix': 4.3.1 + '@airgap/beacon-transport-postmessage': 4.3.1 + '@airgap/beacon-transport-walletconnect': 4.3.1(encoding@0.1.13) + '@airgap/beacon-ui': 4.3.1 + broadcast-channel: 7.0.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - debug + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + + '@airgap/beacon-sdk@4.3.1(encoding@0.1.13)': + dependencies: + '@airgap/beacon-blockchain-substrate': 4.3.1 + '@airgap/beacon-blockchain-tezos': 4.3.1 + '@airgap/beacon-core': 4.3.1 + '@airgap/beacon-dapp': 4.3.1(encoding@0.1.13) + '@airgap/beacon-transport-matrix': 4.3.1 + '@airgap/beacon-transport-postmessage': 4.3.1 + '@airgap/beacon-types': 4.3.1 + '@airgap/beacon-ui': 4.3.1 + '@airgap/beacon-utils': 4.3.1 + '@airgap/beacon-wallet': 4.3.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - debug + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + '@airgap/beacon-transport-matrix@4.2.2': dependencies: '@airgap/beacon-core': 4.2.2 @@ -12627,6 +12792,14 @@ snapshots: transitivePeerDependencies: - debug + '@airgap/beacon-transport-matrix@4.3.1': + dependencies: + '@airgap/beacon-core': 4.3.1 + '@airgap/beacon-utils': 4.3.1 + axios: 1.7.7(debug@4.3.7) + transitivePeerDependencies: + - debug + '@airgap/beacon-transport-postmessage@4.2.2': dependencies: '@airgap/beacon-core': 4.2.2 @@ -12639,6 +12812,12 @@ snapshots: '@airgap/beacon-types': 4.3.0 '@airgap/beacon-utils': 4.3.0 + '@airgap/beacon-transport-postmessage@4.3.1': + dependencies: + '@airgap/beacon-core': 4.3.1 + '@airgap/beacon-types': 4.3.1 + '@airgap/beacon-utils': 4.3.1 + '@airgap/beacon-transport-walletconnect@4.2.2(encoding@0.1.13)': dependencies: '@airgap/beacon-core': 4.2.2 @@ -12664,6 +12843,31 @@ snapshots: - uWebSockets.js - utf-8-validate + '@airgap/beacon-transport-walletconnect@4.3.1(encoding@0.1.13)': + dependencies: + '@airgap/beacon-core': 4.3.1 + '@airgap/beacon-types': 4.3.1 + '@airgap/beacon-utils': 4.3.1 + '@walletconnect/sign-client': 2.14.0(encoding@0.1.13) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + '@airgap/beacon-types@4.2.2': dependencies: '@types/chrome': 0.0.246 @@ -12701,6 +12905,31 @@ snapshots: - ioredis - uWebSockets.js + '@airgap/beacon-ui@4.3.1': + dependencies: + '@airgap/beacon-core': 4.3.1 + '@airgap/beacon-transport-postmessage': 4.3.1 + '@airgap/beacon-types': 4.3.1 + '@airgap/beacon-utils': 4.3.1 + '@walletconnect/utils': 2.14.0 + qrcode-svg: 1.1.0 + solid-js: 1.8.19 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + - uWebSockets.js + '@airgap/beacon-utils@4.2.2': dependencies: '@stablelib/ed25519': 1.0.3 @@ -12717,6 +12946,14 @@ snapshots: '@stablelib/utf8': 1.0.2 bs58check: 2.1.2 + '@airgap/beacon-utils@4.3.1': + dependencies: + '@stablelib/ed25519': 1.0.3 + '@stablelib/nacl': 1.0.4 + '@stablelib/random': 1.0.2 + '@stablelib/utf8': 1.0.2 + bs58check: 2.1.2 + '@airgap/beacon-wallet@4.3.0': dependencies: '@airgap/beacon-core': 4.3.0 @@ -12725,6 +12962,14 @@ snapshots: transitivePeerDependencies: - debug + '@airgap/beacon-wallet@4.3.1': + dependencies: + '@airgap/beacon-core': 4.3.1 + '@airgap/beacon-transport-matrix': 4.3.1 + '@airgap/beacon-transport-postmessage': 4.3.1 + transitivePeerDependencies: + - debug + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -18647,6 +18892,44 @@ snapshots: - uWebSockets.js - utf-8-validate + '@walletconnect/core@2.14.0(encoding@0.1.13)': + dependencies: + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-provider': 1.0.14 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.14 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + '@walletconnect/relay-api': 1.0.10 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.14.0 + '@walletconnect/utils': 2.14.0 + events: 3.3.0 + isomorphic-unfetch: 3.1.0(encoding@0.1.13) + lodash.isequal: 4.5.0 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + '@walletconnect/environment@1.0.1': dependencies: tslib: 1.14.1 @@ -18662,12 +18945,24 @@ snapshots: '@walletconnect/time': 1.0.2 tslib: 1.14.1 + '@walletconnect/heartbeat@1.2.2': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/time': 1.0.2 + events: 3.3.0 + '@walletconnect/jsonrpc-provider@1.0.13': dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 tslib: 1.14.1 + '@walletconnect/jsonrpc-provider@1.0.14': + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + '@walletconnect/jsonrpc-types@1.0.3': dependencies: keyvaluestorage-interface: 1.0.0 @@ -18766,6 +19061,36 @@ snapshots: - uWebSockets.js - utf-8-validate + '@walletconnect/sign-client@2.14.0(encoding@0.1.13)': + dependencies: + '@walletconnect/core': 2.14.0(encoding@0.1.13) + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.1.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.14.0 + '@walletconnect/utils': 2.14.0 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - bufferutil + - encoding + - ioredis + - uWebSockets.js + - utf-8-validate + '@walletconnect/time@1.0.2': dependencies: tslib: 1.14.1 @@ -18794,6 +19119,30 @@ snapshots: - ioredis - uWebSockets.js + '@walletconnect/types@2.14.0': + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.2 + '@walletconnect/jsonrpc-types': 1.0.4 + '@walletconnect/keyvaluestorage': 1.1.1 + '@walletconnect/logger': 2.1.2 + events: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + - uWebSockets.js + '@walletconnect/utils@2.11.2': dependencies: '@stablelib/chacha20poly1305': 1.0.1 @@ -18826,6 +19175,38 @@ snapshots: - ioredis - uWebSockets.js + '@walletconnect/utils@2.14.0': + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/relay-api': 1.0.10 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.14.0 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@upstash/redis' + - '@vercel/kv' + - ioredis + - uWebSockets.js + '@walletconnect/window-getters@1.0.1': dependencies: tslib: 1.14.1 @@ -21162,7 +21543,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.5 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -25599,6 +25980,10 @@ snapshots: ufo@1.5.4: {} + uint8arrays@3.1.0: + dependencies: + multiformats: 9.9.0 + uint8arrays@3.1.1: dependencies: multiformats: 9.9.0