diff --git a/package-lock.json b/package-lock.json
index 4bd9f4732ca..1569082b7e6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -28,6 +28,7 @@
"@solana/kit": "^6.0.1",
"@velora-dex/sdk": "^9.3.3",
"alchemy-sdk": "^3.6.5",
+ "barcode-detector": "^3.1.1",
"bech32": "^1.1.4",
"bitcoinjs-lib": "^6.1.7",
"browser-image-compression": "^2.0.2",
@@ -9101,6 +9102,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/emscripten": {
+ "version": "1.41.5",
+ "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.41.5.tgz",
+ "integrity": "sha512-cMQm7pxu6BxtHyqJ7mQZ2kXWV5SLmugybFdHCBbJ5eHzOo6VhBckEgAT3//rP5FwPHNPeEiq4SmQ5ucBwsOo4Q==",
+ "license": "MIT"
+ },
"node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
@@ -10537,6 +10544,15 @@
"license": "MIT",
"peer": true
},
+ "node_modules/barcode-detector": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/barcode-detector/-/barcode-detector-3.1.1.tgz",
+ "integrity": "sha512-ghWlEAV93ZCUniO7Co3ih/01XPm+U30CV+NoPbO6Chj5lZzHydDAqKlrBEd+37TkoR+QTH3tnnwd8k8epGTfIg==",
+ "license": "MIT",
+ "dependencies": {
+ "zxing-wasm": "3.0.1"
+ }
+ },
"node_modules/base-x": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz",
@@ -16698,6 +16714,18 @@
"url": "https://opencollective.com/synckit"
}
},
+ "node_modules/tagged-tag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz",
+ "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/tailwindcss": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.0.tgz",
@@ -16975,6 +17003,21 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/type-fest": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz",
+ "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==",
+ "license": "(MIT OR CC0-1.0)",
+ "dependencies": {
+ "tagged-tag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/typed-array-buffer": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
@@ -18000,6 +18043,19 @@
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
+ },
+ "node_modules/zxing-wasm": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/zxing-wasm/-/zxing-wasm-3.0.1.tgz",
+ "integrity": "sha512-3CLj6iaGkpqPWXAB4pIWkFOR63MwqGekpMzaROFKto4dFowiPmLlC56KoMoOSXzqOCOpI5DAvMdB8ku2va6fUg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/emscripten": "^1.41.5",
+ "type-fest": "^5.4.4"
+ },
+ "peerDependencies": {
+ "@types/emscripten": ">=1.39.6"
+ }
}
}
}
diff --git a/package.json b/package.json
index a3b591240ca..4626cc13e0e 100644
--- a/package.json
+++ b/package.json
@@ -89,6 +89,7 @@
"@solana/kit": "^6.0.1",
"@velora-dex/sdk": "^9.3.3",
"alchemy-sdk": "^3.6.5",
+ "barcode-detector": "^3.1.1",
"bech32": "^1.1.4",
"bitcoinjs-lib": "^6.1.7",
"browser-image-compression": "^2.0.2",
diff --git a/src/frontend/src/lib/components/qr/QrCodeScanner.svelte b/src/frontend/src/lib/components/qr/QrCodeScanner.svelte
index b2f01d905e1..c12b676f23f 100644
--- a/src/frontend/src/lib/components/qr/QrCodeScanner.svelte
+++ b/src/frontend/src/lib/components/qr/QrCodeScanner.svelte
@@ -1,6 +1,6 @@
+
+
+
+
+
+
+
+
diff --git a/src/frontend/src/lib/components/wallet-connect/WalletConnectForm.svelte b/src/frontend/src/lib/components/wallet-connect/WalletConnectForm.svelte
index 620e5d5f606..888544e40b7 100644
--- a/src/frontend/src/lib/components/wallet-connect/WalletConnectForm.svelte
+++ b/src/frontend/src/lib/components/wallet-connect/WalletConnectForm.svelte
@@ -1,9 +1,9 @@