From c3a9b045f3c8897fa73222405a7979074d15cb51 Mon Sep 17 00:00:00 2001 From: Mati OS Date: Thu, 8 Jan 2026 17:25:41 -0300 Subject: [PATCH 01/13] ci: publish on merge to main --- .github/workflows/ci.yml | 2 +- .github/workflows/npm-publish.yml | 21 +++++++++++++++++++++ packages/plugin/.prettierignore | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/npm-publish.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df66f60..f17f406 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [22, 24] + node-version: [24] steps: - uses: actions/checkout@v5 - name: Install pnpm diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000..89fdb23 --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,21 @@ +on: + push: + branches: main + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write # required to use OIDC + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-node@v5 + with: + node-version: "24" + registry-url: 'https://registry.npmjs.org' + - run: npm ci + - run: npm run build + - uses: JS-DevTools/npm-publish@v4 + with: + registry: "https://registry.npmjs.org/" diff --git a/packages/plugin/.prettierignore b/packages/plugin/.prettierignore index f6ebd3c..2fbbc0a 100644 --- a/packages/plugin/.prettierignore +++ b/packages/plugin/.prettierignore @@ -4,3 +4,4 @@ CHANGELOG.md /test/fixture-projects/**/artifacts /test/fixture-projects/**/cache +/src/explorer \ No newline at end of file From e7f67cea69fd5e36254426e8340630535df57d45 Mon Sep 17 00:00:00 2001 From: Mati OS Date: Thu, 8 Jan 2026 17:27:42 -0300 Subject: [PATCH 02/13] v1.0.0 --- packages/plugin/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 54a860d..8e2fd6a 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@openscan/hardhat-plugin", - "version": "0.0.7", + "version": "1.0.0", "description": "Hardhat 3 plugin to use openscan explorer", "license": "MIT", "type": "module", From 0f49d4aee72e762f9cfe963ebe1ed1a2242b8fbc Mon Sep 17 00:00:00 2001 From: Mati OS Date: Thu, 22 Jan 2026 12:11:25 -0300 Subject: [PATCH 03/13] fix: rename to @openscan/hardhat-plugin --- packages/example-project/hardhat.config.ts | 2 +- packages/example-project/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/example-project/hardhat.config.ts b/packages/example-project/hardhat.config.ts index 9e0bac1..18a2d6f 100644 --- a/packages/example-project/hardhat.config.ts +++ b/packages/example-project/hardhat.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from "hardhat/config"; -import openScanPlugin from "openscan-hardhat-links"; +import openScanPlugin from "@openscan/hardhat-plugin"; export default defineConfig({ plugins: [openScanPlugin], diff --git a/packages/example-project/package.json b/packages/example-project/package.json index f65de12..358e2f9 100644 --- a/packages/example-project/package.json +++ b/packages/example-project/package.json @@ -13,7 +13,7 @@ "@tsconfig/node22": "^22.0.2", "@types/node": "^22.11.0", "hardhat": "^3.0.11", - "openscan-hardhat-links": "workspace:*", + "@openscan/hardhat-plugin": "workspace:*", "typescript": "~5.8.0", "forge-std": "github:foundry-rs/forge-std#v1.9.4" } From 5d1d5c681364f8024d6f1c9e80c00fab8bbd39e2 Mon Sep 17 00:00:00 2001 From: Mati OS Date: Thu, 22 Jan 2026 12:27:26 -0300 Subject: [PATCH 04/13] feat: use @openscan/explorer webapp --- packages/plugin/package.json | 5 ++-- .../plugin/src/explorer/dist/1029.bundle.js | 1 - .../plugin/src/explorer/dist/1035.bundle.js | 1 - .../plugin/src/explorer/dist/1061.bundle.js | 1 - .../plugin/src/explorer/dist/1078.bundle.js | 1 - .../plugin/src/explorer/dist/1158.bundle.js | 1 - .../plugin/src/explorer/dist/1165.bundle.js | 1 - .../plugin/src/explorer/dist/1195.bundle.js | 1 - .../plugin/src/explorer/dist/1224.bundle.js | 1 - .../plugin/src/explorer/dist/1247.bundle.js | 1 - .../plugin/src/explorer/dist/1302.bundle.js | 1 - .../plugin/src/explorer/dist/1319.bundle.js | 1 - .../plugin/src/explorer/dist/1408.bundle.js | 1 - .../plugin/src/explorer/dist/1453.bundle.js | 1 - .../plugin/src/explorer/dist/1473.bundle.js | 1 - .../plugin/src/explorer/dist/1476.bundle.js | 1 - .../plugin/src/explorer/dist/1496.bundle.js | 1 - .../plugin/src/explorer/dist/1538.bundle.js | 1 - .../plugin/src/explorer/dist/1611.bundle.js | 1 - .../plugin/src/explorer/dist/1672.bundle.js | 1 - .../plugin/src/explorer/dist/1709.bundle.js | 1 - .../plugin/src/explorer/dist/1824.bundle.js | 1 - .../plugin/src/explorer/dist/1837.bundle.js | 1 - .../plugin/src/explorer/dist/1889.bundle.js | 1 - .../plugin/src/explorer/dist/1975.bundle.js | 1 - .../plugin/src/explorer/dist/1978.bundle.js | 1 - .../plugin/src/explorer/dist/1979.bundle.js | 1 - .../plugin/src/explorer/dist/2011.bundle.js | 1 - .../plugin/src/explorer/dist/2016.bundle.js | 1 - .../plugin/src/explorer/dist/2026.bundle.js | 1 - .../plugin/src/explorer/dist/2062.bundle.js | 1 - .../plugin/src/explorer/dist/2108.bundle.js | 1 - .../plugin/src/explorer/dist/2149.bundle.js | 1 - .../plugin/src/explorer/dist/2161.bundle.js | 1 - .../plugin/src/explorer/dist/2306.bundle.js | 1 - .../plugin/src/explorer/dist/2387.bundle.js | 1 - .../plugin/src/explorer/dist/2391.bundle.js | 1 - .../plugin/src/explorer/dist/2412.bundle.js | 1 - .../plugin/src/explorer/dist/2487.bundle.js | 1 - .../plugin/src/explorer/dist/2565.bundle.js | 1 - .../plugin/src/explorer/dist/2603.bundle.js | 1 - .../plugin/src/explorer/dist/261.bundle.js | 1 - .../plugin/src/explorer/dist/2658.bundle.js | 1 - .../plugin/src/explorer/dist/2688.bundle.js | 1 - .../plugin/src/explorer/dist/2692.bundle.js | 1 - .../plugin/src/explorer/dist/279.bundle.js | 1 - .../plugin/src/explorer/dist/2808.bundle.js | 1 - .../plugin/src/explorer/dist/2838.bundle.js | 1 - .../plugin/src/explorer/dist/2850.bundle.js | 1 - .../plugin/src/explorer/dist/2864.bundle.js | 1 - .../plugin/src/explorer/dist/2896.bundle.js | 1 - .../plugin/src/explorer/dist/2901.bundle.js | 1 - .../plugin/src/explorer/dist/2931.bundle.js | 1 - .../plugin/src/explorer/dist/3006.bundle.js | 1 - .../plugin/src/explorer/dist/3137.bundle.js | 1 - .../plugin/src/explorer/dist/3214.bundle.js | 1 - .../plugin/src/explorer/dist/3235.bundle.js | 1 - .../plugin/src/explorer/dist/3339.bundle.js | 1 - .../plugin/src/explorer/dist/3377.bundle.js | 1 - .../plugin/src/explorer/dist/3438.bundle.js | 1 - .../plugin/src/explorer/dist/3461.bundle.js | 1 - .../plugin/src/explorer/dist/3469.bundle.js | 1 - .../plugin/src/explorer/dist/3509.bundle.js | 1 - .../plugin/src/explorer/dist/3558.bundle.js | 1 - .../plugin/src/explorer/dist/3564.bundle.js | 1 - .../plugin/src/explorer/dist/3698.bundle.js | 1 - .../plugin/src/explorer/dist/3723.bundle.js | 1 - .../plugin/src/explorer/dist/3781.bundle.js | 1 - .../plugin/src/explorer/dist/3855.bundle.js | 1 - .../plugin/src/explorer/dist/3967.bundle.js | 1 - .../plugin/src/explorer/dist/3999.bundle.js | 1 - .../plugin/src/explorer/dist/4006.bundle.js | 1 - .../plugin/src/explorer/dist/4052.bundle.js | 1 - .../plugin/src/explorer/dist/4067.bundle.js | 1 - .../plugin/src/explorer/dist/4163.bundle.js | 1 - .../plugin/src/explorer/dist/4230.bundle.js | 1 - .../plugin/src/explorer/dist/4386.bundle.js | 1 - .../plugin/src/explorer/dist/4449.bundle.js | 1 - .../plugin/src/explorer/dist/4477.bundle.js | 1 - .../plugin/src/explorer/dist/4554.bundle.js | 1 - .../plugin/src/explorer/dist/4590.bundle.js | 1 - .../plugin/src/explorer/dist/4714.bundle.js | 1 - .../plugin/src/explorer/dist/4725.bundle.js | 1 - .../plugin/src/explorer/dist/4736.bundle.js | 1 - .../plugin/src/explorer/dist/4739.bundle.js | 1 - .../plugin/src/explorer/dist/4748.bundle.js | 1 - .../plugin/src/explorer/dist/4778.bundle.js | 1 - .../plugin/src/explorer/dist/4794.bundle.js | 1 - .../plugin/src/explorer/dist/4882.bundle.js | 1 - .../plugin/src/explorer/dist/4933.bundle.js | 1 - .../plugin/src/explorer/dist/4953.bundle.js | 1 - .../plugin/src/explorer/dist/4987.bundle.js | 1 - .../plugin/src/explorer/dist/5036.bundle.js | 1 - .../plugin/src/explorer/dist/5133.bundle.js | 1 - .../plugin/src/explorer/dist/5179.bundle.js | 1 - .../plugin/src/explorer/dist/5195.bundle.js | 1 - .../plugin/src/explorer/dist/5214.bundle.js | 1 - .../plugin/src/explorer/dist/5267.bundle.js | 1 - .../plugin/src/explorer/dist/5327.bundle.js | 1 - .../plugin/src/explorer/dist/5372.bundle.js | 1 - .../plugin/src/explorer/dist/5410.bundle.js | 1 - .../plugin/src/explorer/dist/5420.bundle.js | 1 - .../plugin/src/explorer/dist/5426.bundle.js | 1 - .../plugin/src/explorer/dist/5452.bundle.js | 1 - .../plugin/src/explorer/dist/5518.bundle.js | 1 - .../plugin/src/explorer/dist/5619.bundle.js | 1 - .../plugin/src/explorer/dist/5664.bundle.js | 1 - .../plugin/src/explorer/dist/5732.bundle.js | 1 - .../plugin/src/explorer/dist/5776.bundle.js | 1 - .../plugin/src/explorer/dist/579.bundle.js | 1 - .../plugin/src/explorer/dist/5806.bundle.js | 1 - .../plugin/src/explorer/dist/5823.bundle.js | 1 - .../plugin/src/explorer/dist/5935.bundle.js | 1 - .../plugin/src/explorer/dist/5937.bundle.js | 1 - .../plugin/src/explorer/dist/5943.bundle.js | 1 - .../plugin/src/explorer/dist/6014.bundle.js | 1 - .../plugin/src/explorer/dist/6040.bundle.js | 1 - .../plugin/src/explorer/dist/6099.bundle.js | 1 - .../plugin/src/explorer/dist/6187.bundle.js | 1 - .../plugin/src/explorer/dist/6188.bundle.js | 1 - .../plugin/src/explorer/dist/622.bundle.js | 1 - .../plugin/src/explorer/dist/6228.bundle.js | 1 - .../plugin/src/explorer/dist/6237.bundle.js | 1 - .../plugin/src/explorer/dist/6302.bundle.js | 1 - .../plugin/src/explorer/dist/6348.bundle.js | 1 - .../plugin/src/explorer/dist/6355.bundle.js | 1 - .../plugin/src/explorer/dist/6377.bundle.js | 1 - .../plugin/src/explorer/dist/6407.bundle.js | 1 - .../plugin/src/explorer/dist/6426.bundle.js | 1 - .../plugin/src/explorer/dist/6482.bundle.js | 1 - .../plugin/src/explorer/dist/650.bundle.js | 1 - .../plugin/src/explorer/dist/6530.bundle.js | 1 - .../plugin/src/explorer/dist/6561.bundle.js | 1 - .../plugin/src/explorer/dist/6618.bundle.js | 1 - .../plugin/src/explorer/dist/6689.bundle.js | 1 - .../plugin/src/explorer/dist/669.bundle.js | 1 - .../plugin/src/explorer/dist/6714.bundle.js | 1 - .../plugin/src/explorer/dist/6717.bundle.js | 1 - .../plugin/src/explorer/dist/6728.bundle.js | 1 - .../plugin/src/explorer/dist/676.bundle.js | 1 - .../plugin/src/explorer/dist/6780.bundle.js | 1 - .../plugin/src/explorer/dist/6791.bundle.js | 1 - .../plugin/src/explorer/dist/6828.bundle.js | 1 - .../plugin/src/explorer/dist/6926.bundle.js | 1 - .../plugin/src/explorer/dist/6929.bundle.js | 1 - .../plugin/src/explorer/dist/6952.bundle.js | 1 - .../plugin/src/explorer/dist/6982.bundle.js | 1 - .../plugin/src/explorer/dist/6983.bundle.js | 1 - .../plugin/src/explorer/dist/6984.bundle.js | 1 - .../plugin/src/explorer/dist/70.bundle.js | 1 - .../plugin/src/explorer/dist/7007.bundle.js | 1 - .../plugin/src/explorer/dist/7218.bundle.js | 1 - .../plugin/src/explorer/dist/7243.bundle.js | 1 - .../plugin/src/explorer/dist/7281.bundle.js | 1 - .../plugin/src/explorer/dist/7350.bundle.js | 1 - .../plugin/src/explorer/dist/7450.bundle.js | 1 - .../plugin/src/explorer/dist/7469.bundle.js | 1 - .../plugin/src/explorer/dist/7552.bundle.js | 1 - .../plugin/src/explorer/dist/7612.bundle.js | 1 - .../plugin/src/explorer/dist/7656.bundle.js | 1 - .../plugin/src/explorer/dist/7736.bundle.js | 1 - .../plugin/src/explorer/dist/7833.bundle.js | 1 - .../plugin/src/explorer/dist/7835.bundle.js | 1 - .../plugin/src/explorer/dist/787.bundle.js | 1 - .../plugin/src/explorer/dist/7887.bundle.js | 1 - .../src/explorer/dist/797791b8ae7fd556ee6a.js | 1 - .../plugin/src/explorer/dist/8127.bundle.js | 1 - .../plugin/src/explorer/dist/8293.bundle.js | 1 - .../plugin/src/explorer/dist/8365.bundle.js | 1 - .../plugin/src/explorer/dist/8397.bundle.js | 1 - .../plugin/src/explorer/dist/8455.bundle.js | 1 - .../plugin/src/explorer/dist/8564.bundle.js | 1 - .../plugin/src/explorer/dist/8602.bundle.js | 1 - .../plugin/src/explorer/dist/877.bundle.js | 1 - .../plugin/src/explorer/dist/8776.bundle.js | 1 - .../plugin/src/explorer/dist/8842.bundle.js | 1 - .../plugin/src/explorer/dist/9146.bundle.js | 1 - .../plugin/src/explorer/dist/9190.bundle.js | 1 - .../plugin/src/explorer/dist/9236.bundle.js | 1 - .../plugin/src/explorer/dist/9375.bundle.js | 1 - .../plugin/src/explorer/dist/9380.bundle.js | 1 - .../plugin/src/explorer/dist/9385.bundle.js | 1 - .../plugin/src/explorer/dist/9390.bundle.js | 1 - .../plugin/src/explorer/dist/9466.bundle.js | 1 - .../plugin/src/explorer/dist/9503.bundle.js | 1 - .../plugin/src/explorer/dist/9624.bundle.js | 1 - .../plugin/src/explorer/dist/9788.bundle.js | 1 - .../plugin/src/explorer/dist/9865.bundle.js | 1 - .../plugin/src/explorer/dist/9907.bundle.js | 1 - .../plugin/src/explorer/dist/9936.bundle.js | 1 - packages/plugin/src/explorer/dist/bundle.js | 1 - .../paymentHelp1.35dff52e41e22e90d91c.png | Bin 167352 -> 0 bytes .../paymentHelp2.08d778959310485fefce.png | Bin 339006 -> 0 bytes .../paymentHelp3.9908702eec7bdcd83f69.png | Bin 539378 -> 0 bytes packages/plugin/src/explorer/dist/index.html | 26 ------------------ .../plugin/src/explorer/dist/manifest.json | 25 ----------------- .../src/explorer/dist/openscan-logo.png | Bin 7808 -> 0 bytes packages/plugin/src/explorer/dist/robots.txt | 3 -- packages/plugin/src/server.ts | 12 ++++---- pnpm-lock.yaml | 15 ++++++++-- 200 files changed, 20 insertions(+), 256 deletions(-) delete mode 100644 packages/plugin/src/explorer/dist/1029.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1035.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1061.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1078.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1158.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1165.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1195.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1224.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1247.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1302.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1319.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1408.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1453.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1473.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1476.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1496.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1538.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1611.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1672.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1709.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1824.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1837.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1889.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1975.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1978.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/1979.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2011.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2016.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2026.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2062.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2108.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2149.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2161.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2306.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2387.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2391.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2412.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2487.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2565.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2603.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/261.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2658.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2688.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2692.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/279.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2808.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2838.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2850.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2864.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2896.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2901.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/2931.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3006.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3137.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3214.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3235.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3339.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3377.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3438.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3461.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3469.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3509.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3558.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3564.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3698.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3723.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3781.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3855.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3967.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/3999.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4006.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4052.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4067.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4163.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4230.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4386.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4449.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4477.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4554.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4590.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4714.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4725.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4736.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4739.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4748.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4778.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4794.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4882.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4933.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4953.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/4987.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5036.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5133.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5179.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5195.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5214.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5267.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5327.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5372.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5410.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5420.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5426.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5452.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5518.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5619.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5664.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5732.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5776.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/579.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5806.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5823.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5935.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5937.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/5943.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6014.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6040.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6099.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6187.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6188.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/622.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6228.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6237.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6302.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6348.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6355.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6377.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6407.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6426.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6482.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/650.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6530.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6561.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6618.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6689.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/669.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6714.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6717.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6728.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/676.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6780.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6791.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6828.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6926.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6929.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6952.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6982.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6983.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/6984.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/70.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7007.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7218.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7243.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7281.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7350.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7450.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7469.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7552.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7612.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7656.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7736.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7833.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7835.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/787.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/7887.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/797791b8ae7fd556ee6a.js delete mode 100644 packages/plugin/src/explorer/dist/8127.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8293.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8365.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8397.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8455.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8564.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8602.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/877.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8776.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/8842.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9146.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9190.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9236.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9375.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9380.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9385.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9390.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9466.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9503.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9624.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9788.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9865.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9907.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/9936.bundle.js delete mode 100644 packages/plugin/src/explorer/dist/bundle.js delete mode 100644 packages/plugin/src/explorer/dist/images/paymentHelp1.35dff52e41e22e90d91c.png delete mode 100644 packages/plugin/src/explorer/dist/images/paymentHelp2.08d778959310485fefce.png delete mode 100644 packages/plugin/src/explorer/dist/images/paymentHelp3.9908702eec7bdcd83f69.png delete mode 100644 packages/plugin/src/explorer/dist/index.html delete mode 100644 packages/plugin/src/explorer/dist/manifest.json delete mode 100644 packages/plugin/src/explorer/dist/openscan-logo.png delete mode 100644 packages/plugin/src/explorer/dist/robots.txt diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 8e2fd6a..81949c2 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -22,7 +22,6 @@ "eslint": "eslint \"src/**/*.ts\"", "prettier": "prettier \"**/*.{ts,js,md,json}\"", "build": "tsc --build .", - "postbuild": "node -e \"require('fs').cpSync('src/explorer/dist', 'dist/explorer', {recursive: true})\"", "prepublishOnly": "pnpm build", "prebuild": "pnpm clean", "clean": "rimraf dist", @@ -30,12 +29,14 @@ }, "files": [ "dist/src/", - "dist/explorer/", "src/", "CHANGELOG.md", "LICENSE", "README.md" ], + "dependencies": { + "@openscan/explorer": "^1.1.0-alpha" + }, "devDependencies": { "@eslint/js": "^9.35.0", "@nomicfoundation/hardhat-node-test-reporter": "^3.0.0", diff --git a/packages/plugin/src/explorer/dist/1029.bundle.js b/packages/plugin/src/explorer/dist/1029.bundle.js deleted file mode 100644 index 43265dd..0000000 --- a/packages/plugin/src/explorer/dist/1029.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1029],{71029:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cardSvg: () => (/* binding */ cardSvg)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\nconst cardSvg = (0,lit__WEBPACK_IMPORTED_MODULE_0__.svg) `\n `;\n//# sourceMappingURL=card.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/assets/svg/card.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1035.bundle.js b/packages/plugin/src/explorer/dist/1035.bundle.js deleted file mode 100644 index aacbc08..0000000 --- a/packages/plugin/src/explorer/dist/1035.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1035],{33416:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ plusSvg: () => (/* binding */ plusSvg)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\nconst plusSvg = (0,lit__WEBPACK_IMPORTED_MODULE_0__.svg) `\n `;\n//# sourceMappingURL=plus.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/assets/svg/plus.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1061.bundle.js b/packages/plugin/src/explorer/dist/1061.bundle.js deleted file mode 100644 index bac149f..0000000 --- a/packages/plugin/src/explorer/dist/1061.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1061],{11061:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ celo_default)\n/* harmony export */ });\n"use client";\n\n// src/components/RainbowKitProvider/chainIcons/celo.svg\nvar celo_default = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2214%22%20r%3D%2214%22%20fill%3D%22%23FCFF52%22%2F%3E%3Cpath%20d%3D%22M21%207H7v14h14v-4.887h-2.325a5.126%205.126%200%200%201-4.664%203.023c-2.844%200-5.147-2.325-5.147-5.147-.003-2.822%202.303-5.125%205.147-5.125%202.102%200%203.904%201.28%204.704%203.104H21V7Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E";\n\n\n\n//# sourceURL=webpack://openscan/./node_modules/@rainbow-me/rainbowkit/dist/celo-GEP4TUHG.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1078.bundle.js b/packages/plugin/src/explorer/dist/1078.bundle.js deleted file mode 100644 index 70abab7..0000000 --- a/packages/plugin/src/explorer/dist/1078.bundle.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1078],{2731:(__unused_webpack_module,exports)=>{eval("const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/galois-field.js?")},3614:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n display: inline-flex;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-3xl);\n padding: var(--wui-spacing-3xs);\n position: relative;\n height: 36px;\n min-height: 36px;\n overflow: hidden;\n }\n\n :host::before {\n content: '';\n position: absolute;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: var(--local-tab-width);\n height: 28px;\n border-radius: var(--wui-border-radius-3xl);\n background-color: var(--wui-color-gray-glass-002);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n transform: translateX(calc(var(--local-tab) * var(--local-tab-width)));\n transition: transform var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color, opacity;\n }\n\n :host([data-type='flex'])::before {\n left: 3px;\n transform: translateX(calc((var(--local-tab) * 34px) + (var(--local-tab) * 4px)));\n }\n\n :host([data-type='flex']) {\n display: flex;\n padding: 0px 0px 0px 12px;\n gap: 4px;\n }\n\n :host([data-type='flex']) > button > wui-text {\n position: absolute;\n left: 18px;\n opacity: 0;\n }\n\n button[data-active='true'] > wui-icon,\n button[data-active='true'] > wui-text {\n color: var(--wui-color-fg-100);\n }\n\n button[data-active='false'] > wui-icon,\n button[data-active='false'] > wui-text {\n color: var(--wui-color-fg-200);\n }\n\n button[data-active='true']:disabled,\n button[data-active='false']:disabled {\n background-color: transparent;\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n button[data-active='true']:disabled > wui-text {\n color: var(--wui-color-fg-200);\n }\n\n button[data-active='false']:disabled > wui-text {\n color: var(--wui-color-fg-300);\n }\n\n button > wui-icon,\n button > wui-text {\n pointer-events: none;\n transition: color var(--wui-e ase-out-power-1) var(--wui-duration-md);\n will-change: color;\n }\n\n button {\n width: var(--local-tab-width);\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color;\n }\n\n :host([data-type='flex']) > button {\n width: 34px;\n position: relative;\n display: flex;\n justify-content: flex-start;\n }\n\n button:hover:enabled,\n button:active:enabled {\n background-color: transparent !important;\n }\n\n button:hover:enabled > wui-icon,\n button:active:enabled > wui-icon {\n transition: all var(--wui-ease-out-power-1) var(--wui-duration-lg);\n color: var(--wui-color-fg-125);\n }\n\n button:hover:enabled > wui-text,\n button:active:enabled > wui-text {\n transition: all var(--wui-ease-out-power-1) var(--wui-duration-lg);\n color: var(--wui-color-fg-125);\n }\n\n button {\n border-radius: var(--wui-border-radius-3xl);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-tabs/styles.js?")},6231:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n .reown-logo {\n height: var(--wui-spacing-xxl);\n }\n\n a {\n text-decoration: none;\n cursor: pointer;\n }\n\n a:hover {\n opacity: 0.9;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-ux-by-reown/styles.js?')},6421:(__unused_webpack_module,exports,__webpack_require__)=>{eval("/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = (__webpack_require__(/*! ./utils */ 56886).getSymbolSize)\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/alignment-pattern.js?")},7565:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ REOWN_URL: () => (/* binding */ REOWN_URL),\n/* harmony export */ numbersRegex: () => (/* binding */ numbersRegex),\n/* harmony export */ specialCharactersRegex: () => (/* binding */ specialCharactersRegex)\n/* harmony export */ });\nconst specialCharactersRegex = /[.*+?^${}()|[\\]\\\\]/gu;\nconst numbersRegex = /[0-9,.]/u;\nconst REOWN_URL = 'https://reown.com';\n//# sourceMappingURL=ConstantsUtil.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/utils/ConstantsUtil.js?")},7756:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const getSymbolSize = (__webpack_require__(/*! ./utils */ 56886).getSymbolSize)\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/finder-pattern.js?")},8820:module=>{eval("/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/bit-matrix.js?")},9900:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n button {\n column-gap: var(--wui-spacing-s);\n padding: 7px var(--wui-spacing-l) 7px var(--wui-spacing-xs);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-100);\n }\n\n button > wui-text:nth-child(2) {\n display: flex;\n flex: 1;\n }\n\n button:disabled {\n background-color: var(--wui-color-gray-glass-015);\n color: var(--wui-color-gray-glass-015);\n }\n\n button:disabled > wui-tag {\n background-color: var(--wui-color-gray-glass-010);\n color: var(--wui-color-fg-300);\n }\n\n wui-icon {\n color: var(--wui-color-fg-200) !important;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-list-wallet/styles.js?')},11433:(module,__unused_webpack_exports,__webpack_require__)=>{eval("const Mode = __webpack_require__(/*! ./mode */ 30208)\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/alphanumeric-data.js?")},11529:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectFeaturedWidget: () => (/* binding */ W3mConnectFeaturedWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet W3mConnectFeaturedWidget = class W3mConnectFeaturedWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.tabIdx = undefined;\n this.wallets = [];\n }\n render() {\n if (!this.wallets.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.wallets.map(wallet => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnectWallet(wallet)}\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n >\n \n `)}\n \n `;\n }\n onConnectWallet(wallet) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.selectWalletConnector(wallet);\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectFeaturedWidget.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectFeaturedWidget.prototype, "wallets", void 0);\nW3mConnectFeaturedWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-connect-featured-widget\')\n], W3mConnectFeaturedWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-featured-widget/index.js?')},13745:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n wui-flex {\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-cta-button/styles.js?')},14873:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcBrowser: () => (/* binding */ W3mConnectingWcBrowser)\n/* harmony export */ });\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-controllers */ 96396);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/w3m-connecting-widget/index.js */ 16909);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\nlet W3mConnectingWcBrowser = class W3mConnectingWcBrowser extends _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_1__.W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-browser: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onAutoConnect = this.onConnectProxy.bind(this);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_2__.EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'browser' }\n });\n }\n async onConnectProxy() {\n try {\n this.error = false;\n const { connectors } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__.ConnectorController.state;\n const connector = connectors.find(c => (c.type === 'ANNOUNCED' && c.info?.rdns === this.wallet?.rdns) ||\n c.type === 'INJECTED' ||\n c.name === this.wallet?.name);\n if (connector) {\n await _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.ConnectionController.connectExternal(connector, connector.chain);\n }\n else {\n throw new Error('w3m-connecting-wc-browser: No connector found');\n }\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ModalController.close();\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_2__.EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_SUCCESS',\n properties: { method: 'browser', name: this.wallet?.name || 'Unknown' }\n });\n }\n catch (error) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_2__.EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_ERROR',\n properties: { message: error?.message ?? 'Unknown' }\n });\n this.error = true;\n }\n }\n};\nW3mConnectingWcBrowser = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_0__.customElement)('w3m-connecting-wc-browser')\n], W3mConnectingWcBrowser);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-wc-browser/index.js?")},14966:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n height: 100%;\n }\n\n button {\n display: flex;\n align-items: center;\n justify-content: center;\n column-gap: var(--wui-spacing-1xs);\n padding: var(--wui-spacing-xs) var(--wui-spacing-s);\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color;\n cursor: pointer;\n }\n\n wui-switch {\n pointer-events: none;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-certified-switch/styles.js?')},15535:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiCtaButton: () => (/* binding */ WuiCtaButton)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _composites_wui_chip_button_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../composites/wui-chip-button/index.js */ 81947);\n/* harmony import */ var _layout_wui_flex_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../layout/wui-flex/index.js */ 11227);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.js */ 13745);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet WuiCtaButton = class WuiCtaButton extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.label = \'\';\n this.buttonLabel = \'\';\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.label}\n \n \n \n `;\n }\n};\nWuiCtaButton.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_7__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiCtaButton.prototype, "disabled", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiCtaButton.prototype, "label", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiCtaButton.prototype, "buttonLabel", void 0);\nWuiCtaButton = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__.customElement)(\'wui-cta-button\')\n], WuiCtaButton);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-cta-button/index.js?')},16146:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n button {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: 104px;\n row-gap: var(--wui-spacing-xs);\n padding: var(--wui-spacing-s) var(--wui-spacing-0);\n background-color: var(--wui-color-gray-glass-002);\n border-radius: clamp(0px, var(--wui-border-radius-xs), 20px);\n transition:\n color var(--wui-duration-lg) var(--wui-ease-out-power-1),\n background-color var(--wui-duration-lg) var(--wui-ease-out-power-1),\n border-radius var(--wui-duration-lg) var(--wui-ease-out-power-1);\n will-change: background-color, color, border-radius;\n outline: none;\n border: none;\n }\n\n button > wui-flex > wui-text {\n color: var(--wui-color-fg-100);\n max-width: 86px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n justify-content: center;\n }\n\n button > wui-flex > wui-text.certified {\n max-width: 66px;\n }\n\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n button:disabled > wui-flex > wui-text {\n color: var(--wui-color-gray-glass-015);\n }\n\n [data-selected='true'] {\n background-color: var(--wui-color-accent-glass-020);\n }\n\n @media (hover: hover) and (pointer: fine) {\n [data-selected='true']:hover:enabled {\n background-color: var(--wui-color-accent-glass-015);\n }\n }\n\n [data-selected='true']:active:enabled {\n background-color: var(--wui-color-accent-glass-010);\n }\n\n @media (max-width: 350px) {\n button {\n width: 100%;\n }\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-all-wallets-list-item/styles.js?")},16491:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n position: relative;\n user-select: none;\n display: block;\n overflow: hidden;\n aspect-ratio: 1 / 1;\n width: var(--local-size);\n }\n\n :host([data-theme='dark']) {\n border-radius: clamp(0px, var(--wui-border-radius-l), 40px);\n background-color: var(--wui-color-inverse-100);\n padding: var(--wui-spacing-l);\n }\n\n :host([data-theme='light']) {\n box-shadow: 0 0 0 1px var(--wui-color-bg-125);\n background-color: var(--wui-color-bg-125);\n }\n\n :host([data-clear='true']) > wui-icon {\n display: none;\n }\n\n svg:first-child,\n wui-image,\n wui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateY(-50%) translateX(-50%);\n }\n\n wui-image {\n width: 25%;\n height: 25%;\n border-radius: var(--wui-border-radius-xs);\n }\n\n wui-icon {\n width: 100%;\n height: 100%;\n color: var(--local-icon-color) !important;\n transform: translateY(-50%) translateX(-50%) scale(0.25);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-qr-code/styles.js?")},16909:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWidget: () => (/* binding */ W3mConnectingWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @reown/appkit-controllers */ 68996);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @reown/appkit-controllers */ 21871);\n/* harmony import */ var _reown_appkit_ui_wui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-button */ 80842);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-icon */ 51636);\n/* harmony import */ var _reown_appkit_ui_wui_icon_box__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-ui/wui-icon-box */ 77616);\n/* harmony import */ var _reown_appkit_ui_wui_link__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-ui/wui-link */ 44373);\n/* harmony import */ var _reown_appkit_ui_wui_loading_thumbnail__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-ui/wui-loading-thumbnail */ 40880);\n/* harmony import */ var _reown_appkit_ui_wui_text__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-ui/wui-text */ 45090);\n/* harmony import */ var _reown_appkit_ui_wui_wallet_image__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-ui/wui-wallet-image */ 41684);\n/* harmony import */ var _partials_w3m_mobile_download_links_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../partials/w3m-mobile-download-links/index.js */ 46578);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./styles.js */ 63407);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass W3mConnectingWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.wallet = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.RouterController.state.data?.wallet;\n this.connector = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.RouterController.state.data?.connector;\n this.timeout = undefined;\n this.secondaryBtnIcon = \'refresh\';\n this.onConnect = undefined;\n this.onRender = undefined;\n this.onAutoConnect = undefined;\n this.isWalletConnect = true;\n this.unsubscribe = [];\n this.imageSrc = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__.AssetUtil.getWalletImage(this.wallet) ?? _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__.AssetUtil.getConnectorImage(this.connector);\n this.name = this.wallet?.name ?? this.connector?.name ?? \'Wallet\';\n this.isRetrying = false;\n this.uri = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.ConnectionController.state.wcUri;\n this.error = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.ConnectionController.state.wcError;\n this.ready = false;\n this.showRetry = false;\n this.secondaryBtnLabel = \'Try again\';\n this.secondaryLabel = \'Accept connection request in the wallet\';\n this.isLoading = false;\n this.isMobile = false;\n this.onRetry = undefined;\n this.unsubscribe.push(...[\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.ConnectionController.subscribeKey(\'wcUri\', val => {\n this.uri = val;\n if (this.isRetrying && this.onRetry) {\n this.isRetrying = false;\n this.onConnect?.();\n }\n }),\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.ConnectionController.subscribeKey(\'wcError\', val => (this.error = val))\n ]);\n if ((_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__.CoreHelperUtil.isTelegram() || _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__.CoreHelperUtil.isSafari()) &&\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__.CoreHelperUtil.isIos() &&\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.ConnectionController.state.wcUri) {\n this.onConnect?.();\n }\n }\n firstUpdated() {\n this.onAutoConnect?.();\n this.showRetry = !this.onAutoConnect;\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.ConnectionController.setWcError(false);\n clearTimeout(this.timeout);\n }\n render() {\n this.onRender?.();\n this.onShowRetry();\n const subLabel = this.error\n ? \'Connection can be declined if a previous request is still active\'\n : this.secondaryLabel;\n let label = `Continue in ${this.name}`;\n if (this.error) {\n label = \'Connection declined\';\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n \n\n ${this.error ? null : this.loaderTemplate()}\n\n \n \n\n \n \n ${label}\n \n ${subLabel}\n \n\n ${this.secondaryBtnLabel\n ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n ${this.secondaryBtnLabel}\n \n `\n : null}\n \n\n ${this.isWalletConnect\n ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n \n Copy link\n \n \n `\n : null}\n\n \n `;\n }\n onShowRetry() {\n if (this.error && !this.showRetry) {\n this.showRetry = true;\n const retryButton = this.shadowRoot?.querySelector(\'wui-button\');\n retryButton?.animate([{ opacity: 0 }, { opacity: 1 }], {\n fill: \'forwards\',\n easing: \'ease\'\n });\n }\n }\n onTryAgain() {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.ConnectionController.setWcError(false);\n if (this.onRetry) {\n this.isRetrying = true;\n this.onRetry?.();\n }\n else {\n this.onConnect?.();\n }\n }\n loaderTemplate() {\n const borderRadiusMaster = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__.ThemeController.state.themeVariables[\'--w3m-border-radius-master\'];\n const radius = borderRadiusMaster ? parseInt(borderRadiusMaster.replace(\'px\', \'\'), 10) : 4;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n onCopyUri() {\n try {\n if (this.uri) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__.CoreHelperUtil.copyToClopboard(this.uri);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_18__.SnackController.showSuccess(\'Link copied\');\n }\n }\n catch {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_18__.SnackController.showError(\'Failed to copy\');\n }\n }\n}\nW3mConnectingWidget.styles = _styles_js__WEBPACK_IMPORTED_MODULE_12__["default"];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "isRetrying", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "uri", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "error", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "ready", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "showRetry", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "secondaryBtnLabel", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "secondaryLabel", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWidget.prototype, "isLoading", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], W3mConnectingWidget.prototype, "isMobile", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectingWidget.prototype, "onRetry", void 0);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/w3m-connecting-widget/index.js?')},17290:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n label {\n position: relative;\n display: inline-block;\n width: 32px;\n height: 22px;\n }\n\n input {\n width: 0;\n height: 0;\n opacity: 0;\n }\n\n span {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--wui-color-blue-100);\n border-width: 1px;\n border-style: solid;\n border-color: var(--wui-color-gray-glass-002);\n border-radius: 999px;\n transition:\n background-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n border-color var(--wui-ease-inout-power-1) var(--wui-duration-md);\n will-change: background-color, border-color;\n }\n\n span:before {\n position: absolute;\n content: '';\n height: 16px;\n width: 16px;\n left: 3px;\n top: 2px;\n background-color: var(--wui-color-inverse-100);\n transition: transform var(--wui-ease-inout-power-1) var(--wui-duration-lg);\n will-change: transform;\n border-radius: 50%;\n }\n\n input:checked + span {\n border-color: var(--wui-color-gray-glass-005);\n background-color: var(--wui-color-blue-100);\n }\n\n input:not(:checked) + span {\n background-color: var(--wui-color-gray-glass-010);\n }\n\n input:checked + span:before {\n transform: translateX(calc(100% - 7px));\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-switch/styles.js?")},18762:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n position: relative;\n width: 100%;\n display: inline-block;\n color: var(--wui-color-fg-275);\n }\n\n input {\n width: 100%;\n border-radius: var(--wui-border-radius-xs);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n background: var(--wui-color-gray-glass-002);\n font-size: var(--wui-font-size-paragraph);\n letter-spacing: var(--wui-letter-spacing-paragraph);\n color: var(--wui-color-fg-100);\n transition:\n background-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n border-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n box-shadow var(--wui-ease-inout-power-1) var(--wui-duration-md);\n will-change: background-color, border-color, box-shadow;\n caret-color: var(--wui-color-accent-100);\n }\n\n input:disabled {\n cursor: not-allowed;\n border: 1px solid var(--wui-color-gray-glass-010);\n }\n\n input:disabled::placeholder,\n input:disabled + wui-icon {\n color: var(--wui-color-fg-300);\n }\n\n input::placeholder {\n color: var(--wui-color-fg-275);\n }\n\n input:focus:enabled {\n background-color: var(--wui-color-gray-glass-005);\n -webkit-box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0px 0px 0px 4px var(--wui-box-shadow-blue);\n -moz-box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0px 0px 0px 4px var(--wui-box-shadow-blue);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0px 0px 0px 4px var(--wui-box-shadow-blue);\n }\n\n input:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n wui-icon {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n }\n\n .wui-size-sm {\n padding: 9px var(--wui-spacing-m) 10px var(--wui-spacing-s);\n }\n\n wui-icon + .wui-size-sm {\n padding: 9px var(--wui-spacing-m) 10px 36px;\n }\n\n wui-icon[data-input='sm'] {\n left: var(--wui-spacing-s);\n }\n\n .wui-size-md {\n padding: 15px var(--wui-spacing-m) var(--wui-spacing-l) var(--wui-spacing-m);\n }\n\n wui-icon + .wui-size-md,\n wui-loading-spinner + .wui-size-md {\n padding: 10.5px var(--wui-spacing-3xl) 10.5px var(--wui-spacing-3xl);\n }\n\n wui-icon[data-input='md'] {\n left: var(--wui-spacing-l);\n }\n\n .wui-size-lg {\n padding: var(--wui-spacing-s) var(--wui-spacing-s) var(--wui-spacing-s) var(--wui-spacing-l);\n letter-spacing: var(--wui-letter-spacing-medium-title);\n font-size: var(--wui-font-size-medium-title);\n font-weight: var(--wui-font-weight-light);\n line-height: 130%;\n color: var(--wui-color-fg-100);\n height: 64px;\n }\n\n .wui-padding-right-xs {\n padding-right: var(--wui-spacing-xs);\n }\n\n .wui-padding-right-s {\n padding-right: var(--wui-spacing-s);\n }\n\n .wui-padding-right-m {\n padding-right: var(--wui-spacing-m);\n }\n\n .wui-padding-right-l {\n padding-right: var(--wui-spacing-l);\n }\n\n .wui-padding-right-xl {\n padding-right: var(--wui-spacing-xl);\n }\n\n .wui-padding-right-2xl {\n padding-right: var(--wui-spacing-2xl);\n }\n\n .wui-padding-right-3xl {\n padding-right: var(--wui-spacing-3xl);\n }\n\n .wui-padding-right-4xl {\n padding-right: var(--wui-spacing-4xl);\n }\n\n .wui-padding-right-5xl {\n padding-right: var(--wui-spacing-5xl);\n }\n\n wui-icon + .wui-size-lg,\n wui-loading-spinner + .wui-size-lg {\n padding-left: 50px;\n }\n\n wui-icon[data-input='lg'] {\n left: var(--wui-spacing-l);\n }\n\n .wui-size-mdl {\n padding: 17.25px var(--wui-spacing-m) 17.25px var(--wui-spacing-m);\n }\n wui-icon + .wui-size-mdl,\n wui-loading-spinner + .wui-size-mdl {\n padding: 17.25px var(--wui-spacing-3xl) 17.25px 40px;\n }\n wui-icon[data-input='mdl'] {\n left: var(--wui-spacing-m);\n }\n\n input:placeholder-shown ~ ::slotted(wui-input-element),\n input:placeholder-shown ~ ::slotted(wui-icon) {\n opacity: 0;\n pointer-events: none;\n }\n\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n input[type='number'] {\n -moz-appearance: textfield;\n }\n\n ::slotted(wui-input-element),\n ::slotted(wui-icon) {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n\n ::slotted(wui-input-element) {\n right: var(--wui-spacing-m);\n }\n\n ::slotted(wui-icon) {\n right: 0px;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-input-text/styles.js?")},20254:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mAllWalletsListItem: () => (/* binding */ W3mAllWalletsListItem)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-icon */ 51636);\n/* harmony import */ var _reown_appkit_ui_wui_shimmer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-ui/wui-shimmer */ 35090);\n/* harmony import */ var _reown_appkit_ui_wui_text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-ui/wui-text */ 45090);\n/* harmony import */ var _reown_appkit_ui_wui_wallet_image__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-ui/wui-wallet-image */ 41684);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./styles.js */ 16146);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\nlet W3mAllWalletsListItem = class W3mAllWalletsListItem extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.observer = new IntersectionObserver(() => undefined);\n this.visible = false;\n this.imageSrc = undefined;\n this.imageLoading = false;\n this.wallet = undefined;\n this.observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.visible = true;\n this.fetchImageSrc();\n }\n else {\n this.visible = false;\n }\n });\n }, { threshold: 0.01 });\n }\n firstUpdated() {\n this.observer.observe(this);\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n render() {\n const certified = this.wallet?.badge_type === \'certified\';\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n imageTemplate() {\n if ((!this.visible && !this.imageSrc) || this.imageLoading) {\n return this.shimmerTemplate();\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n `;\n }\n shimmerTemplate() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n async fetchImageSrc() {\n if (!this.wallet) {\n return;\n }\n this.imageSrc = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.AssetUtil.getWalletImage(this.wallet);\n if (this.imageSrc) {\n return;\n }\n this.imageLoading = true;\n this.imageSrc = await _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.AssetUtil.fetchWalletImage(this.wallet.image_id);\n this.imageLoading = false;\n }\n};\nW3mAllWalletsListItem.styles = _styles_js__WEBPACK_IMPORTED_MODULE_9__["default"];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsListItem.prototype, "visible", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsListItem.prototype, "imageSrc", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsListItem.prototype, "imageLoading", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mAllWalletsListItem.prototype, "wallet", void 0);\nW3mAllWalletsListItem = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-all-wallets-list-item\')\n], W3mAllWalletsListItem);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-all-wallets-list-item/index.js?')},20411:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRef: () => (/* reexport safe */ lit_html_directives_ref_js__WEBPACK_IMPORTED_MODULE_0__.createRef),\n/* harmony export */ ref: () => (/* reexport safe */ lit_html_directives_ref_js__WEBPACK_IMPORTED_MODULE_0__.ref)\n/* harmony export */ });\n/* harmony import */ var lit_html_directives_ref_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit-html/directives/ref.js */ 32985);\n\n//# sourceMappingURL=ref.js.map\n\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/node_modules/lit/directives/ref.js?")},21878:(__unused_webpack_module,exports)=>{eval("/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/version-check.js?")},22378:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mAllWalletsList: () => (/* binding */ W3mAllWalletsList)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 88249);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_card_select_loader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-card-select-loader */ 97466);\n/* harmony import */ var _reown_appkit_ui_wui_grid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-grid */ 29077);\n/* harmony import */ var _utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WalletUtil.js */ 65042);\n/* harmony import */ var _w3m_all_wallets_list_item_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../w3m-all-wallets-list-item/index.js */ 20254);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./styles.js */ 57190);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\nconst PAGINATOR_ID = 'local-paginator';\nlet W3mAllWalletsList = class W3mAllWalletsList extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.paginationObserver = undefined;\n this.loading = !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.state.wallets.length;\n this.wallets = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.state.wallets;\n this.recommended = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.state.recommended;\n this.featured = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.state.featured;\n this.filteredWallets = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.state.filteredWallets;\n this.unsubscribe.push(...[\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.subscribeKey('wallets', val => (this.wallets = val)),\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.subscribeKey('recommended', val => (this.recommended = val)),\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.subscribeKey('featured', val => (this.featured = val)),\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.subscribeKey('filteredWallets', val => (this.filteredWallets = val))\n ]);\n }\n firstUpdated() {\n this.initialFetch();\n this.createPaginationObserver();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n this.paginationObserver?.disconnect();\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.loading ? this.shimmerTemplate(16) : this.walletsTemplate()}\n ${this.paginationLoaderTemplate()}\n \n `;\n }\n async initialFetch() {\n this.loading = true;\n const gridEl = this.shadowRoot?.querySelector('wui-grid');\n if (gridEl) {\n await _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.fetchWalletsByPage({ page: 1 });\n await gridEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.loading = false;\n gridEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n shimmerTemplate(items, id) {\n return [...Array(items)].map(() => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `);\n }\n walletsTemplate() {\n const wallets = this.filteredWallets?.length > 0\n ? _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.CoreHelperUtil.uniqueBy([...this.featured, ...this.recommended, ...this.filteredWallets], 'id')\n : _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.CoreHelperUtil.uniqueBy([...this.featured, ...this.recommended, ...this.wallets], 'id');\n const walletsWithInstalled = _utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_6__.WalletUtil.markWalletsAsInstalled(wallets);\n return walletsWithInstalled.map(wallet => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnectWallet(wallet)}\n .wallet=${wallet}\n >\n `);\n }\n paginationLoaderTemplate() {\n const { wallets, recommended, featured, count } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.state;\n const columns = window.innerWidth < 352 ? 3 : 4;\n const currentWallets = wallets.length + recommended.length;\n const minimumRows = Math.ceil(currentWallets / columns);\n let shimmerCount = minimumRows * columns - currentWallets + columns;\n shimmerCount -= wallets.length ? featured.length % columns : 0;\n if (count === 0 && featured.length > 0) {\n return null;\n }\n if (count === 0 || [...featured, ...wallets, ...recommended].length < count) {\n return this.shimmerTemplate(shimmerCount, PAGINATOR_ID);\n }\n return null;\n }\n createPaginationObserver() {\n const loaderEl = this.shadowRoot?.querySelector(`#${PAGINATOR_ID}`);\n if (loaderEl) {\n this.paginationObserver = new IntersectionObserver(([element]) => {\n if (element?.isIntersecting && !this.loading) {\n const { page, count, wallets } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.state;\n if (wallets.length < count) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ApiController.fetchWalletsByPage({ page: page + 1 });\n }\n }\n });\n this.paginationObserver.observe(loaderEl);\n }\n }\n onConnectWallet(wallet) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.ConnectorController.selectWalletConnector(wallet);\n }\n};\nW3mAllWalletsList.styles = _styles_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsList.prototype, \"loading\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsList.prototype, \"wallets\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsList.prototype, \"recommended\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsList.prototype, \"featured\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsList.prototype, \"filteredWallets\", void 0);\nW3mAllWalletsList = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)('w3m-all-wallets-list')\n], W3mAllWalletsList);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-all-wallets-list/index.js?")},23882:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n wui-grid,\n wui-loading-spinner,\n wui-flex {\n height: 360px;\n }\n\n wui-grid {\n overflow: scroll;\n scrollbar-width: none;\n grid-auto-rows: min-content;\n grid-template-columns: repeat(auto-fill, 104px);\n }\n\n wui-grid[data-scroll='false'] {\n overflow: hidden;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-spinner {\n justify-content: center;\n align-items: center;\n }\n\n @media (max-width: 350px) {\n wui-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-all-wallets-search/styles.js?")},23904:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mDownloadsView: () => (/* binding */ W3mDownloadsView)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-item */ 84197);\n/* harmony import */ var _reown_appkit_ui_wui_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-text */ 45090);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\nlet W3mDownloadsView = class W3mDownloadsView extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.wallet = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.RouterController.state.data?.wallet;\n }\n render() {\n if (!this.wallet) {\n throw new Error(\'w3m-downloads-view\');\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.chromeTemplate()} ${this.iosTemplate()} ${this.androidTemplate()}\n ${this.homepageTemplate()}\n \n `;\n }\n chromeTemplate() {\n if (!this.wallet?.chrome_store) {\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n Chrome Extension\n `;\n }\n iosTemplate() {\n if (!this.wallet?.app_store) {\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n iOS App\n `;\n }\n androidTemplate() {\n if (!this.wallet?.play_store) {\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n Android App\n `;\n }\n homepageTemplate() {\n if (!this.wallet?.homepage) {\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n Website\n \n `;\n }\n onChromeStore() {\n if (this.wallet?.chrome_store) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.CoreHelperUtil.openHref(this.wallet.chrome_store, \'_blank\');\n }\n }\n onAppStore() {\n if (this.wallet?.app_store) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.CoreHelperUtil.openHref(this.wallet.app_store, \'_blank\');\n }\n }\n onPlayStore() {\n if (this.wallet?.play_store) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.CoreHelperUtil.openHref(this.wallet.play_store, \'_blank\');\n }\n }\n onHomePage() {\n if (this.wallet?.homepage) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.CoreHelperUtil.openHref(this.wallet.homepage, \'_blank\');\n }\n }\n};\nW3mDownloadsView = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_1__.customElement)(\'w3m-downloads-view\')\n], W3mDownloadsView);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-downloads-view/index.js?')},24357:(module,__unused_webpack_exports,__webpack_require__)=>{eval("const Mode = __webpack_require__(/*! ./mode */ 30208)\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/numeric-data.js?")},24379:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectInjectedWidget: () => (/* binding */ W3mConnectInjectedWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\n/* harmony import */ var _utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/ConnectorUtil.js */ 56092);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet W3mConnectInjectedWidget = class W3mConnectInjectedWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.tabIdx = undefined;\n this.connectors = [];\n }\n render() {\n const injectedConnectors = this.connectors.filter(_utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_6__.ConnectorUtil.showConnector);\n if (injectedConnectors.length === 0) {\n this.style.cssText = `display: none`;\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${injectedConnectors.map(connector => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnector(connector)}\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n >\n \n `)}\n \n `;\n }\n onConnector(connector) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.ConnectorController.setActiveConnector(connector);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.RouterController.push(\'ConnectingExternal\', { connector });\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectInjectedWidget.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectInjectedWidget.prototype, "connectors", void 0);\nW3mConnectInjectedWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-connect-injected-widget\')\n], W3mConnectInjectedWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-injected-widget/index.js?')},24861:(module,__unused_webpack_exports,__webpack_require__)=>{eval("const Mode = __webpack_require__(/*! ./mode */ 30208)\nconst Utils = __webpack_require__(/*! ./utils */ 56886)\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/kanji-data.js?")},25822:(module,__unused_webpack_exports,__webpack_require__)=>{eval("const encodeUtf8 = __webpack_require__(/*! encode-utf8 */ 69049)\nconst Mode = __webpack_require__(/*! ./mode */ 30208)\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n if (typeof (data) === 'string') {\n data = encodeUtf8(data)\n }\n this.data = new Uint8Array(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/byte-data.js?")},25882:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n button {\n padding: var(--wui-spacing-4xs) var(--wui-spacing-xxs);\n border-radius: var(--wui-border-radius-3xs);\n background-color: transparent;\n color: var(--wui-color-accent-100);\n }\n\n button:disabled {\n background-color: transparent;\n color: var(--wui-color-gray-glass-015);\n }\n\n button:hover {\n background-color: var(--wui-color-gray-glass-005);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-link/styles.js?')},27512:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ networkSvgMd: () => (/* binding */ networkSvgMd)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\nconst networkSvgMd = (0,lit__WEBPACK_IMPORTED_MODULE_0__.svg) `\n \n`;\n//# sourceMappingURL=networkMd.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/assets/svg/networkMd.js?')},29077:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiGrid: () => (/* reexport safe */ _src_layout_wui_grid_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiGrid)\n/* harmony export */ });\n/* harmony import */ var _src_layout_wui_grid_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/layout/wui-grid/index.js */ 81288);\n\n//# sourceMappingURL=wui-grid.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-grid.js?")},29225:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n margin-top: var(--wui-spacing-3xs);\n }\n wui-separator {\n margin: var(--wui-spacing-m) calc(var(--wui-spacing-m) * -1) var(--wui-spacing-xs)\n calc(var(--wui-spacing-m) * -1);\n width: calc(100% + var(--wui-spacing-s) * 2);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connector-list/styles.js?')},29242:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n position: relative;\n display: inline-block;\n width: 100%;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-search-bar/styles.js?')},29279:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiInputElement: () => (/* binding */ WuiInputElement)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./styles.js */ 93697);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\nlet WuiInputElement = class WuiInputElement extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.icon = \'copy\';\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n};\nWuiInputElement.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_3__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_3__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_5__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputElement.prototype, "icon", void 0);\nWuiInputElement = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_4__.customElement)(\'wui-input-element\')\n], WuiInputElement);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-input-element/index.js?')},29801:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const Mode = __webpack_require__(/*! ./mode */ 30208)\nconst NumericData = __webpack_require__(/*! ./numeric-data */ 24357)\nconst AlphanumericData = __webpack_require__(/*! ./alphanumeric-data */ 11433)\nconst ByteData = __webpack_require__(/*! ./byte-data */ 25822)\nconst KanjiData = __webpack_require__(/*! ./kanji-data */ 24861)\nconst Regex = __webpack_require__(/*! ./regex */ 67044)\nconst Utils = __webpack_require__(/*! ./utils */ 56886)\nconst dijkstra = __webpack_require__(/*! dijkstrajs */ 76320)\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/segments.js?")},30208:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const VersionCheck = __webpack_require__(/*! ./version-check */ 21878)\nconst Regex = __webpack_require__(/*! ./regex */ 67044)\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/mode.js?")},31427:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const Utils = __webpack_require__(/*! ./utils */ 56886)\nconst ECCode = __webpack_require__(/*! ./error-correction-code */ 97518)\nconst ECLevel = __webpack_require__(/*! ./error-correction-level */ 49953)\nconst Mode = __webpack_require__(/*! ./mode */ 30208)\nconst VersionCheck = __webpack_require__(/*! ./version-check */ 21878)\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/version.js?")},32985:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRef: () => (/* binding */ createRef),\n/* harmony export */ ref: () => (/* binding */ ref)\n/* harmony export */ });\n/* harmony import */ var _lit_html_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lit-html.js */ 73464);\n/* harmony import */ var _async_directive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../async-directive.js */ 77057);\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n\n/**\n * Creates a new Ref object, which is container for a reference to an element.\n */\nconst createRef = () => new Ref();\n/**\n * An object that holds a ref value.\n */\nclass Ref {\n}\n// When callbacks are used for refs, this map tracks the last value the callback\n// was called with, for ensuring a directive doesn't clear the ref if the ref\n// has already been rendered to a new spot. It is double-keyed on both the\n// context (`options.host`) and the callback, since we auto-bind class methods\n// to `options.host`.\nconst lastElementForContextAndCallback = new WeakMap();\nclass RefDirective extends _async_directive_js__WEBPACK_IMPORTED_MODULE_1__.AsyncDirective {\n render(_ref) {\n return _lit_html_js__WEBPACK_IMPORTED_MODULE_0__.nothing;\n }\n update(part, [ref]) {\n const refChanged = ref !== this._ref;\n if (refChanged && this._ref !== undefined) {\n // The ref passed to the directive has changed;\n // unset the previous ref's value\n this._updateRefValue(undefined);\n }\n if (refChanged || this._lastElementForRef !== this._element) {\n // We either got a new ref or this is the first render;\n // store the ref/element & update the ref value\n this._ref = ref;\n this._context = part.options?.host;\n this._updateRefValue((this._element = part.element));\n }\n return _lit_html_js__WEBPACK_IMPORTED_MODULE_0__.nothing;\n }\n _updateRefValue(element) {\n if (!this.isConnected) {\n element = undefined;\n }\n if (typeof this._ref === 'function') {\n // If the current ref was called with a previous value, call with\n // `undefined`; We do this to ensure callbacks are called in a consistent\n // way regardless of whether a ref might be moving up in the tree (in\n // which case it would otherwise be called with the new value before the\n // previous one unsets it) and down in the tree (where it would be unset\n // before being set). Note that element lookup is keyed by\n // both the context and the callback, since we allow passing unbound\n // functions that are called on options.host, and we want to treat\n // these as unique \"instances\" of a function.\n const context = this._context ?? globalThis;\n let lastElementForCallback = lastElementForContextAndCallback.get(context);\n if (lastElementForCallback === undefined) {\n lastElementForCallback = new WeakMap();\n lastElementForContextAndCallback.set(context, lastElementForCallback);\n }\n if (lastElementForCallback.get(this._ref) !== undefined) {\n this._ref.call(this._context, undefined);\n }\n lastElementForCallback.set(this._ref, element);\n // Call the ref with the new element value\n if (element !== undefined) {\n this._ref.call(this._context, element);\n }\n }\n else {\n this._ref.value = element;\n }\n }\n get _lastElementForRef() {\n return typeof this._ref === 'function'\n ? lastElementForContextAndCallback\n .get(this._context ?? globalThis)\n ?.get(this._ref)\n : this._ref?.value;\n }\n disconnected() {\n // Only clear the box if our element is still the one in it (i.e. another\n // directive instance hasn't rendered its element to it before us); that\n // only happens in the event of the directive being cleared (not via manual\n // disconnection)\n if (this._lastElementForRef === this._element) {\n this._updateRefValue(undefined);\n }\n }\n reconnected() {\n // If we were manually disconnected, we can safely put our element back in\n // the box, since no rendering could have occurred to change its state\n this._updateRefValue(this._element);\n }\n}\n/**\n * Sets the value of a Ref object or calls a ref callback with the element it's\n * bound to.\n *\n * A Ref object acts as a container for a reference to an element. A ref\n * callback is a function that takes an element as its only argument.\n *\n * The ref directive sets the value of the Ref object or calls the ref callback\n * during rendering, if the referenced element changed.\n *\n * Note: If a ref callback is rendered to a different element position or is\n * removed in a subsequent render, it will first be called with `undefined`,\n * followed by another call with the new element it was rendered to (if any).\n *\n * ```js\n * // Using Ref object\n * const inputRef = createRef();\n * render(html``, container);\n * inputRef.value.focus();\n *\n * // Using callback\n * const callback = (inputElement) => inputElement.focus();\n * render(html``, container);\n * ```\n */\nconst ref = (0,_async_directive_js__WEBPACK_IMPORTED_MODULE_1__.directive)(RefDirective);\n//# sourceMappingURL=ref.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/node_modules/lit-html/development/directives/ref.js?")},34606:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcUnsupported: () => (/* binding */ W3mConnectingWcUnsupported)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-text */ 45090);\n/* harmony import */ var _reown_appkit_ui_wui_wallet_image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-wallet-image */ 41684);\n/* harmony import */ var _w3m_mobile_download_links_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../w3m-mobile-download-links/index.js */ 46578);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet W3mConnectingWcUnsupported = class W3mConnectingWcUnsupported extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.wallet = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.RouterController.state.data?.wallet;\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-unsupported: No wallet provided');\n }\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'browser' }\n });\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n\n Not Detected\n \n\n \n `;\n }\n};\nW3mConnectingWcUnsupported = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.customElement)('w3m-connecting-wc-unsupported')\n], W3mConnectingWcUnsupported);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-wc-unsupported/index.js?")},35090:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiShimmer: () => (/* reexport safe */ _src_components_wui_shimmer_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiShimmer)\n/* harmony export */ });\n/* harmony import */ var _src_components_wui_shimmer_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/components/wui-shimmer/index.js */ 39166);\n\n//# sourceMappingURL=wui-shimmer.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-shimmer.js?")},35887:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mAllWalletsView: () => (/* binding */ W3mAllWalletsView)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @reown/appkit-controllers */ 21871);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_certified_switch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-certified-switch */ 36713);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_icon_box__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-ui/wui-icon-box */ 77616);\n/* harmony import */ var _reown_appkit_ui_wui_search_bar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-ui/wui-search-bar */ 79573);\n/* harmony import */ var _partials_w3m_all_wallets_list_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../partials/w3m-all-wallets-list/index.js */ 22378);\n/* harmony import */ var _partials_w3m_all_wallets_search_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../partials/w3m-all-wallets-search/index.js */ 91382);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\nlet W3mAllWalletsView = class W3mAllWalletsView extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.search = \'\';\n this.onDebouncedSearch = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.CoreHelperUtil.debounce((value) => {\n this.search = value;\n });\n }\n render() {\n const isSearch = this.search.length >= 2;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n \n ${this.qrButtonTemplate()}\n \n ${isSearch || this.badge\n ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``\n : (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``}\n `;\n }\n onInputChange(event) {\n this.onDebouncedSearch(event.detail);\n }\n onClick() {\n if (this.badge === \'certified\') {\n this.badge = undefined;\n return;\n }\n this.badge = \'certified\';\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.SnackController.showSvg(\'Only WalletConnect certified\', {\n icon: \'walletConnectBrown\',\n iconColor: \'accent-100\'\n });\n }\n qrButtonTemplate() {\n if (_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.CoreHelperUtil.isMobile()) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n return null;\n }\n onWalletConnectQr() {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.RouterController.push(\'ConnectingWalletConnect\');\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsView.prototype, "search", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsView.prototype, "badge", void 0);\nW3mAllWalletsView = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-all-wallets-view\')\n], W3mAllWalletsView);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-all-wallets-view/index.js?')},35995:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n display: block;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n background: linear-gradient(\n 120deg,\n var(--wui-color-bg-200) 5%,\n var(--wui-color-bg-200) 48%,\n var(--wui-color-bg-300) 55%,\n var(--wui-color-bg-300) 60%,\n var(--wui-color-bg-300) calc(60% + 10px),\n var(--wui-color-bg-200) calc(60% + 12px),\n var(--wui-color-bg-200) 100%\n );\n background-size: 250%;\n animation: shimmer 3s linear infinite reverse;\n }\n\n :host([variant='light']) {\n background: linear-gradient(\n 120deg,\n var(--wui-color-bg-150) 5%,\n var(--wui-color-bg-150) 48%,\n var(--wui-color-bg-200) 55%,\n var(--wui-color-bg-200) 60%,\n var(--wui-color-bg-200) calc(60% + 10px),\n var(--wui-color-bg-150) calc(60% + 12px),\n var(--wui-color-bg-150) 100%\n );\n background-size: 250%;\n }\n\n @keyframes shimmer {\n from {\n background-position: -250% 0;\n }\n to {\n background-position: 250% 0;\n }\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/components/wui-shimmer/styles.js?")},36078:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiUxByReown: () => (/* reexport safe */ _src_composites_wui_ux_by_reown_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiUxByReown)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_ux_by_reown_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-ux-by-reown/index.js */ 87445);\n\n//# sourceMappingURL=wui-ux-by-reown.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-ux-by-reown.js?")},36713:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiCertifiedSwitch: () => (/* reexport safe */ _src_composites_wui_certified_switch_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiCertifiedSwitch)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_certified_switch_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-certified-switch/index.js */ 54618);\n\n//# sourceMappingURL=wui-certified-switch.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-certified-switch.js?")},39159:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingHeader: () => (/* binding */ W3mConnectingHeader)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_tabs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-tabs */ 87713);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\nlet W3mConnectingHeader = class W3mConnectingHeader extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.platformTabs = [];\n this.unsubscribe = [];\n this.platforms = [];\n this.onSelectPlatfrom = undefined;\n }\n disconnectCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const tabs = this.generateTabs();\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n \n `;\n }\n generateTabs() {\n const tabs = this.platforms.map(platform => {\n if (platform === 'browser') {\n return { label: 'Browser', icon: 'extension', platform: 'browser' };\n }\n else if (platform === 'mobile') {\n return { label: 'Mobile', icon: 'mobile', platform: 'mobile' };\n }\n else if (platform === 'qrcode') {\n return { label: 'Mobile', icon: 'mobile', platform: 'qrcode' };\n }\n else if (platform === 'web') {\n return { label: 'Webapp', icon: 'browser', platform: 'web' };\n }\n else if (platform === 'desktop') {\n return { label: 'Desktop', icon: 'desktop', platform: 'desktop' };\n }\n return { label: 'Browser', icon: 'extension', platform: 'unsupported' };\n });\n this.platformTabs = tabs.map(({ platform }) => platform);\n return tabs;\n }\n onTabChange(index) {\n const tab = this.platformTabs[index];\n if (tab) {\n this.onSelectPlatfrom?.(tab);\n }\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Array })\n], W3mConnectingHeader.prototype, \"platforms\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectingHeader.prototype, \"onSelectPlatfrom\", void 0);\nW3mConnectingHeader = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.customElement)('w3m-connecting-header')\n], W3mConnectingHeader);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-header/index.js?")},39166:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiShimmer: () => (/* binding */ WuiShimmer)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./styles.js */ 35995);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\nlet WuiShimmer = class WuiShimmer extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.width = \'\';\n this.height = \'\';\n this.borderRadius = \'m\';\n this.variant = \'default\';\n }\n render() {\n this.style.cssText = `\n width: ${this.width};\n height: ${this.height};\n border-radius: ${`clamp(0px,var(--wui-border-radius-${this.borderRadius}), 40px)`};\n `;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n};\nWuiShimmer.styles = [_styles_js__WEBPACK_IMPORTED_MODULE_3__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiShimmer.prototype, "width", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiShimmer.prototype, "height", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiShimmer.prototype, "borderRadius", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiShimmer.prototype, "variant", void 0);\nWuiShimmer = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_2__.customElement)(\'wui-shimmer\')\n], WuiShimmer);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/components/wui-shimmer/index.js?')},39537:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcQrcode: () => (/* binding */ W3mConnectingWcQrcode)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @reown/appkit-controllers */ 68996);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-icon */ 51636);\n/* harmony import */ var _reown_appkit_ui_wui_link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-link */ 44373);\n/* harmony import */ var _reown_appkit_ui_wui_qr_code__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-ui/wui-qr-code */ 51178);\n/* harmony import */ var _reown_appkit_ui_wui_shimmer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-ui/wui-shimmer */ 35090);\n/* harmony import */ var _reown_appkit_ui_wui_text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-ui/wui-text */ 45090);\n/* harmony import */ var _reown_appkit_ui_wui_ux_by_reown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-ui/wui-ux-by-reown */ 36078);\n/* harmony import */ var _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils/w3m-connecting-widget/index.js */ 16909);\n/* harmony import */ var _w3m_mobile_download_links_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../w3m-mobile-download-links/index.js */ 46578);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./styles.js */ 64187);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet W3mConnectingWcQrcode = class W3mConnectingWcQrcode extends _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_10__.W3mConnectingWidget {\n constructor() {\n super();\n this.forceUpdate = () => {\n this.requestUpdate();\n };\n window.addEventListener(\'resize\', this.forceUpdate);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.EventsController.sendEvent({\n type: \'track\',\n event: \'SELECT_WALLET\',\n properties: { name: this.wallet?.name ?? \'WalletConnect\', platform: \'qrcode\' }\n });\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.unsubscribe?.forEach(unsub => unsub());\n window.removeEventListener(\'resize\', this.forceUpdate);\n }\n render() {\n this.onRenderProxy();\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.qrCodeTemplate()} \n\n \n Scan this QR Code with your phone\n \n ${this.copyTemplate()}\n \n \n `;\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.timeout = setTimeout(() => {\n this.ready = true;\n }, 200);\n }\n }\n qrCodeTemplate() {\n if (!this.uri || !this.ready) {\n return null;\n }\n const size = this.getBoundingClientRect().width - 40;\n const alt = this.wallet ? this.wallet.name : undefined;\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__.ConnectionController.setWcLinking(undefined);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__.ConnectionController.setRecentWallet(this.wallet);\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ` `;\n }\n copyTemplate() {\n const inactive = !this.uri || !this.ready;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n Copy link\n `;\n }\n};\nW3mConnectingWcQrcode.styles = _styles_js__WEBPACK_IMPORTED_MODULE_12__["default"];\nW3mConnectingWcQrcode = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.customElement)(\'w3m-connecting-wc-qrcode\')\n], W3mConnectingWcQrcode);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-wc-qrcode/index.js?')},40880:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiLoadingThumbnail: () => (/* reexport safe */ _src_components_wui_loading_thumbnail_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiLoadingThumbnail)\n/* harmony export */ });\n/* harmony import */ var _src_components_wui_loading_thumbnail_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/components/wui-loading-thumbnail/index.js */ 55271);\n\n//# sourceMappingURL=wui-loading-thumbnail.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-loading-thumbnail.js?")},41684:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiWalletImage: () => (/* reexport safe */ _src_composites_wui_wallet_image_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiWalletImage)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_wallet_image_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-wallet-image/index.js */ 60259);\n\n//# sourceMappingURL=wui-wallet-image.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-wallet-image.js?")},44373:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiLink: () => (/* reexport safe */ _src_composites_wui_link_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiLink)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_link_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-link/index.js */ 69350);\n\n//# sourceMappingURL=wui-link.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-link.js?")},44630:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiInputText: () => (/* binding */ WuiInputText)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var lit_directives_class_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/class-map.js */ 55721);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lit/directives/if-defined.js */ 73380);\n/* harmony import */ var lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lit/directives/ref.js */ 20411);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./styles.js */ 18762);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\nlet WuiInputText = class WuiInputText extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.inputElementRef = (0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_4__.createRef)();\n this.size = \'md\';\n this.disabled = false;\n this.placeholder = \'\';\n this.type = \'text\';\n this.value = \'\';\n }\n render() {\n const inputClass = `wui-padding-right-${this.inputRightPadding}`;\n const sizeClass = `wui-size-${this.size}`;\n const classes = {\n [sizeClass]: true,\n [inputClass]: Boolean(this.inputRightPadding)\n };\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `${this.templateIcon()}\n \n `;\n }\n templateIcon() {\n if (this.icon) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return null;\n }\n dispatchInputChangeEvent() {\n this.dispatchEvent(new CustomEvent(\'inputChange\', {\n detail: this.inputElementRef.value?.value,\n bubbles: true,\n composed: true\n }));\n }\n};\nWuiInputText.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_6__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_6__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_8__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "size", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "icon", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiInputText.prototype, "disabled", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "placeholder", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "type", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "keyHint", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "value", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "inputRightPadding", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiInputText.prototype, "tabIdx", void 0);\nWuiInputText = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_7__.customElement)(\'wui-input-text\')\n], WuiInputText);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-input-text/index.js?')},45186:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcView: () => (/* binding */ W3mConnectingWcView)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @reown/appkit-controllers */ 57019);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @reown/appkit-controllers */ 96396);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @reown/appkit-controllers */ 21871);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @reown/appkit-controllers */ 6056);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _partials_w3m_connecting_header_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../partials/w3m-connecting-header/index.js */ 39159);\n/* harmony import */ var _partials_w3m_connecting_wc_browser_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../partials/w3m-connecting-wc-browser/index.js */ 14873);\n/* harmony import */ var _partials_w3m_connecting_wc_desktop_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../partials/w3m-connecting-wc-desktop/index.js */ 70777);\n/* harmony import */ var _partials_w3m_connecting_wc_mobile_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../partials/w3m-connecting-wc-mobile/index.js */ 69037);\n/* harmony import */ var _partials_w3m_connecting_wc_qrcode_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../partials/w3m-connecting-wc-qrcode/index.js */ 39537);\n/* harmony import */ var _partials_w3m_connecting_wc_unsupported_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../partials/w3m-connecting-wc-unsupported/index.js */ 34606);\n/* harmony import */ var _partials_w3m_connecting_wc_web_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../partials/w3m-connecting-wc-web/index.js */ 77463);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\nlet W3mConnectingWcView = class W3mConnectingWcView extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.wallet = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.RouterController.state.data?.wallet;\n this.unsubscribe = [];\n this.platform = undefined;\n this.platforms = [];\n this.isSiwxEnabled = Boolean(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.OptionsController.state.siwx);\n this.remoteFeatures = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.OptionsController.state.remoteFeatures;\n this.determinePlatforms();\n this.initializeConnection();\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.OptionsController.subscribeKey('remoteFeatures', val => (this.remoteFeatures = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n ${this.headerTemplate()}\n
${this.platformTemplate()}
\n ${this.reownBrandingTemplate()}\n `;\n }\n reownBrandingTemplate() {\n if (!this.remoteFeatures?.reownBranding) {\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n async initializeConnection(retry = false) {\n if (this.platform === 'browser' || (_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.OptionsController.state.manualWCControl && !retry)) {\n return;\n }\n try {\n const { wcPairingExpiry, status } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.ConnectionController.state;\n if (retry ||\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.OptionsController.state.enableEmbedded ||\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.CoreHelperUtil.isPairingExpired(wcPairingExpiry) ||\n status === 'connecting') {\n await _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.ConnectionController.connectWalletConnect();\n if (!this.isSiwxEnabled) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_14__.ModalController.close();\n }\n }\n }\n catch (error) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_15__.EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_ERROR',\n properties: { message: error?.message ?? 'Unknown' }\n });\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.ConnectionController.setWcError(true);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__.SnackController.showError(error.message ?? 'Connection error');\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.ConnectionController.resetWcConnection();\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.RouterController.goBack();\n }\n }\n determinePlatforms() {\n if (!this.wallet) {\n this.platforms.push('qrcode');\n this.platform = 'qrcode';\n return;\n }\n if (this.platform) {\n return;\n }\n const { mobile_link, desktop_link, webapp_link, injected, rdns } = this.wallet;\n const injectedIds = injected?.map(({ injected_id }) => injected_id).filter(Boolean);\n const browserIds = [...(rdns ? [rdns] : (injectedIds ?? []))];\n const isBrowser = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.OptionsController.state.isUniversalProvider ? false : browserIds.length;\n const hasMobileWCLink = mobile_link;\n const isWebWc = webapp_link;\n const isBrowserInstalled = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.ConnectionController.checkInstalled(browserIds);\n const isBrowserWc = isBrowser && isBrowserInstalled;\n const isDesktopWc = desktop_link && !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.CoreHelperUtil.isMobile();\n if (isBrowserWc && !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__.ChainController.state.noAdapters) {\n this.platforms.push('browser');\n }\n if (hasMobileWCLink) {\n this.platforms.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.CoreHelperUtil.isMobile() ? 'mobile' : 'qrcode');\n }\n if (isWebWc) {\n this.platforms.push('web');\n }\n if (isDesktopWc) {\n this.platforms.push('desktop');\n }\n if (!isBrowserWc && isBrowser && !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__.ChainController.state.noAdapters) {\n this.platforms.push('unsupported');\n }\n this.platform = this.platforms[0];\n }\n platformTemplate() {\n switch (this.platform) {\n case 'browser':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n case 'web':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n case 'desktop':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.initializeConnection(true)}>\n \n `;\n case 'mobile':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.initializeConnection(true)}>\n \n `;\n case 'qrcode':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n default:\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n }\n headerTemplate() {\n const multiPlatform = this.platforms.length > 1;\n if (!multiPlatform) {\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n `;\n }\n async onSelectPlatform(platform) {\n const container = this.shadowRoot?.querySelector('div');\n if (container) {\n await container.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.platform = platform;\n container.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWcView.prototype, \"platform\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWcView.prototype, \"platforms\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWcView.prototype, \"isSiwxEnabled\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWcView.prototype, \"remoteFeatures\", void 0);\nW3mConnectingWcView = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.customElement)('w3m-connecting-wc-view')\n], W3mConnectingWcView);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-connecting-wc-view/index.js?")},45574:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n position: relative;\n border-radius: var(--wui-border-radius-xxs);\n width: 40px;\n height: 40px;\n overflow: hidden;\n background: var(--wui-color-gray-glass-002);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--wui-spacing-4xs);\n padding: 3.75px !important;\n }\n\n :host::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n border: 1px solid var(--wui-color-gray-glass-010);\n pointer-events: none;\n }\n\n :host > wui-wallet-image {\n width: 14px;\n height: 14px;\n border-radius: var(--wui-border-radius-5xs);\n }\n\n :host > wui-flex {\n padding: 2px;\n position: fixed;\n overflow: hidden;\n left: 34px;\n bottom: 8px;\n background: var(--dark-background-150, #1e1f1f);\n border-radius: 50%;\n z-index: 2;\n display: flex;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-all-wallets-image/styles.js?")},45595:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 104px;\n row-gap: var(--wui-spacing-xs);\n padding: var(--wui-spacing-xs) 10px;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: clamp(0px, var(--wui-border-radius-xs), 20px);\n position: relative;\n }\n\n wui-shimmer[data-type='network'] {\n border: none;\n -webkit-clip-path: var(--wui-path-network);\n clip-path: var(--wui-path-network);\n }\n\n svg {\n position: absolute;\n width: 48px;\n height: 54px;\n z-index: 1;\n }\n\n svg > path {\n stroke: var(--wui-color-gray-glass-010);\n stroke-width: 1px;\n }\n\n @media (max-width: 350px) {\n :host {\n width: 100%;\n }\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-card-select-loader/styles.js?")},46578:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mMobileDownloadLinks: () => (/* binding */ W3mMobileDownloadLinks)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_cta_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-cta-button */ 67008);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./styles.js */ 80046);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\nlet W3mMobileDownloadLinks = class W3mMobileDownloadLinks extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.wallet = undefined;\n }\n render() {\n if (!this.wallet) {\n this.style.display = 'none';\n return null;\n }\n const { name, app_store, play_store, chrome_store, homepage } = this.wallet;\n const isMobile = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.CoreHelperUtil.isMobile();\n const isIos = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.CoreHelperUtil.isIos();\n const isAndroid = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.CoreHelperUtil.isAndroid();\n const isMultiple = [app_store, play_store, homepage, chrome_store].filter(Boolean).length > 1;\n const shortName = _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.UiHelperUtil.getTruncateString({\n string: name,\n charsStart: 12,\n charsEnd: 0,\n truncate: 'end'\n });\n if (isMultiple && !isMobile) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.RouterController.push('Downloads', { wallet: this.wallet })}\n >\n `;\n }\n if (!isMultiple && homepage) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n if (app_store && isIos) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n if (play_store && isAndroid) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n this.style.display = 'none';\n return null;\n }\n onAppStore() {\n if (this.wallet?.app_store) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.CoreHelperUtil.openHref(this.wallet.app_store, '_blank');\n }\n }\n onPlayStore() {\n if (this.wallet?.play_store) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.CoreHelperUtil.openHref(this.wallet.play_store, '_blank');\n }\n }\n onHomePage() {\n if (this.wallet?.homepage) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.CoreHelperUtil.openHref(this.wallet.homepage, '_blank');\n }\n }\n};\nW3mMobileDownloadLinks.styles = [_styles_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Object })\n], W3mMobileDownloadLinks.prototype, \"wallet\", void 0);\nW3mMobileDownloadLinks = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.customElement)('w3m-mobile-download-links')\n], W3mMobileDownloadLinks);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-mobile-download-links/index.js?")},46901:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ifDefined: () => (/* binding */ ifDefined)\n/* harmony export */ });\n/* harmony import */ var _lit_html_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lit-html.js */ 73464);\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * For AttributeParts, sets the attribute if the value is defined and removes\n * the attribute if the value is undefined.\n *\n * For other part types, this directive is a no-op.\n */\nconst ifDefined = (value) => value ?? _lit_html_js__WEBPACK_IMPORTED_MODULE_0__.nothing;\n//# sourceMappingURL=if-defined.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/node_modules/lit-html/development/directives/if-defined.js?")},46929:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiCardSelectLoader: () => (/* binding */ WuiCardSelectLoader)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _assets_svg_networkMd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../assets/svg/networkMd.js */ 27512);\n/* harmony import */ var _components_wui_shimmer_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-shimmer/index.js */ 39166);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.js */ 45595);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet WuiCardSelectLoader = class WuiCardSelectLoader extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.type = \'wallet\';\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n ${this.shimmerTemplate()}\n \n `;\n }\n shimmerTemplate() {\n if (this.type === \'network\') {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ` \n ${_assets_svg_networkMd_js__WEBPACK_IMPORTED_MODULE_2__.networkSvgMd}`;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n};\nWuiCardSelectLoader.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_6__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiCardSelectLoader.prototype, "type", void 0);\nWuiCardSelectLoader = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__.customElement)(\'wui-card-select-loader\')\n], WuiCardSelectLoader);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-card-select-loader/index.js?')},47899:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const Utils = __webpack_require__(/*! ./utils */ 92726)\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/renderer/canvas.js?")},49953:(__unused_webpack_module,exports)=>{eval("exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/error-correction-level.js?")},50502:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectExternalWidget: () => (/* binding */ W3mConnectExternalWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-common */ 24376);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\n/* harmony import */ var _utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/ConnectorUtil.js */ 56092);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\nlet W3mConnectExternalWidget = class W3mConnectExternalWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.state.connectors;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.subscribeKey(\'connectors\', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const externalConnectors = this.connectors.filter(connector => connector.type === \'EXTERNAL\');\n const filteredOutExcludedConnectors = externalConnectors.filter(_utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_6__.ConnectorUtil.showConnector);\n const filteredOutCoinbaseConnectors = filteredOutExcludedConnectors.filter(connector => connector.id !== _reown_appkit_common__WEBPACK_IMPORTED_MODULE_8__.ConstantsUtil.CONNECTOR_ID.COINBASE_SDK);\n if (!filteredOutCoinbaseConnectors?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${filteredOutCoinbaseConnectors.map(connector => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnector(connector)}\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n >\n \n `)}\n \n `;\n }\n onConnector(connector) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.RouterController.push(\'ConnectingExternal\', { connector });\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectExternalWidget.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectExternalWidget.prototype, "connectors", void 0);\nW3mConnectExternalWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-connect-external-widget\')\n], W3mConnectExternalWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-external-widget/index.js?')},50530:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n width: var(--local-width);\n position: relative;\n }\n\n button {\n border: none;\n border-radius: var(--local-border-radius);\n width: var(--local-width);\n white-space: nowrap;\n }\n\n /* -- Sizes --------------------------------------------------- */\n button[data-size='md'] {\n padding: 8.2px var(--wui-spacing-l) 9px var(--wui-spacing-l);\n height: 36px;\n }\n\n button[data-size='md'][data-icon-left='true'][data-icon-right='false'] {\n padding: 8.2px var(--wui-spacing-l) 9px var(--wui-spacing-s);\n }\n\n button[data-size='md'][data-icon-right='true'][data-icon-left='false'] {\n padding: 8.2px var(--wui-spacing-s) 9px var(--wui-spacing-l);\n }\n\n button[data-size='lg'] {\n padding: var(--wui-spacing-m) var(--wui-spacing-2l);\n height: 48px;\n }\n\n /* -- Variants --------------------------------------------------------- */\n button[data-variant='main'] {\n background-color: var(--wui-color-accent-100);\n color: var(--wui-color-inverse-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='inverse'] {\n background-color: var(--wui-color-inverse-100);\n color: var(--wui-color-inverse-000);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='accent'] {\n background-color: var(--wui-color-accent-glass-010);\n color: var(--wui-color-accent-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n button[data-variant='accent-error'] {\n background: var(--wui-color-error-glass-015);\n color: var(--wui-color-error-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-error-glass-010);\n }\n\n button[data-variant='accent-success'] {\n background: var(--wui-color-success-glass-015);\n color: var(--wui-color-success-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-success-glass-010);\n }\n\n button[data-variant='neutral'] {\n background: transparent;\n color: var(--wui-color-fg-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n /* -- Focus states --------------------------------------------------- */\n button[data-variant='main']:focus-visible:enabled {\n background-color: var(--wui-color-accent-090);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0 0 0 4px var(--wui-color-accent-glass-020);\n }\n button[data-variant='inverse']:focus-visible:enabled {\n background-color: var(--wui-color-inverse-100);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-gray-glass-010),\n 0 0 0 4px var(--wui-color-accent-glass-020);\n }\n button[data-variant='accent']:focus-visible:enabled {\n background-color: var(--wui-color-accent-glass-010);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0 0 0 4px var(--wui-color-accent-glass-020);\n }\n button[data-variant='accent-error']:focus-visible:enabled {\n background: var(--wui-color-error-glass-015);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-error-100),\n 0 0 0 4px var(--wui-color-error-glass-020);\n }\n button[data-variant='accent-success']:focus-visible:enabled {\n background: var(--wui-color-success-glass-015);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-success-100),\n 0 0 0 4px var(--wui-color-success-glass-020);\n }\n button[data-variant='neutral']:focus-visible:enabled {\n background: var(--wui-color-gray-glass-005);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-gray-glass-010),\n 0 0 0 4px var(--wui-color-gray-glass-002);\n }\n\n /* -- Hover & Active states ----------------------------------------------------------- */\n @media (hover: hover) and (pointer: fine) {\n button[data-variant='main']:hover:enabled {\n background-color: var(--wui-color-accent-090);\n }\n\n button[data-variant='main']:active:enabled {\n background-color: var(--wui-color-accent-080);\n }\n\n button[data-variant='accent']:hover:enabled {\n background-color: var(--wui-color-accent-glass-015);\n }\n\n button[data-variant='accent']:active:enabled {\n background-color: var(--wui-color-accent-glass-020);\n }\n\n button[data-variant='accent-error']:hover:enabled {\n background: var(--wui-color-error-glass-020);\n color: var(--wui-color-error-100);\n }\n\n button[data-variant='accent-error']:active:enabled {\n background: var(--wui-color-error-glass-030);\n color: var(--wui-color-error-100);\n }\n\n button[data-variant='accent-success']:hover:enabled {\n background: var(--wui-color-success-glass-020);\n color: var(--wui-color-success-100);\n }\n\n button[data-variant='accent-success']:active:enabled {\n background: var(--wui-color-success-glass-030);\n color: var(--wui-color-success-100);\n }\n\n button[data-variant='neutral']:hover:enabled {\n background: var(--wui-color-gray-glass-002);\n }\n\n button[data-variant='neutral']:active:enabled {\n background: var(--wui-color-gray-glass-005);\n }\n\n button[data-size='lg'][data-icon-left='true'][data-icon-right='false'] {\n padding-left: var(--wui-spacing-m);\n }\n\n button[data-size='lg'][data-icon-right='true'][data-icon-left='false'] {\n padding-right: var(--wui-spacing-m);\n }\n }\n\n /* -- Disabled state --------------------------------------------------- */\n button:disabled {\n background-color: var(--wui-color-gray-glass-002);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n color: var(--wui-color-gray-glass-020);\n cursor: not-allowed;\n }\n\n button > wui-text {\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n opacity: var(--local-opacity-100);\n }\n\n ::slotted(*) {\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n opacity: var(--local-opacity-100);\n }\n\n wui-loading-spinner {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n opacity: var(--local-opacity-000);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-button/styles.js?")},51178:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiQrCode: () => (/* reexport safe */ _src_composites_wui_qr_code_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiQrCode)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_qr_code_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-qr-code/index.js */ 65153);\n\n//# sourceMappingURL=wui-qr-code.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-qr-code.js?")},53430:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiSwitch: () => (/* binding */ WuiSwitch)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 73380);\n/* harmony import */ var lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lit/directives/ref.js */ 20411);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.js */ 17290);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet WuiSwitch = class WuiSwitch extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.inputElementRef = (0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_3__.createRef)();\n this.checked = undefined;\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n dispatchChangeEvent() {\n this.dispatchEvent(new CustomEvent(\'switchChange\', {\n detail: this.inputElementRef.value?.checked,\n bubbles: true,\n composed: true\n }));\n }\n};\nWuiSwitch.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.elementStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.colorStyles, _styles_js__WEBPACK_IMPORTED_MODULE_6__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiSwitch.prototype, "checked", void 0);\nWuiSwitch = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__.customElement)(\'wui-switch\')\n], WuiSwitch);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-switch/index.js?')},53554:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectCustomWidget: () => (/* binding */ W3mConnectCustomWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 57019);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @reown/appkit-controllers */ 27508);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet W3mConnectCustomWidget = class W3mConnectCustomWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ConnectorController.state.connectors;\n this.loading = false;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n if (_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.CoreHelperUtil.isTelegram() && _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.CoreHelperUtil.isIos()) {\n this.loading = !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.ConnectionController.state.wcUri;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.ConnectionController.subscribeKey('wcUri', val => (this.loading = !val)));\n }\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { customWallets } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.OptionsController.state;\n if (!customWallets?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n const wallets = this.filterOutDuplicateWallets(customWallets);\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n ${wallets.map(wallet => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnectWallet(wallet)}\n data-testid=${`wallet-selector-${wallet.id}`}\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n ?loading=${this.loading}\n >\n \n `)}\n `;\n }\n filterOutDuplicateWallets(wallets) {\n const recent = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.StorageUtil.getRecentWallets();\n const connectorRDNSs = this.connectors\n .map(connector => connector.info?.rdns)\n .filter(Boolean);\n const recentRDNSs = recent.map(wallet => wallet.rdns).filter(Boolean);\n const allRDNSs = connectorRDNSs.concat(recentRDNSs);\n if (allRDNSs.includes('io.metamask.mobile') && _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.CoreHelperUtil.isMobile()) {\n const index = allRDNSs.indexOf('io.metamask.mobile');\n allRDNSs[index] = 'io.metamask';\n }\n const filtered = wallets.filter(wallet => !allRDNSs.includes(String(wallet?.rdns)));\n return filtered;\n }\n onConnectWallet(wallet) {\n if (this.loading) {\n return;\n }\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.RouterController.push('ConnectingWalletConnect', { wallet });\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectCustomWidget.prototype, \"tabIdx\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectCustomWidget.prototype, \"connectors\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectCustomWidget.prototype, \"loading\", void 0);\nW3mConnectCustomWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)('w3m-connect-custom-widget')\n], W3mConnectCustomWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-custom-widget/index.js?")},53834:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n button {\n column-gap: var(--wui-spacing-s);\n padding: 11px 18px 11px var(--wui-spacing-s);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-250);\n transition:\n color var(--wui-ease-out-power-1) var(--wui-duration-md),\n background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: color, background-color;\n }\n\n button[data-iconvariant='square'],\n button[data-iconvariant='square-blue'] {\n padding: 6px 18px 6px 9px;\n }\n\n button > wui-flex {\n flex: 1;\n }\n\n button > wui-image {\n width: 32px;\n height: 32px;\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n border-radius: var(--wui-border-radius-3xl);\n }\n\n button > wui-icon {\n width: 36px;\n height: 36px;\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n }\n\n button > wui-icon-box[data-variant='blue'] {\n box-shadow: 0 0 0 2px var(--wui-color-accent-glass-005);\n }\n\n button > wui-icon-box[data-variant='overlay'] {\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n }\n\n button > wui-icon-box[data-variant='square-blue'] {\n border-radius: var(--wui-border-radius-3xs);\n position: relative;\n border: none;\n width: 36px;\n height: 36px;\n }\n\n button > wui-icon-box[data-variant='square-blue']::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n border: 1px solid var(--wui-color-accent-glass-010);\n pointer-events: none;\n }\n\n button > wui-icon:last-child {\n width: 14px;\n height: 14px;\n }\n\n button:disabled {\n color: var(--wui-color-gray-glass-020);\n }\n\n button[data-loading='true'] > wui-icon {\n opacity: 0;\n }\n\n wui-loading-spinner {\n position: absolute;\n right: 18px;\n top: 50%;\n transform: translateY(-50%);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-list-item/styles.js?")},54618:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiCertifiedSwitch: () => (/* binding */ WuiCertifiedSwitch)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 73380);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _wui_switch_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../wui-switch/index.js */ 53430);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.js */ 14966);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet WuiCertifiedSwitch = class WuiCertifiedSwitch extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.checked = undefined;\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n};\nWuiCertifiedSwitch.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_7__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiCertifiedSwitch.prototype, "checked", void 0);\nWuiCertifiedSwitch = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__.customElement)(\'wui-certified-switch\')\n], WuiCertifiedSwitch);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-certified-switch/index.js?')},55271:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiLoadingThumbnail: () => (/* binding */ WuiLoadingThumbnail)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./styles.js */ 61481);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\nlet WuiLoadingThumbnail = class WuiLoadingThumbnail extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.radius = 36;\n }\n render() {\n return this.svgLoaderTemplate();\n }\n svgLoaderTemplate() {\n const radius = this.radius > 50 ? 50 : this.radius;\n const standardValue = 36;\n const radiusFactor = standardValue - radius;\n const dashArrayStart = 116 + radiusFactor;\n const dashArrayEnd = 245 + radiusFactor;\n const dashOffset = 360 + radiusFactor * 1.75;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n \n `;\n }\n};\nWuiLoadingThumbnail.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_2__.resetStyles, _styles_js__WEBPACK_IMPORTED_MODULE_4__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Number })\n], WuiLoadingThumbnail.prototype, "radius", void 0);\nWuiLoadingThumbnail = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'wui-loading-thumbnail\')\n], WuiLoadingThumbnail);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/components/wui-loading-thumbnail/index.js?')},55298:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectRecentWidget: () => (/* binding */ W3mConnectRecentWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 27508);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @reown/appkit-controllers */ 6056);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\n/* harmony import */ var _utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WalletUtil.js */ 65042);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet W3mConnectRecentWidget = class W3mConnectRecentWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.state.connectors;\n this.loading = false;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.subscribeKey(\'connectors\', val => (this.connectors = val)));\n if (_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.CoreHelperUtil.isTelegram() && _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.CoreHelperUtil.isIos()) {\n this.loading = !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ConnectionController.state.wcUri;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ConnectionController.subscribeKey(\'wcUri\', val => (this.loading = !val)));\n }\n }\n render() {\n const recentWallets = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.StorageUtil.getRecentWallets();\n const filteredRecentWallets = recentWallets\n .filter(wallet => !_utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_6__.WalletUtil.isExcluded(wallet))\n .filter(wallet => !this.hasWalletConnector(wallet))\n .filter(wallet => this.isWalletCompatibleWithCurrentChain(wallet));\n if (!filteredRecentWallets.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${filteredRecentWallets.map(wallet => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnectWallet(wallet)}\n tagLabel="recent"\n tagVariant="shade"\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n ?loading=${this.loading}\n >\n \n `)}\n \n `;\n }\n onConnectWallet(wallet) {\n if (this.loading) {\n return;\n }\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.selectWalletConnector(wallet);\n }\n hasWalletConnector(wallet) {\n return this.connectors.some(connector => connector.id === wallet.id || connector.name === wallet.name);\n }\n isWalletCompatibleWithCurrentChain(wallet) {\n const currentNamespace = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.ChainController.state.activeChain;\n if (currentNamespace && wallet.chains) {\n return wallet.chains.some(c => {\n const chainNamespace = c.split(\':\')[0];\n return currentNamespace === chainNamespace;\n });\n }\n return true;\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectRecentWidget.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectRecentWidget.prototype, "connectors", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectRecentWidget.prototype, "loading", void 0);\nW3mConnectRecentWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-connect-recent-widget\')\n], W3mConnectRecentWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-recent-widget/index.js?')},56756:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const Utils = __webpack_require__(/*! ./utils */ 92726)\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/renderer/svg-tag.js?")},56886:(__unused_webpack_module,exports)=>{eval("let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/utils.js?")},57190:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n wui-grid {\n max-height: clamp(360px, 400px, 80vh);\n overflow: scroll;\n scrollbar-width: none;\n grid-auto-rows: min-content;\n grid-template-columns: repeat(auto-fill, 104px);\n }\n\n @media (max-width: 350px) {\n wui-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n\n wui-grid[data-scroll='false'] {\n overflow: hidden;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-spinner {\n padding-top: var(--wui-spacing-l);\n padding-bottom: var(--wui-spacing-l);\n justify-content: center;\n grid-column: 1 / span 4;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-all-wallets-list/styles.js?")},57348:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectAnnouncedWidget: () => (/* binding */ W3mConnectAnnouncedWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\n/* harmony import */ var _utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/ConnectorUtil.js */ 56092);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet W3mConnectAnnouncedWidget = class W3mConnectAnnouncedWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.state.connectors;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const announcedConnectors = this.connectors.filter(connector => connector.type === 'ANNOUNCED');\n if (!announcedConnectors?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${announcedConnectors\n .filter(_utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_6__.ConnectorUtil.showConnector)\n .map(connector => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnector(connector)}\n tagVariant=\"success\"\n tagLabel=\"installed\"\n data-testid=${`wallet-selector-${connector.id}`}\n .installed=${true}\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n >\n \n `)}\n \n `;\n }\n onConnector(connector) {\n if (connector.id === 'walletConnect') {\n if (_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.CoreHelperUtil.isMobile()) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.RouterController.push('AllWallets');\n }\n else {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.RouterController.push('ConnectingWalletConnect');\n }\n }\n else {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.RouterController.push('ConnectingExternal', { connector });\n }\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectAnnouncedWidget.prototype, \"tabIdx\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectAnnouncedWidget.prototype, \"connectors\", void 0);\nW3mConnectAnnouncedWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)('w3m-connect-announced-widget')\n], W3mConnectAnnouncedWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-announced-widget/index.js?")},57445:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n button {\n border: none;\n border-radius: var(--wui-border-radius-3xl);\n }\n\n button[data-variant='main'] {\n background-color: var(--wui-color-accent-100);\n color: var(--wui-color-inverse-100);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='accent'] {\n background-color: var(--wui-color-accent-glass-010);\n color: var(--wui-color-accent-100);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n button[data-variant='gray'] {\n background-color: transparent;\n color: var(--wui-color-fg-200);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='shade'] {\n background-color: transparent;\n color: var(--wui-color-accent-100);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-size='sm'] {\n height: 32px;\n padding: 0 var(--wui-spacing-s);\n }\n\n button[data-size='md'] {\n height: 40px;\n padding: 0 var(--wui-spacing-l);\n }\n\n button[data-size='sm'] > wui-image {\n width: 16px;\n height: 16px;\n }\n\n button[data-size='md'] > wui-image {\n width: 24px;\n height: 24px;\n }\n\n button[data-size='sm'] > wui-icon {\n width: 12px;\n height: 12px;\n }\n\n button[data-size='md'] > wui-icon {\n width: 14px;\n height: 14px;\n }\n\n wui-image {\n border-radius: var(--wui-border-radius-3xl);\n overflow: hidden;\n }\n\n button.disabled > wui-icon,\n button.disabled > wui-image {\n filter: grayscale(1);\n }\n\n button[data-variant='main'] > wui-image {\n box-shadow: inset 0 0 0 1px var(--wui-color-accent-090);\n }\n\n button[data-variant='shade'] > wui-image,\n button[data-variant='gray'] > wui-image {\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n @media (hover: hover) and (pointer: fine) {\n button[data-variant='main']:focus-visible {\n background-color: var(--wui-color-accent-090);\n }\n\n button[data-variant='main']:hover:enabled {\n background-color: var(--wui-color-accent-090);\n }\n\n button[data-variant='main']:active:enabled {\n background-color: var(--wui-color-accent-080);\n }\n\n button[data-variant='accent']:hover:enabled {\n background-color: var(--wui-color-accent-glass-015);\n }\n\n button[data-variant='accent']:active:enabled {\n background-color: var(--wui-color-accent-glass-020);\n }\n\n button[data-variant='shade']:focus-visible,\n button[data-variant='gray']:focus-visible,\n button[data-variant='shade']:hover,\n button[data-variant='gray']:hover {\n background-color: var(--wui-color-gray-glass-002);\n }\n\n button[data-variant='gray']:active,\n button[data-variant='shade']:active {\n background-color: var(--wui-color-gray-glass-005);\n }\n }\n\n button.disabled {\n color: var(--wui-color-gray-glass-020);\n background-color: var(--wui-color-gray-glass-002);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n pointer-events: none;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-chip-button/styles.js?")},60259:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiWalletImage: () => (/* binding */ WuiWalletImage)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _components_wui_image_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-image/index.js */ 55939);\n/* harmony import */ var _layout_wui_flex_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../layout/wui-flex/index.js */ 11227);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _wui_icon_box_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../wui-icon-box/index.js */ 4495);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./styles.js */ 76237);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\nlet WuiWalletImage = class WuiWalletImage extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.size = \'md\';\n this.name = \'\';\n this.installed = false;\n this.badgeSize = \'xs\';\n }\n render() {\n let borderRadius = \'xxs\';\n if (this.size === \'lg\') {\n borderRadius = \'m\';\n }\n else if (this.size === \'md\') {\n borderRadius = \'xs\';\n }\n else {\n borderRadius = \'xxs\';\n }\n this.style.cssText = `\n --local-border-radius: var(--wui-border-radius-${borderRadius});\n --local-size: var(--wui-wallet-image-size-${this.size});\n `;\n if (this.walletIcon) {\n this.dataset[\'walletIcon\'] = this.walletIcon;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n ${this.templateVisual()} \n `;\n }\n templateVisual() {\n if (this.imageSrc) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n else if (this.walletIcon) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n};\nWuiWalletImage.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.elementStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.resetStyles, _styles_js__WEBPACK_IMPORTED_MODULE_8__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiWalletImage.prototype, "size", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiWalletImage.prototype, "name", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiWalletImage.prototype, "imageSrc", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiWalletImage.prototype, "walletIcon", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiWalletImage.prototype, "installed", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiWalletImage.prototype, "badgeSize", void 0);\nWuiWalletImage = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__.customElement)(\'wui-wallet-image\')\n], WuiWalletImage);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-wallet-image/index.js?')},61063:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectorList: () => (/* binding */ W3mConnectorList)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @reown/appkit-controllers */ 88249);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _partials_w3m_connect_announced_widget_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../partials/w3m-connect-announced-widget/index.js */ 57348);\n/* harmony import */ var _partials_w3m_connect_custom_widget_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../partials/w3m-connect-custom-widget/index.js */ 53554);\n/* harmony import */ var _partials_w3m_connect_external_widget_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../partials/w3m-connect-external-widget/index.js */ 50502);\n/* harmony import */ var _partials_w3m_connect_featured_widget_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../partials/w3m-connect-featured-widget/index.js */ 11529);\n/* harmony import */ var _partials_w3m_connect_injected_widget_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../partials/w3m-connect-injected-widget/index.js */ 24379);\n/* harmony import */ var _partials_w3m_connect_multi_chain_widget_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../partials/w3m-connect-multi-chain-widget/index.js */ 66888);\n/* harmony import */ var _partials_w3m_connect_recent_widget_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../partials/w3m-connect-recent-widget/index.js */ 55298);\n/* harmony import */ var _partials_w3m_connect_recommended_widget_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../partials/w3m-connect-recommended-widget/index.js */ 78306);\n/* harmony import */ var _partials_w3m_connect_walletconnect_widget_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../partials/w3m-connect-walletconnect-widget/index.js */ 98704);\n/* harmony import */ var _utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../utils/ConnectorUtil.js */ 56092);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./styles.js */ 29225);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet W3mConnectorList = class W3mConnectorList extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__.ConnectorController.state.connectors;\n this.recommended = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__.ApiController.state.recommended;\n this.featured = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__.ApiController.state.featured;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_16__.ConnectorController.subscribeKey('connectors', val => (this.connectors = val)), _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__.ApiController.subscribeKey('recommended', val => (this.recommended = val)), _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_17__.ApiController.subscribeKey('featured', val => (this.featured = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n ${this.connectorListTemplate()} \n `;\n }\n connectorListTemplate() {\n const { custom, recent, announced, injected, multiChain, recommended, featured, external } = _utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_14__.ConnectorUtil.getConnectorsByType(this.connectors, this.recommended, this.featured);\n const connectorTypeOrder = _utils_ConnectorUtil_js__WEBPACK_IMPORTED_MODULE_14__.ConnectorUtil.getConnectorTypeOrder({\n custom,\n recent,\n announced,\n injected,\n multiChain,\n recommended,\n featured,\n external\n });\n return connectorTypeOrder.map(type => {\n switch (type) {\n case 'injected':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n ${multiChain.length\n ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``\n : null}\n ${announced.length\n ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``\n : null}\n ${injected.length\n ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``\n : null}\n `;\n case 'walletConnect':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n case 'recent':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n case 'featured':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n case 'custom':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n case 'external':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n case 'recommended':\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n default:\n console.warn(`Unknown connector type: ${type}`);\n return null;\n }\n });\n }\n};\nW3mConnectorList.styles = _styles_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectorList.prototype, \"tabIdx\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectorList.prototype, \"connectors\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectorList.prototype, \"recommended\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectorList.prototype, \"featured\", void 0);\nW3mConnectorList = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)('w3m-connector-list')\n], W3mConnectorList);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connector-list/index.js?")},61078:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mAllWalletsView: () => (/* reexport safe */ _src_views_w3m_all_wallets_view_index_js__WEBPACK_IMPORTED_MODULE_1__.W3mAllWalletsView),\n/* harmony export */ W3mConnectingWcBasicView: () => (/* reexport safe */ _src_views_w3m_connecting_wc_basic_view_index_js__WEBPACK_IMPORTED_MODULE_0__.W3mConnectingWcBasicView),\n/* harmony export */ W3mDownloadsView: () => (/* reexport safe */ _src_views_w3m_downloads_view_index_js__WEBPACK_IMPORTED_MODULE_2__.W3mDownloadsView)\n/* harmony export */ });\n/* harmony import */ var _src_views_w3m_connecting_wc_basic_view_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/views/w3m-connecting-wc-basic-view/index.js */ 65983);\n/* harmony import */ var _src_views_w3m_all_wallets_view_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../src/views/w3m-all-wallets-view/index.js */ 35887);\n/* harmony import */ var _src_views_w3m_downloads_view_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../src/views/w3m-downloads-view/index.js */ 23904);\n\n\n\n//# sourceMappingURL=basic.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/exports/basic.js?")},61481:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n display: block;\n width: var(--wui-box-size-md);\n height: var(--wui-box-size-md);\n }\n\n svg {\n width: var(--wui-box-size-md);\n height: var(--wui-box-size-md);\n }\n\n rect {\n fill: none;\n stroke: var(--wui-color-accent-100);\n stroke-width: 4px;\n stroke-linecap: round;\n animation: dash 1s linear infinite;\n }\n\n @keyframes dash {\n to {\n stroke-dashoffset: 0px;\n }\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/components/wui-loading-thumbnail/styles.js?')},62559:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n display: grid;\n width: inherit;\n height: inherit;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/layout/wui-grid/styles.js?')},63407:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n @keyframes shake {\n 0% {\n transform: translateX(0);\n }\n 25% {\n transform: translateX(3px);\n }\n 50% {\n transform: translateX(-3px);\n }\n 75% {\n transform: translateX(3px);\n }\n 100% {\n transform: translateX(0);\n }\n }\n\n wui-flex:first-child:not(:only-child) {\n position: relative;\n }\n\n wui-loading-thumbnail {\n position: absolute;\n }\n\n wui-icon-box {\n position: absolute;\n right: calc(var(--wui-spacing-3xs) * -1);\n bottom: calc(var(--wui-spacing-3xs) * -1);\n opacity: 0;\n transform: scale(0.5);\n transition-property: opacity, transform;\n transition-duration: var(--wui-duration-lg);\n transition-timing-function: var(--wui-ease-out-power-2);\n will-change: opacity, transform;\n }\n\n wui-text[align='center'] {\n width: 100%;\n padding: 0px var(--wui-spacing-l);\n }\n\n [data-error='true'] wui-icon-box {\n opacity: 1;\n transform: scale(1);\n }\n\n [data-error='true'] > wui-flex:first-child {\n animation: shake 250ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n }\n\n [data-retry='false'] wui-link {\n display: none;\n }\n\n [data-retry='true'] wui-link {\n display: block;\n opacity: 1;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/w3m-connecting-widget/styles.js?")},64187:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n @keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n wui-shimmer {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: clamp(0px, var(--wui-border-radius-l), 40px) !important;\n }\n\n wui-qr-code {\n opacity: 0;\n animation-duration: 200ms;\n animation-timing-function: ease;\n animation-name: fadein;\n animation-fill-mode: forwards;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-wc-qrcode/styles.js?')},64713:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const GF = __webpack_require__(/*! ./galois-field */ 2731)\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/polynomial.js?")},64738:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiTabs: () => (/* binding */ WuiTabs)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.js */ 3614);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet WuiTabs = class WuiTabs extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.tabs = [];\n this.onTabChange = () => null;\n this.buttons = [];\n this.disabled = false;\n this.localTabWidth = '100px';\n this.activeTab = 0;\n this.isDense = false;\n }\n render() {\n this.isDense = this.tabs.length > 3;\n this.style.cssText = `\n --local-tab: ${this.activeTab};\n --local-tab-width: ${this.localTabWidth};\n `;\n this.dataset['type'] = this.isDense ? 'flex' : 'block';\n return this.tabs.map((tab, index) => {\n const isActive = index === this.activeTab;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onTabClick(index)}\n data-active=${isActive}\n data-testid=\"tab-${tab.label?.toLowerCase()}\"\n >\n ${this.iconTemplate(tab)}\n ${tab.label} \n \n `;\n });\n }\n firstUpdated() {\n if (this.shadowRoot && this.isDense) {\n this.buttons = [...this.shadowRoot.querySelectorAll('button')];\n setTimeout(() => {\n this.animateTabs(0, true);\n }, 0);\n }\n }\n iconTemplate(tab) {\n if (tab.icon) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return null;\n }\n onTabClick(index) {\n if (this.buttons) {\n this.animateTabs(index, false);\n }\n this.activeTab = index;\n this.onTabChange(index);\n }\n animateTabs(index, initialAnimation) {\n const passiveBtn = this.buttons[this.activeTab];\n const activeBtn = this.buttons[index];\n const passiveBtnText = passiveBtn?.querySelector('wui-text');\n const activeBtnText = activeBtn?.querySelector('wui-text');\n const activeBtnBounds = activeBtn?.getBoundingClientRect();\n const activeBtnTextBounds = activeBtnText?.getBoundingClientRect();\n if (passiveBtn && passiveBtnText && !initialAnimation && index !== this.activeTab) {\n passiveBtnText.animate([{ opacity: 0 }], {\n duration: 50,\n easing: 'ease',\n fill: 'forwards'\n });\n passiveBtn.animate([{ width: `34px` }], {\n duration: 500,\n easing: 'ease',\n fill: 'forwards'\n });\n }\n if (activeBtn && activeBtnBounds && activeBtnTextBounds && activeBtnText) {\n if (index !== this.activeTab || initialAnimation) {\n this.localTabWidth = `${Math.round(activeBtnBounds.width + activeBtnTextBounds.width) + 6}px`;\n activeBtn.animate([{ width: `${activeBtnBounds.width + activeBtnTextBounds.width}px` }], {\n duration: initialAnimation ? 0 : 500,\n fill: 'forwards',\n easing: 'ease'\n });\n activeBtnText.animate([{ opacity: 1 }], {\n duration: initialAnimation ? 0 : 125,\n delay: initialAnimation ? 0 : 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n }\n};\nWuiTabs.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Array })\n], WuiTabs.prototype, \"tabs\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiTabs.prototype, \"onTabChange\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Array })\n], WuiTabs.prototype, \"buttons\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiTabs.prototype, \"disabled\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiTabs.prototype, \"localTabWidth\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], WuiTabs.prototype, \"activeTab\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], WuiTabs.prototype, \"isDense\", void 0);\nWuiTabs = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__.customElement)('wui-tabs')\n], WuiTabs);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-tabs/index.js?")},65153:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiQrCode: () => (/* binding */ WuiQrCode)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _components_wui_image_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-image/index.js */ 55939);\n/* harmony import */ var _utils_QrCode_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/QrCode.js */ 96480);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.js */ 16491);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nconst DEFAULT_ICON_COLOR = \'#3396ff\';\nlet WuiQrCode = class WuiQrCode extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.uri = \'\';\n this.size = 0;\n this.theme = \'dark\';\n this.imageSrc = undefined;\n this.alt = undefined;\n this.arenaClear = undefined;\n this.farcaster = undefined;\n }\n render() {\n this.dataset[\'theme\'] = this.theme;\n this.dataset[\'clear\'] = String(this.arenaClear);\n this.style.cssText = `\n --local-size: ${this.size}px;\n --local-icon-color: ${this.color ?? DEFAULT_ICON_COLOR}\n `;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `${this.templateVisual()} ${this.templateSvg()}`;\n }\n templateSvg() {\n const size = this.theme === \'light\' ? this.size : this.size - 16 * 2;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.svg) `\n \n ${_utils_QrCode_js__WEBPACK_IMPORTED_MODULE_4__.QrCodeUtil.generate({\n uri: this.uri,\n size,\n logoSize: this.arenaClear ? 0 : size / 4,\n dotColor: this.color\n })}\n \n `;\n }\n templateVisual() {\n if (this.imageSrc) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n if (this.farcaster) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n};\nWuiQrCode.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.resetStyles, _styles_js__WEBPACK_IMPORTED_MODULE_7__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiQrCode.prototype, "uri", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Number })\n], WuiQrCode.prototype, "size", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiQrCode.prototype, "theme", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiQrCode.prototype, "imageSrc", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiQrCode.prototype, "alt", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiQrCode.prototype, "color", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiQrCode.prototype, "arenaClear", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiQrCode.prototype, "farcaster", void 0);\nWuiQrCode = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__.customElement)(\'wui-qr-code\')\n], WuiQrCode);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-qr-code/index.js?')},65983:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcBasicView: () => (/* binding */ W3mConnectingWcBasicView)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 88249);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 57019);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 27508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _partials_w3m_all_wallets_widget_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../partials/w3m-all-wallets-widget/index.js */ 69650);\n/* harmony import */ var _partials_w3m_connector_list_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../partials/w3m-connector-list/index.js */ 61063);\n/* harmony import */ var _w3m_connecting_wc_view_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../w3m-connecting-wc-view/index.js */ 45186);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet W3mConnectingWcBasicView = class W3mConnectingWcBasicView extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.isMobile = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.CoreHelperUtil.isMobile();\n }\n render() {\n if (this.isMobile) {\n const { featured, recommended } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.ApiController.state;\n const { customWallets } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.OptionsController.state;\n const recent = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.StorageUtil.getRecentWallets();\n const showConnectors = featured.length || recommended.length || customWallets?.length || recent.length;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n ${showConnectors ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `` : null}\n \n `;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n `;\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectingWcBasicView.prototype, \"isMobile\", void 0);\nW3mConnectingWcBasicView = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.customElement)('w3m-connecting-wc-basic-view')\n], W3mConnectingWcBasicView);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-connecting-wc-basic-view/index.js?")},66888:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectMultiChainWidget: () => (/* binding */ W3mConnectMultiChainWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet W3mConnectMultiChainWidget = class W3mConnectMultiChainWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ConnectorController.state.connectors;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ConnectorController.subscribeKey(\'connectors\', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const multiChainConnectors = this.connectors.filter(connector => connector.type === \'MULTI_CHAIN\' && connector.name !== \'WalletConnect\');\n if (!multiChainConnectors?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${multiChainConnectors.map(connector => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnector(connector)}\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n >\n \n `)}\n \n `;\n }\n onConnector(connector) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ConnectorController.setActiveConnector(connector);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.RouterController.push(\'ConnectingMultiChain\');\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectMultiChainWidget.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectMultiChainWidget.prototype, "connectors", void 0);\nW3mConnectMultiChainWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-connect-multi-chain-widget\')\n], W3mConnectMultiChainWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-multi-chain-widget/index.js?')},67008:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiCtaButton: () => (/* reexport safe */ _src_composites_wui_cta_button_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiCtaButton)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_cta_button_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-cta-button/index.js */ 15535);\n\n//# sourceMappingURL=wui-cta-button.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-cta-button.js?")},67044:(__unused_webpack_module,exports)=>{eval("const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/regex.js?")},69037:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcMobile: () => (/* binding */ W3mConnectingWcMobile)\n/* harmony export */ });\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-controllers */ 57019);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 62944);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/w3m-connecting-widget/index.js */ 16909);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\nlet W3mConnectingWcMobile = class W3mConnectingWcMobile extends _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_2__.W3mConnectingWidget {\n constructor() {\n super();\n this.btnLabelTimeout = undefined;\n this.redirectDeeplink = undefined;\n this.redirectUniversalLink = undefined;\n this.target = undefined;\n this.preferUniversalLinks = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__.OptionsController.state.experimental_preferUniversalLinks;\n this.isLoading = true;\n this.onConnect = () => {\n if (this.wallet?.mobile_link && this.uri) {\n try {\n this.error = false;\n const { mobile_link, link_mode, name } = this.wallet;\n const { redirect, redirectUniversalLink, href } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.CoreHelperUtil.formatNativeUrl(mobile_link, this.uri, link_mode);\n this.redirectDeeplink = redirect;\n this.redirectUniversalLink = redirectUniversalLink;\n this.target = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.CoreHelperUtil.isIframe() ? '_top' : '_self';\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectionController.setWcLinking({ name, href });\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectionController.setRecentWallet(this.wallet);\n if (this.preferUniversalLinks && this.redirectUniversalLink) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.CoreHelperUtil.openHref(this.redirectUniversalLink, this.target);\n }\n else {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.CoreHelperUtil.openHref(this.redirectDeeplink, this.target);\n }\n }\n catch (e) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_PROXY_ERROR',\n properties: {\n message: e instanceof Error ? e.message : 'Error parsing the deeplink',\n uri: this.uri,\n mobile_link: this.wallet.mobile_link,\n name: this.wallet.name\n }\n });\n this.error = true;\n }\n }\n };\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-mobile: No wallet provided');\n }\n this.secondaryBtnLabel = 'Open';\n this.secondaryLabel = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.ConstantsUtil.CONNECT_LABELS.MOBILE;\n this.secondaryBtnIcon = 'externalLink';\n this.onHandleURI();\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectionController.subscribeKey('wcUri', () => {\n this.onHandleURI();\n }));\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'mobile' }\n });\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n clearTimeout(this.btnLabelTimeout);\n }\n onHandleURI() {\n this.isLoading = !this.uri;\n if (!this.ready && this.uri) {\n this.ready = true;\n this.onConnect?.();\n }\n }\n onTryAgain() {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectionController.setWcError(false);\n this.onConnect?.();\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__.state)()\n], W3mConnectingWcMobile.prototype, \"redirectDeeplink\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__.state)()\n], W3mConnectingWcMobile.prototype, \"redirectUniversalLink\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__.state)()\n], W3mConnectingWcMobile.prototype, \"target\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__.state)()\n], W3mConnectingWcMobile.prototype, \"preferUniversalLinks\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__.state)()\n], W3mConnectingWcMobile.prototype, \"isLoading\", void 0);\nW3mConnectingWcMobile = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_1__.customElement)('w3m-connecting-wc-mobile')\n], W3mConnectingWcMobile);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-wc-mobile/index.js?")},69049:module=>{"use strict";eval("\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/encode-utf8/index.js?")},69350:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiLink: () => (/* binding */ WuiLink)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 73380);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.js */ 25882);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet WuiLink = class WuiLink extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.tabIdx = undefined;\n this.disabled = false;\n this.color = \'inherit\';\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n};\nWuiLink.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_6__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiLink.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiLink.prototype, "disabled", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiLink.prototype, "color", void 0);\nWuiLink = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__.customElement)(\'wui-link\')\n], WuiLink);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-link/index.js?')},69650:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mAllWalletsWidget: () => (/* binding */ W3mAllWalletsWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 88249);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 57019);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\nlet W3mAllWalletsWidget = class W3mAllWalletsWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectorController.state.connectors;\n this.count = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ApiController.state.count;\n this.filteredCount = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ApiController.state.filteredWallets.length;\n this.isFetchingRecommendedWallets = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ApiController.state.isFetchingRecommendedWallets;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectorController.subscribeKey('connectors', val => (this.connectors = val)), _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ApiController.subscribeKey('count', val => (this.count = val)), _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ApiController.subscribeKey('filteredWallets', val => (this.filteredCount = val.length)), _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ApiController.subscribeKey('isFetchingRecommendedWallets', val => (this.isFetchingRecommendedWallets = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const wcConnector = this.connectors.find(c => c.id === 'walletConnect');\n const { allWallets } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.OptionsController.state;\n if (!wcConnector || allWallets === 'HIDE') {\n return null;\n }\n if (allWallets === 'ONLY_MOBILE' && !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.CoreHelperUtil.isMobile()) {\n return null;\n }\n const featuredCount = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.ApiController.state.featured.length;\n const rawCount = this.count + featuredCount;\n const roundedCount = rawCount < 10 ? rawCount : Math.floor(rawCount / 10) * 10;\n const count = this.filteredCount > 0 ? this.filteredCount : roundedCount;\n let tagLabel = `${count}`;\n if (this.filteredCount > 0) {\n tagLabel = `${this.filteredCount}`;\n }\n else if (count < rawCount) {\n tagLabel = `${count}+`;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n onAllWallets() {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.EventsController.sendEvent({ type: 'track', event: 'CLICK_ALL_WALLETS' });\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.RouterController.push('AllWallets');\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mAllWalletsWidget.prototype, \"tabIdx\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsWidget.prototype, \"connectors\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsWidget.prototype, \"count\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsWidget.prototype, \"filteredCount\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsWidget.prototype, \"isFetchingRecommendedWallets\", void 0);\nW3mAllWalletsWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)('w3m-all-wallets-widget')\n], W3mAllWalletsWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-all-wallets-widget/index.js?")},70614:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiListItem: () => (/* binding */ WuiListItem)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 73380);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _components_wui_image_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/wui-image/index.js */ 55939);\n/* harmony import */ var _components_wui_loading_spinner_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/wui-loading-spinner/index.js */ 97158);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _layout_wui_flex_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../layout/wui-flex/index.js */ 11227);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _wui_icon_box_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../wui-icon-box/index.js */ 4495);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styles.js */ 53834);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\nlet WuiListItem = class WuiListItem extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.tabIdx = undefined;\n this.variant = \'icon\';\n this.disabled = false;\n this.imageSrc = undefined;\n this.alt = undefined;\n this.chevron = false;\n this.loading = false;\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.loadingTemplate()} ${this.visualTemplate()}\n \n \n \n ${this.chevronTemplate()}\n \n `;\n }\n visualTemplate() {\n if (this.variant === \'image\' && this.imageSrc) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n if (this.iconVariant === \'square\' && this.icon && this.variant === \'icon\') {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n if (this.variant === \'icon\' && this.icon && this.iconVariant) {\n const color = [\'blue\', \'square-blue\'].includes(this.iconVariant) ? \'accent-100\' : \'fg-200\';\n const size = this.iconVariant === \'square-blue\' ? \'mdl\' : \'md\';\n const iconSize = this.iconSize ? this.iconSize : size;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n return null;\n }\n loadingTemplate() {\n if (this.loading) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n chevronTemplate() {\n if (this.chevron) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return null;\n }\n};\nWuiListItem.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_8__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_8__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_11__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListItem.prototype, "icon", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListItem.prototype, "iconSize", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListItem.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListItem.prototype, "variant", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListItem.prototype, "iconVariant", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiListItem.prototype, "disabled", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListItem.prototype, "imageSrc", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListItem.prototype, "alt", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiListItem.prototype, "chevron", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiListItem.prototype, "loading", void 0);\nWuiListItem = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_9__.customElement)(\'wui-list-item\')\n], WuiListItem);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-list-item/index.js?')},70777:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcDesktop: () => (/* binding */ W3mConnectingWcDesktop)\n/* harmony export */ });\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/w3m-connecting-widget/index.js */ 16909);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\nlet W3mConnectingWcDesktop = class W3mConnectingWcDesktop extends _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_1__.W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-desktop: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onRender = this.onRenderProxy.bind(this);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_2__.EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'desktop' }\n });\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.ready = true;\n this.onConnect?.();\n }\n }\n onConnectProxy() {\n if (this.wallet?.desktop_link && this.uri) {\n try {\n this.error = false;\n const { desktop_link, name } = this.wallet;\n const { redirect, href } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__.CoreHelperUtil.formatNativeUrl(desktop_link, this.uri);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.ConnectionController.setWcLinking({ name, href });\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.ConnectionController.setRecentWallet(this.wallet);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__.CoreHelperUtil.openHref(redirect, '_blank');\n }\n catch {\n this.error = true;\n }\n }\n }\n};\nW3mConnectingWcDesktop = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_0__.customElement)('w3m-connecting-wc-desktop')\n], W3mConnectingWcDesktop);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-wc-desktop/index.js?")},73380:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ifDefined: () => (/* reexport safe */ lit_html_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_0__.ifDefined)\n/* harmony export */ });\n/* harmony import */ var lit_html_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit-html/directives/if-defined.js */ 46901);\n\n//# sourceMappingURL=if-defined.js.map\n\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/node_modules/lit/directives/if-defined.js?")},74764:(module,__unused_webpack_exports,__webpack_require__)=>{eval("const Polynomial = __webpack_require__(/*! ./polynomial */ 64713)\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/reed-solomon-encoder.js?")},76237:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n position: relative;\n background-color: var(--wui-color-gray-glass-002);\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--local-size);\n height: var(--local-size);\n border-radius: inherit;\n border-radius: var(--local-border-radius);\n }\n\n :host > wui-flex {\n overflow: hidden;\n border-radius: inherit;\n border-radius: var(--local-border-radius);\n }\n\n :host::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n border: 1px solid var(--wui-color-gray-glass-010);\n pointer-events: none;\n }\n\n :host([name='Extension'])::after {\n border: 1px solid var(--wui-color-accent-glass-010);\n }\n\n :host([data-wallet-icon='allWallets']) {\n background-color: var(--wui-all-wallets-bg-100);\n }\n\n :host([data-wallet-icon='allWallets'])::after {\n border: 1px solid var(--wui-color-accent-glass-010);\n }\n\n wui-icon[data-parent-size='inherit'] {\n width: 75%;\n height: 75%;\n align-items: center;\n }\n\n wui-icon[data-parent-size='sm'] {\n width: 18px;\n height: 18px;\n }\n\n wui-icon[data-parent-size='md'] {\n width: 24px;\n height: 24px;\n }\n\n wui-icon[data-parent-size='lg'] {\n width: 42px;\n height: 42px;\n }\n\n wui-icon[data-parent-size='full'] {\n width: 100%;\n height: 100%;\n }\n\n :host > wui-icon-box {\n position: absolute;\n overflow: hidden;\n right: -1px;\n bottom: -2px;\n z-index: 1;\n border: 2px solid var(--wui-color-bg-150, #1e1f1f);\n padding: 1px;\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-wallet-image/styles.js?")},76320:module=>{"use strict";eval("\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (true) {\n module.exports = dijkstra;\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/dijkstrajs/dijkstra.js?")},77032:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiListWallet: () => (/* binding */ WuiListWallet)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 73380);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _composites_wui_icon_box_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../composites/wui-icon-box/index.js */ 4495);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _wui_all_wallets_image_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../wui-all-wallets-image/index.js */ 81898);\n/* harmony import */ var _wui_tag_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../wui-tag/index.js */ 47534);\n/* harmony import */ var _wui_wallet_image_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../wui-wallet-image/index.js */ 60259);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styles.js */ 9900);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\nlet WuiListWallet = class WuiListWallet extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.walletImages = [];\n this.imageSrc = \'\';\n this.name = \'\';\n this.tabIdx = undefined;\n this.installed = false;\n this.disabled = false;\n this.showAllWallets = false;\n this.loading = false;\n this.loadingSpinnerColor = \'accent-100\';\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `;\n }\n templateAllWallets() {\n if (this.showAllWallets && this.imageSrc) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ` `;\n }\n else if (this.showAllWallets && this.walletIcon) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ` `;\n }\n return null;\n }\n templateWalletImage() {\n if (!this.showAllWallets && this.imageSrc) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n else if (!this.showAllWallets && !this.imageSrc) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return null;\n }\n templateStatus() {\n if (this.loading) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n else if (this.tagLabel && this.tagVariant) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `${this.tagLabel}`;\n }\n else if (this.icon) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return null;\n }\n};\nWuiListWallet.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_6__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_6__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_11__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Array })\n], WuiListWallet.prototype, "walletImages", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListWallet.prototype, "imageSrc", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListWallet.prototype, "name", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListWallet.prototype, "tagLabel", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListWallet.prototype, "tagVariant", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListWallet.prototype, "icon", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListWallet.prototype, "walletIcon", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiListWallet.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiListWallet.prototype, "installed", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiListWallet.prototype, "disabled", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiListWallet.prototype, "showAllWallets", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiListWallet.prototype, "loading", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: String })\n], WuiListWallet.prototype, "loadingSpinnerColor", void 0);\nWuiListWallet = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_7__.customElement)(\'wui-list-wallet\')\n], WuiListWallet);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-list-wallet/index.js?')},77463:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectingWcWeb: () => (/* binding */ W3mConnectingWcWeb)\n/* harmony export */ });\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-controllers */ 62944);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-controllers */ 90184);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/w3m-connecting-widget/index.js */ 16909);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\nlet W3mConnectingWcWeb = class W3mConnectingWcWeb extends _utils_w3m_connecting_widget_index_js__WEBPACK_IMPORTED_MODULE_2__.W3mConnectingWidget {\n constructor() {\n super();\n this.isLoading = true;\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-web: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.secondaryBtnLabel = 'Open';\n this.secondaryLabel = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_3__.ConstantsUtil.CONNECT_LABELS.MOBILE;\n this.secondaryBtnIcon = 'externalLink';\n this.updateLoadingState();\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.ConnectionController.subscribeKey('wcUri', () => {\n this.updateLoadingState();\n }));\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'web' }\n });\n }\n updateLoadingState() {\n this.isLoading = !this.uri;\n }\n onConnectProxy() {\n if (this.wallet?.webapp_link && this.uri) {\n try {\n this.error = false;\n const { webapp_link, name } = this.wallet;\n const { redirect, href } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.CoreHelperUtil.formatUniversalUrl(webapp_link, this.uri);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.ConnectionController.setWcLinking({ name, href });\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_4__.ConnectionController.setRecentWallet(this.wallet);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.CoreHelperUtil.openHref(redirect, '_blank');\n }\n catch {\n this.error = true;\n }\n }\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_0__.state)()\n], W3mConnectingWcWeb.prototype, \"isLoading\", void 0);\nW3mConnectingWcWeb = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_1__.customElement)('w3m-connecting-wc-web')\n], W3mConnectingWcWeb);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connecting-wc-web/index.js?")},77616:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiIconBox: () => (/* reexport safe */ _src_composites_wui_icon_box_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiIconBox)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_icon_box_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-icon-box/index.js */ 4495);\n\n//# sourceMappingURL=wui-icon-box.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-icon-box.js?")},78306:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectRecommendedWidget: () => (/* binding */ W3mConnectRecommendedWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 79177);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reown/appkit-controllers */ 57019);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @reown/appkit-controllers */ 27508);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @reown/appkit-controllers */ 27601);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\n/* harmony import */ var _utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WalletUtil.js */ 65042);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet W3mConnectRecommendedWidget = class W3mConnectRecommendedWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.wallets = [];\n this.loading = false;\n if (_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.CoreHelperUtil.isTelegram() && _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.CoreHelperUtil.isIos()) {\n this.loading = !_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.ConnectionController.state.wcUri;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.ConnectionController.subscribeKey('wcUri', val => (this.loading = !val)));\n }\n }\n render() {\n const { connectors } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ConnectorController.state;\n const { customWallets, featuredWalletIds } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_10__.OptionsController.state;\n const recentWallets = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.StorageUtil.getRecentWallets();\n const wcConnector = connectors.find(c => c.id === 'walletConnect');\n const injectedConnectors = connectors.filter(c => c.type === 'INJECTED' || c.type === 'ANNOUNCED' || c.type === 'MULTI_CHAIN');\n const injectedWallets = injectedConnectors.filter(i => i.name !== 'Browser Wallet');\n if (!wcConnector) {\n return null;\n }\n if (featuredWalletIds || customWallets || !this.wallets.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n const overrideLength = injectedWallets.length + recentWallets.length;\n const maxRecommended = Math.max(0, 2 - overrideLength);\n const wallets = _utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_6__.WalletUtil.filterOutDuplicateWallets(this.wallets).slice(0, maxRecommended);\n if (!wallets.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${wallets.map(wallet => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnectWallet(wallet)}\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n ?loading=${this.loading}\n >\n \n `)}\n \n `;\n }\n onConnectWallet(wallet) {\n if (this.loading) {\n return;\n }\n const connector = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_9__.ConnectorController.getConnector(wallet.id, wallet.rdns);\n if (connector) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.RouterController.push('ConnectingExternal', { connector });\n }\n else {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_13__.RouterController.push('ConnectingWalletConnect', { wallet });\n }\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectRecommendedWidget.prototype, \"tabIdx\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectRecommendedWidget.prototype, \"wallets\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectRecommendedWidget.prototype, \"loading\", void 0);\nW3mConnectRecommendedWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)('w3m-connect-recommended-widget')\n], W3mConnectRecommendedWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-recommended-widget/index.js?")},79573:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiSearchBar: () => (/* reexport safe */ _src_composites_wui_search_bar_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiSearchBar)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_search_bar_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-search-bar/index.js */ 88070);\n\n//# sourceMappingURL=wui-search-bar.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-search-bar.js?")},80046:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n :host {\n display: block;\n padding: 0 var(--wui-spacing-xl) var(--wui-spacing-xl);\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-mobile-download-links/styles.js?')},80842:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiButton: () => (/* reexport safe */ _src_composites_wui_button_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiButton)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_button_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-button/index.js */ 89550);\n\n//# sourceMappingURL=wui-button.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-button.js?")},81288:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiGrid: () => (/* binding */ WuiGrid)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/UiHelperUtil.js */ 63612);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./styles.js */ 62559);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\nlet WuiGrid = class WuiGrid extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n render() {\n this.style.cssText = `\n grid-template-rows: ${this.gridTemplateRows};\n grid-template-columns: ${this.gridTemplateColumns};\n justify-items: ${this.justifyItems};\n align-items: ${this.alignItems};\n justify-content: ${this.justifyContent};\n align-content: ${this.alignContent};\n column-gap: ${this.columnGap && `var(--wui-spacing-${this.columnGap})`};\n row-gap: ${this.rowGap && `var(--wui-spacing-${this.rowGap})`};\n gap: ${this.gap && `var(--wui-spacing-${this.gap})`};\n padding-top: ${this.padding && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.padding, 0)};\n padding-right: ${this.padding && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.padding, 1)};\n padding-bottom: ${this.padding && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.padding, 2)};\n padding-left: ${this.padding && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.padding, 3)};\n margin-top: ${this.margin && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.margin, 0)};\n margin-right: ${this.margin && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.margin, 1)};\n margin-bottom: ${this.margin && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.margin, 2)};\n margin-left: ${this.margin && _utils_UiHelperUtil_js__WEBPACK_IMPORTED_MODULE_3__.UiHelperUtil.getSpacingStyles(this.margin, 3)};\n `;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n};\nWuiGrid.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_2__.resetStyles, _styles_js__WEBPACK_IMPORTED_MODULE_5__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "gridTemplateRows", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "gridTemplateColumns", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "justifyItems", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "alignItems", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "justifyContent", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "alignContent", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "columnGap", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "rowGap", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "gap", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "padding", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiGrid.prototype, "margin", void 0);\nWuiGrid = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_4__.customElement)(\'wui-grid\')\n], WuiGrid);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/layout/wui-grid/index.js?')},81332:(__unused_webpack_module,exports)=>{eval("/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/mask-pattern.js?")},81898:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiAllWalletsImage: () => (/* binding */ WuiAllWalletsImage)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 73380);\n/* harmony import */ var _layout_wui_flex_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../layout/wui-flex/index.js */ 11227);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _wui_icon_box_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../wui-icon-box/index.js */ 4495);\n/* harmony import */ var _wui_wallet_image_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../wui-wallet-image/index.js */ 60259);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./styles.js */ 45574);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\nconst TOTAL_IMAGES = 4;\nlet WuiAllWalletsImage = class WuiAllWalletsImage extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.walletImages = [];\n }\n render() {\n const isPlaceholders = this.walletImages.length < TOTAL_IMAGES;\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `${this.walletImages\n .slice(0, TOTAL_IMAGES)\n .map(({ src, walletName }) => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n `)}\n ${isPlaceholders\n ? [...Array(TOTAL_IMAGES - this.walletImages.length)].map(() => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ` `)\n : null}\n \n \n `;\n }\n};\nWuiAllWalletsImage.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.resetStyles, _styles_js__WEBPACK_IMPORTED_MODULE_8__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Array })\n], WuiAllWalletsImage.prototype, "walletImages", void 0);\nWuiAllWalletsImage = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__.customElement)(\'wui-all-wallets-image\')\n], WuiAllWalletsImage);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-all-wallets-image/index.js?')},81947:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiChipButton: () => (/* binding */ WuiChipButton)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _components_wui_image_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-image/index.js */ 55939);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.js */ 57445);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet WuiChipButton = class WuiChipButton extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.variant = \'accent\';\n this.imageSrc = \'\';\n this.disabled = false;\n this.icon = \'externalLink\';\n this.size = \'md\';\n this.text = \'\';\n }\n render() {\n const textVariant = this.size === \'sm\' ? \'small-600\' : \'paragraph-600\';\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.imageSrc ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `` : null}\n ${this.text} \n \n \n `;\n }\n};\nWuiChipButton.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_7__["default"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiChipButton.prototype, "variant", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiChipButton.prototype, "imageSrc", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiChipButton.prototype, "disabled", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiChipButton.prototype, "icon", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiChipButton.prototype, "size", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiChipButton.prototype, "text", void 0);\nWuiChipButton = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__.customElement)(\'wui-chip-button\')\n], WuiChipButton);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-chip-button/index.js?')},84197:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiListItem: () => (/* reexport safe */ _src_composites_wui_list_item_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiListItem)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_list_item_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-list-item/index.js */ 70614);\n\n//# sourceMappingURL=wui-list-item.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-list-item.js?")},84565:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const Utils = __webpack_require__(/*! ./utils */ 56886)\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/format-info.js?")},87445:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiUxByReown: () => (/* binding */ WuiUxByReown)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var _components_wui_icon_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/wui-icon/index.js */ 12939);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _layout_wui_flex_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../layout/wui-flex/index.js */ 11227);\n/* harmony import */ var _utils_ConstantsUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ConstantsUtil.js */ 7565);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.js */ 6231);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\nlet WuiUxByReown = class WuiUxByReown extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n UX by \n \n \n \n `;\n }\n};\nWuiUxByReown.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_5__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_7__["default"]];\nWuiUxByReown = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_6__.customElement)(\'wui-ux-by-reown\')\n], WuiUxByReown);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-ux-by-reown/index.js?')},87583:(__unused_webpack_module,exports,__webpack_require__)=>{eval("\nconst canPromise = __webpack_require__(/*! ./can-promise */ 91333)\n\nconst QRCode = __webpack_require__(/*! ./core/qrcode */ 90157)\nconst CanvasRenderer = __webpack_require__(/*! ./renderer/canvas */ 47899)\nconst SvgRenderer = __webpack_require__(/*! ./renderer/svg-tag.js */ 56756)\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/browser.js?")},87713:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiTabs: () => (/* reexport safe */ _src_composites_wui_tabs_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiTabs)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_tabs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-tabs/index.js */ 64738);\n\n//# sourceMappingURL=wui-tabs.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-tabs.js?")},88070:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiSearchBar: () => (/* binding */ WuiSearchBar)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/directives/ref.js */ 20411);\n/* harmony import */ var _composites_wui_input_element_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../composites/wui-input-element/index.js */ 29279);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _wui_input_text_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../wui-input-text/index.js */ 44630);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.js */ 29242);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nlet WuiSearchBar = class WuiSearchBar extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.inputComponentRef = (0,lit_directives_ref_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n }\n render() {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n \n `;\n }\n clearValue() {\n const inputComponent = this.inputComponentRef.value;\n const inputElement = inputComponent?.inputElementRef.value;\n if (inputElement) {\n inputElement.value = \'\';\n inputElement.focus();\n inputElement.dispatchEvent(new Event(\'input\'));\n }\n }\n};\nWuiSearchBar.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_3__.resetStyles, _styles_js__WEBPACK_IMPORTED_MODULE_6__["default"]];\nWuiSearchBar = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_4__.customElement)(\'wui-search-bar\')\n], WuiSearchBar);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-search-bar/index.js?')},89550:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiButton: () => (/* binding */ WuiButton)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 78865);\n/* harmony import */ var _components_wui_loading_spinner_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/wui-loading-spinner/index.js */ 97158);\n/* harmony import */ var _components_wui_text_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/wui-text/index.js */ 30401);\n/* harmony import */ var _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/ThemeUtil.js */ 26109);\n/* harmony import */ var _utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/WebComponentsUtil.js */ 43494);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.js */ 50530);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\nconst SPINNER_COLOR_BY_VARIANT = {\n main: 'inverse-100',\n inverse: 'inverse-000',\n accent: 'accent-100',\n 'accent-error': 'error-100',\n 'accent-success': 'success-100',\n neutral: 'fg-100',\n disabled: 'gray-glass-020'\n};\nconst TEXT_VARIANT_BY_SIZE = {\n lg: 'paragraph-600',\n md: 'small-600'\n};\nconst SPINNER_SIZE_BY_SIZE = {\n lg: 'md',\n md: 'md'\n};\nlet WuiButton = class WuiButton extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.size = 'lg';\n this.disabled = false;\n this.fullWidth = false;\n this.loading = false;\n this.variant = 'main';\n this.hasIconLeft = false;\n this.hasIconRight = false;\n this.borderRadius = 'm';\n }\n render() {\n this.style.cssText = `\n --local-width: ${this.fullWidth ? '100%' : 'auto'};\n --local-opacity-100: ${this.loading ? 0 : 1};\n --local-opacity-000: ${this.loading ? 1 : 0};\n --local-border-radius: var(--wui-border-radius-${this.borderRadius});\n `;\n const textVariant = this.textVariant ?? TEXT_VARIANT_BY_SIZE[this.size];\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${this.loadingTemplate()}\n this.handleSlotLeftChange()}>\n \n \n \n this.handleSlotRightChange()}>\n \n `;\n }\n handleSlotLeftChange() {\n this.hasIconLeft = true;\n }\n handleSlotRightChange() {\n this.hasIconRight = true;\n }\n loadingTemplate() {\n if (this.loading) {\n const size = SPINNER_SIZE_BY_SIZE[this.size];\n const color = this.disabled\n ? SPINNER_COLOR_BY_VARIANT['disabled']\n : SPINNER_COLOR_BY_VARIANT[this.variant];\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``;\n }\n};\nWuiButton.styles = [_utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.resetStyles, _utils_ThemeUtil_js__WEBPACK_IMPORTED_MODULE_4__.elementStyles, _styles_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiButton.prototype, \"size\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiButton.prototype, \"disabled\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiButton.prototype, \"fullWidth\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiButton.prototype, \"loading\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiButton.prototype, \"variant\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiButton.prototype, \"hasIconLeft\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)({ type: Boolean })\n], WuiButton.prototype, \"hasIconRight\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiButton.prototype, \"borderRadius\", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], WuiButton.prototype, \"textVariant\", void 0);\nWuiButton = __decorate([\n (0,_utils_WebComponentsUtil_js__WEBPACK_IMPORTED_MODULE_5__.customElement)('wui-button')\n], WuiButton);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-button/index.js?")},90157:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const Utils = __webpack_require__(/*! ./utils */ 56886)\nconst ECLevel = __webpack_require__(/*! ./error-correction-level */ 49953)\nconst BitBuffer = __webpack_require__(/*! ./bit-buffer */ 99899)\nconst BitMatrix = __webpack_require__(/*! ./bit-matrix */ 8820)\nconst AlignmentPattern = __webpack_require__(/*! ./alignment-pattern */ 6421)\nconst FinderPattern = __webpack_require__(/*! ./finder-pattern */ 7756)\nconst MaskPattern = __webpack_require__(/*! ./mask-pattern */ 81332)\nconst ECCode = __webpack_require__(/*! ./error-correction-code */ 97518)\nconst ReedSolomonEncoder = __webpack_require__(/*! ./reed-solomon-encoder */ 74764)\nconst Version = __webpack_require__(/*! ./version */ 31427)\nconst FormatInfo = __webpack_require__(/*! ./format-info */ 84565)\nconst Mode = __webpack_require__(/*! ./mode */ 30208)\nconst Segments = __webpack_require__(/*! ./segments */ 29801)\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/qrcode.js?")},91333:module=>{eval("// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/can-promise.js?")},91382:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mAllWalletsSearch: () => (/* binding */ W3mAllWalletsSearch)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @reown/appkit-controllers */ 88249);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui/wui-flex */ 60310);\n/* harmony import */ var _reown_appkit_ui_wui_grid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-grid */ 29077);\n/* harmony import */ var _reown_appkit_ui_wui_icon_box__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-ui/wui-icon-box */ 77616);\n/* harmony import */ var _reown_appkit_ui_wui_loading_spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-ui/wui-loading-spinner */ 93373);\n/* harmony import */ var _reown_appkit_ui_wui_text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-ui/wui-text */ 45090);\n/* harmony import */ var _utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/WalletUtil.js */ 65042);\n/* harmony import */ var _w3m_all_wallets_list_item_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../w3m-all-wallets-list-item/index.js */ 20254);\n/* harmony import */ var _styles_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./styles.js */ 23882);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\n\n\n\n\n\n\nlet W3mAllWalletsSearch = class W3mAllWalletsSearch extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super(...arguments);\n this.prevQuery = \'\';\n this.prevBadge = undefined;\n this.loading = true;\n this.query = \'\';\n }\n render() {\n this.onSearch();\n return this.loading\n ? (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) ``\n : this.walletsTemplate();\n }\n async onSearch() {\n if (this.query.trim() !== this.prevQuery.trim() || this.badge !== this.prevBadge) {\n this.prevQuery = this.query;\n this.prevBadge = this.badge;\n this.loading = true;\n await _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.ApiController.searchWallet({ search: this.query, badge: this.badge });\n this.loading = false;\n }\n }\n walletsTemplate() {\n const { search } = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_11__.ApiController.state;\n const wallets = _utils_WalletUtil_js__WEBPACK_IMPORTED_MODULE_8__.WalletUtil.markWalletsAsInstalled(search);\n if (!search.length) {\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n \n \n No Wallet found\n \n \n `;\n }\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n \n ${wallets.map(wallet => (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnectWallet(wallet)}\n .wallet=${wallet}\n data-testid="wallet-search-item-${wallet.id}"\n >\n `)}\n \n `;\n }\n onConnectWallet(wallet) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_12__.ConnectorController.selectWalletConnector(wallet);\n }\n};\nW3mAllWalletsSearch.styles = _styles_js__WEBPACK_IMPORTED_MODULE_10__["default"];\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mAllWalletsSearch.prototype, "loading", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mAllWalletsSearch.prototype, "query", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mAllWalletsSearch.prototype, "badge", void 0);\nW3mAllWalletsSearch = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_2__.customElement)(\'w3m-all-wallets-search\')\n], W3mAllWalletsSearch);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-all-wallets-search/index.js?')},91975:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiListWallet: () => (/* reexport safe */ _src_composites_wui_list_wallet_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiListWallet)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_list_wallet_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-list-wallet/index.js */ 77032);\n\n//# sourceMappingURL=wui-list-wallet.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-list-wallet.js?")},92726:(__unused_webpack_module,exports)=>{eval("function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/renderer/utils.js?")},93373:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiLoadingSpinner: () => (/* reexport safe */ _src_components_wui_loading_spinner_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiLoadingSpinner)\n/* harmony export */ });\n/* harmony import */ var _src_components_wui_loading_spinner_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/components/wui-loading-spinner/index.js */ 97158);\n\n//# sourceMappingURL=wui-loading-spinner.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-loading-spinner.js?")},93697:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 91135);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,lit__WEBPACK_IMPORTED_MODULE_0__.css) `\n button {\n background-color: var(--wui-color-fg-300);\n border-radius: var(--wui-border-radius-4xs);\n width: 16px;\n height: 16px;\n }\n\n button:disabled {\n background-color: var(--wui-color-bg-300);\n }\n\n wui-icon {\n color: var(--wui-color-bg-200) !important;\n }\n\n button:focus-visible {\n background-color: var(--wui-color-fg-250);\n border: 1px solid var(--wui-color-accent-100);\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled {\n background-color: var(--wui-color-fg-250);\n }\n\n button:active:enabled {\n background-color: var(--wui-color-fg-225);\n }\n }\n`);\n//# sourceMappingURL=styles.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-input-element/styles.js?')},96480:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ QrCodeUtil: () => (/* binding */ QrCodeUtil)\n/* harmony export */ });\n/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! qrcode */ 87583);\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit */ 91135);\n\n\nconst CONNECTING_ERROR_MARGIN = 0.1;\nconst CIRCLE_SIZE_MODIFIER = 2.5;\nconst QRCODE_MATRIX_MARGIN = 7;\nfunction isAdjecentDots(cy, otherCy, cellSize) {\n if (cy === otherCy) {\n return false;\n }\n const diff = cy - otherCy < 0 ? otherCy - cy : cy - otherCy;\n return diff <= cellSize + CONNECTING_ERROR_MARGIN;\n}\nfunction getMatrix(value, errorCorrectionLevel) {\n const arr = Array.prototype.slice.call(qrcode__WEBPACK_IMPORTED_MODULE_0__.create(value, { errorCorrectionLevel }).modules.data, 0);\n const sqrt = Math.sqrt(arr.length);\n return arr.reduce((rows, key, index) => (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows, []);\n}\nconst QrCodeUtil = {\n generate({ uri, size, logoSize, dotColor = '#141414' }) {\n const edgeColor = 'transparent';\n const strokeWidth = 5;\n const dots = [];\n const matrix = getMatrix(uri, 'Q');\n const cellSize = size / matrix.length;\n const qrList = [\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 }\n ];\n qrList.forEach(({ x, y }) => {\n const x1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * x;\n const y1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * y;\n const borderRadius = 0.45;\n for (let i = 0; i < qrList.length; i += 1) {\n const dotSize = cellSize * (QRCODE_MATRIX_MARGIN - i * 2);\n dots.push((0,lit__WEBPACK_IMPORTED_MODULE_1__.svg) `\n \n `);\n }\n });\n const clearArenaSize = Math.floor((logoSize + 25) / cellSize);\n const matrixMiddleStart = matrix.length / 2 - clearArenaSize / 2;\n const matrixMiddleEnd = matrix.length / 2 + clearArenaSize / 2 - 1;\n const circles = [];\n matrix.forEach((row, i) => {\n row.forEach((_, j) => {\n if (matrix[i][j]) {\n if (!((i < QRCODE_MATRIX_MARGIN && j < QRCODE_MATRIX_MARGIN) ||\n (i > matrix.length - (QRCODE_MATRIX_MARGIN + 1) && j < QRCODE_MATRIX_MARGIN) ||\n (i < QRCODE_MATRIX_MARGIN && j > matrix.length - (QRCODE_MATRIX_MARGIN + 1)))) {\n if (!(i > matrixMiddleStart &&\n i < matrixMiddleEnd &&\n j > matrixMiddleStart &&\n j < matrixMiddleEnd)) {\n const cx = i * cellSize + cellSize / 2;\n const cy = j * cellSize + cellSize / 2;\n circles.push([cx, cy]);\n }\n }\n }\n });\n });\n const circlesToConnect = {};\n circles.forEach(([cx, cy]) => {\n if (circlesToConnect[cx]) {\n circlesToConnect[cx]?.push(cy);\n }\n else {\n circlesToConnect[cx] = [cy];\n }\n });\n Object.entries(circlesToConnect)\n .map(([cx, cys]) => {\n const newCys = cys.filter(cy => cys.every(otherCy => !isAdjecentDots(cy, otherCy, cellSize)));\n return [Number(cx), newCys];\n })\n .forEach(([cx, cys]) => {\n cys.forEach(cy => {\n dots.push((0,lit__WEBPACK_IMPORTED_MODULE_1__.svg) ``);\n });\n });\n Object.entries(circlesToConnect)\n .filter(([_, cys]) => cys.length > 1)\n .map(([cx, cys]) => {\n const newCys = cys.filter(cy => cys.some(otherCy => isAdjecentDots(cy, otherCy, cellSize)));\n return [Number(cx), newCys];\n })\n .map(([cx, cys]) => {\n cys.sort((a, b) => (a < b ? -1 : 1));\n const groups = [];\n for (const cy of cys) {\n const group = groups.find(item => item.some(otherCy => isAdjecentDots(cy, otherCy, cellSize)));\n if (group) {\n group.push(cy);\n }\n else {\n groups.push([cy]);\n }\n }\n return [cx, groups.map(item => [item[0], item[item.length - 1]])];\n })\n .forEach(([cx, groups]) => {\n groups.forEach(([y1, y2]) => {\n dots.push((0,lit__WEBPACK_IMPORTED_MODULE_1__.svg) `\n \n `);\n });\n });\n return dots;\n }\n};\n//# sourceMappingURL=QrCode.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/src/utils/QrCode.js?")},97466:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WuiCardSelectLoader: () => (/* reexport safe */ _src_composites_wui_card_select_loader_index_js__WEBPACK_IMPORTED_MODULE_0__.WuiCardSelectLoader)\n/* harmony export */ });\n/* harmony import */ var _src_composites_wui_card_select_loader_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/composites/wui-card-select-loader/index.js */ 46929);\n\n//# sourceMappingURL=wui-card-select-loader.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-ui/dist/esm/exports/wui-card-select-loader.js?")},97518:(__unused_webpack_module,exports,__webpack_require__)=>{eval("const ECLevel = __webpack_require__(/*! ./error-correction-level */ 49953)\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/error-correction-code.js?")},98704:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ W3mConnectWalletConnectWidget: () => (/* binding */ W3mConnectWalletConnectWidget)\n/* harmony export */ });\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lit */ 61340);\n/* harmony import */ var lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit/decorators.js */ 50832);\n/* harmony import */ var lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lit/directives/if-defined.js */ 9356);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @reown/appkit-controllers */ 36010);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @reown/appkit-controllers */ 73337);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @reown/appkit-controllers */ 26742);\n/* harmony import */ var _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @reown/appkit-controllers */ 78508);\n/* harmony import */ var _reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @reown/appkit-ui */ 93571);\n/* harmony import */ var _reown_appkit_ui_wui_list_wallet__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @reown/appkit-ui/wui-list-wallet */ 91975);\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n\n\n\n\n\n\nlet W3mConnectWalletConnectWidget = class W3mConnectWalletConnectWidget extends lit__WEBPACK_IMPORTED_MODULE_0__.LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tabIdx = undefined;\n this.connectors = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectorController.state.connectors;\n this.connectorImages = _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.AssetController.state.connectorImages;\n this.unsubscribe.push(_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectorController.subscribeKey(\'connectors\', val => (this.connectors = val)), _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_6__.AssetController.subscribeKey(\'connectorImages\', val => (this.connectorImages = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n if (_reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_7__.CoreHelperUtil.isMobile()) {\n this.style.cssText = `display: none`;\n return null;\n }\n const connector = this.connectors.find(c => c.id === \'walletConnect\');\n if (!connector) {\n this.style.cssText = `display: none`;\n return null;\n }\n const connectorImage = connector.imageUrl || this.connectorImages[connector?.imageId ?? \'\'];\n return (0,lit__WEBPACK_IMPORTED_MODULE_0__.html) `\n this.onConnector(connector)}\n tagLabel="qr code"\n tagVariant="main"\n tabIdx=${(0,lit_directives_if_defined_js__WEBPACK_IMPORTED_MODULE_2__.ifDefined)(this.tabIdx)}\n data-testid="wallet-selector-walletconnect"\n >\n \n `;\n }\n onConnector(connector) {\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_5__.ConnectorController.setActiveConnector(connector);\n _reown_appkit_controllers__WEBPACK_IMPORTED_MODULE_8__.RouterController.push(\'ConnectingWalletConnect\');\n }\n};\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.property)()\n], W3mConnectWalletConnectWidget.prototype, "tabIdx", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectWalletConnectWidget.prototype, "connectors", void 0);\n__decorate([\n (0,lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__.state)()\n], W3mConnectWalletConnectWidget.prototype, "connectorImages", void 0);\nW3mConnectWalletConnectWidget = __decorate([\n (0,_reown_appkit_ui__WEBPACK_IMPORTED_MODULE_3__.customElement)(\'w3m-connect-walletconnect-widget\')\n], W3mConnectWalletConnectWidget);\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-connect-walletconnect-widget/index.js?')},99899:module=>{eval("function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n\n\n//# sourceURL=webpack://openscan/./node_modules/qrcode/lib/core/bit-buffer.js?")}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1158.bundle.js b/packages/plugin/src/explorer/dist/1158.bundle.js deleted file mode 100644 index 07f0bff..0000000 --- a/packages/plugin/src/explorer/dist/1158.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1158],{51158:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ unichain_default)\n/* harmony export */ });\n"use client";\n\n// src/components/RainbowKitProvider/chainIcons/unichain.svg\nvar unichain_default = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cg%20transform%3D%22translate(0%2C0)%20scale(0.7)%22%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22url(%23b)%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M36%2019.696c-8.672%200-15.696-7.03-15.696-15.696h-.608v15.696H4v.608c8.673%200%2015.696%207.03%2015.696%2015.696h.608V20.304H36v-.608Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CradialGradient%20id%3D%22b%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientTransform%3D%22matrix(0%2020%20-20%200%2020%2020)%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23FC74FE%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23F50DB4%22%2F%3E%3C%2FradialGradient%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h40v40H0z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fg%3E%3C%2Fsvg%3E";\n\n\n\n//# sourceURL=webpack://openscan/./node_modules/@rainbow-me/rainbowkit/dist/unichain-C5BWO2ZY.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1165.bundle.js b/packages/plugin/src/explorer/dist/1165.bundle.js deleted file mode 100644 index 5531bb7..0000000 --- a/packages/plugin/src/explorer/dist/1165.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1165],{1165:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ Brave_default)\n/* harmony export */ });\n"use client";\n\n// src/components/Icons/Brave.svg\nvar Brave_default = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2078%2078%22%3E%3Cpath%20fill%3D%22url(%23a)%22%20fill-rule%3D%22evenodd%22%20d%3D%22m67.81%2019.54%201.69-4.2s-2.14-2.35-4.75-5c-2.6-2.65-8.1-1.09-8.1-1.09L50.37%202H28.34l-6.28%207.25s-5.5-1.56-8.1%201.1c-2.6%202.64-4.75%204.98-4.75%204.98l1.69%204.21-2.15%206.24s6.3%2024.3%207.04%2027.28c1.46%205.84%202.45%208.1%206.58%2011.06a513.66%20513.66%200%200%200%2012.85%208.89c1.23.78%202.76%202.1%204.13%202.1%201.38%200%202.91-1.32%204.14-2.1%201.22-.78%208.72-5.92%2012.85-8.89%204.13-2.96%205.12-5.22%206.58-11.06.74-2.97%207.04-27.28%207.04-27.28l-2.15-6.24Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%20d%3D%22M39.35%2047.5c.42%200%203.11.97%205.27%202.1%202.15%201.14%203.72%201.95%204.22%202.26.5.32.2.92-.26%201.25-.46.33-6.57%205.15-7.17%205.69-.6.53-1.46%201.41-2.06%201.41-.59%200-1.46-.88-2.05-1.41-.6-.54-6.71-5.36-7.17-5.69-.45-.33-.76-.93-.26-1.25.5-.31%202.07-1.12%204.22-2.25%202.16-1.14%204.85-2.1%205.26-2.1Zm.04-34.36c.2.01%201.36.07%203.02.63%201.84.63%203.83%201.4%204.75%201.4.92%200%207.73-1.32%207.73-1.32s8.06%209.94%208.06%2012.06c0%202.13-1.01%202.69-2.03%203.8l-6.05%206.54c-.57.62-1.77%201.55-1.06%203.24.7%201.7%201.73%203.84.58%206.03-1.15%202.18-3.12%203.63-4.38%203.4-1.26-.25-4.23-1.83-5.32-2.55-1.09-.72-4.54-3.62-4.54-4.73%200-1.11%203.57-3.1%204.23-3.56.66-.45%203.67-2.2%203.73-2.9.06-.69.04-.89-.85-2.59-.89-1.7-2.49-3.97-2.22-5.48.26-1.51%202.84-2.3%204.68-3%201.84-.71%205.39-2.05%205.83-2.26.44-.2.33-.4-1.01-.53s-5.15-.65-6.86-.16c-1.72.49-4.65%201.23-4.89%201.62-.24.4-.45.4-.2%201.76.24%201.36%201.5%207.87%201.62%209.02.12%201.16.36%201.92-.87%202.2-1.22.3-3.28.79-3.99.79-.7%200-2.76-.5-3.99-.78-1.22-.29-.98-1.05-.86-2.2.12-1.16%201.38-7.67%201.62-9.03.25-1.35.04-1.37-.2-1.76-.24-.4-3.17-1.13-4.89-1.62-1.71-.49-5.52.03-6.86.16-1.34.13-1.46.32-1.01.53.44.21%203.98%201.55%205.83%202.26%201.84.7%204.42%201.49%204.68%203%20.27%201.51-1.33%203.78-2.22%205.48-.89%201.7-.91%201.9-.85%202.6.06.68%203.07%202.44%203.73%202.89.66.45%204.23%202.45%204.23%203.56%200%201.1-3.45%204.01-4.54%204.73-1.1.72-4.06%202.3-5.32%202.54-1.26.24-3.23-1.21-4.38-3.4-1.15-2.18-.12-4.33.58-6.02.7-1.69-.49-2.62-1.06-3.24L17.8%2029.7c-1.02-1.1-2.04-1.66-2.04-3.79%200-2.12%208.07-12.06%208.07-12.06s6.81%201.33%207.73%201.33c.92%200%202.9-.78%204.74-1.4a11.3%2011.3%200%200%201%203.03-.64h.07Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cmask%20id%3D%22b%22%20width%3D%2252%22%20height%3D%2214%22%20x%3D%2213%22%20y%3D%222%22%20maskUnits%3D%22userSpaceOnUse%22%20style%3D%22mask-type%3Aalpha%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M56.64%209.25%2050.37%202H28.34l-6.28%207.25s-5.5-1.56-8.1%201.1c0%200%207.34-.68%209.86%203.5%200%200%206.81%201.33%207.73%201.33.92%200%202.9-.78%204.74-1.4%201.84-.63%203.06-.64%203.06-.64s1.23%200%203.06.63c1.84.63%203.83%201.4%204.75%201.4.92%200%207.73-1.32%207.73-1.32%202.52-4.18%209.86-3.5%209.86-3.5-2.6-2.66-8.1-1.1-8.1-1.1Z%22%2F%3E%3C%2Fmask%3E%3Cg%20mask%3D%22url(%23b)%22%3E%3Cpath%20fill%3D%22url(%23c)%22%20d%3D%22M56.64%209.25%2050.37%202H28.34l-6.28%207.25s-5.5-1.56-8.1%201.1c0%200%207.34-.68%209.86%203.5%200%200%206.81%201.33%207.73%201.33.92%200%202.9-.78%204.74-1.4%201.84-.63%203.06-.64%203.06-.64s1.23%200%203.06.63c1.84.63%203.83%201.4%204.75%201.4.92%200%207.73-1.32%207.73-1.32%202.52-4.18%209.86-3.5%209.86-3.5-2.6-2.66-8.1-1.1-8.1-1.1Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%228.75%22%20x2%3D%2269.96%22%20y1%3D%2239.07%22%20y2%3D%2239.07%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23F50%22%2F%3E%3Cstop%20offset%3D%22.41%22%20stop-color%3D%22%23F50%22%2F%3E%3Cstop%20offset%3D%22.58%22%20stop-color%3D%22%23FF2000%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF2000%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22c%22%20x1%3D%2215.05%22%20x2%3D%2264.75%22%20y1%3D%228.68%22%20y2%3D%228.68%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23FF452A%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF2000%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";\n\n\n\n//# sourceURL=webpack://openscan/./node_modules/@rainbow-me/rainbowkit/dist/Brave-BRAKJXDS.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1195.bundle.js b/packages/plugin/src/explorer/dist/1195.bundle.js deleted file mode 100644 index 5072ec8..0000000 --- a/packages/plugin/src/explorer/dist/1195.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1195],{71195:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ es_419_default)\n/* harmony export */ });\n"use client";\n\n// src/locales/es_419.json\nvar es_419_default = \'{\\n "connect_wallet": {\\n "label": "Conectar la billetera",\\n "wrong_network": {\\n "label": "Red incorrecta"\\n }\\n },\\n "intro": {\\n "title": "\\xBFQu\\xE9 es una billetera?",\\n "description": "Una billetera se usa para enviar, recibir, almacenar y mostrar activos digitales. Tambi\\xE9n es una nueva forma de iniciar sesi\\xF3n, sin necesidad de crear nuevas cuentas y contrase\\xF1as en cada sitio web.",\\n "digital_asset": {\\n "title": "Un hogar para tus Activos Digitales",\\n "description": "Las carteras se utilizan para enviar, recibir, almacenar y mostrar activos digitales como Ethereum y NFTs."\\n },\\n "login": {\\n "title": "Una nueva forma de iniciar sesi\\xF3n",\\n "description": "En lugar de crear nuevas cuentas y contrase\\xF1as en cada sitio web, simplemente conecta tu cartera."\\n },\\n "get": {\\n "label": "Obtener una billetera"\\n },\\n "learn_more": {\\n "label": "Obtener m\\xE1s informaci\\xF3n"\\n }\\n },\\n "sign_in": {\\n "label": "Verifica tu cuenta",\\n "description": "Para terminar de conectar, debes firmar un mensaje en tu billetera para verificar que eres el propietario de esta cuenta.",\\n "message": {\\n "send": "Enviar mensaje",\\n "preparing": "Preparando mensaje...",\\n "cancel": "Cancelar",\\n "preparing_error": "Error al preparar el mensaje, \\xA1intenta de nuevo!"\\n },\\n "signature": {\\n "waiting": "Esperando firma...",\\n "verifying": "Verificando firma...",\\n "signing_error": "Error al firmar el mensaje, \\xA1intenta de nuevo!",\\n "verifying_error": "Error al verificar la firma, \\xA1intenta de nuevo!",\\n "oops_error": "\\xA1Ups! Algo sali\\xF3 mal."\\n }\\n },\\n "connect": {\\n "label": "Conectar",\\n "title": "Conectar una billetera",\\n "new_to_ethereum": {\\n "description": "\\xBFEres nuevo en las billeteras Ethereum?",\\n "learn_more": {\\n "label": "Obtener m\\xE1s informaci\\xF3n"\\n }\\n },\\n "learn_more": {\\n "label": "Obtener m\\xE1s informaci\\xF3n"\\n },\\n "recent": "Reciente",\\n "status": {\\n "opening": "Abriendo %{wallet}...",\\n "connecting": "Conectando",\\n "connect_mobile": "Continuar en %{wallet}",\\n "not_installed": "%{wallet} no est\\xE1 instalado",\\n "not_available": "%{wallet} no est\\xE1 disponible",\\n "confirm": "Confirma la conexi\\xF3n en la extensi\\xF3n",\\n "confirm_mobile": "Aceptar la solicitud de conexi\\xF3n en la cartera"\\n },\\n "secondary_action": {\\n "get": {\\n "description": "\\xBFNo tienes %{wallet}?",\\n "label": "OBTENER"\\n },\\n "install": {\\n "label": "INSTALAR"\\n },\\n "retry": {\\n "label": "REINTENTAR"\\n }\\n },\\n "walletconnect": {\\n "description": {\\n "full": "\\xBFNecesitas el modal oficial de WalletConnect?",\\n "compact": "\\xBFNecesitas el modal de WalletConnect?"\\n },\\n "open": {\\n "label": "ABRIR"\\n }\\n }\\n },\\n "connect_scan": {\\n "title": "Escanea con %{wallet}",\\n "fallback_title": "Escanea con tu tel\\xE9fono"\\n },\\n "connector_group": {\\n "installed": "Instalado",\\n "recommended": "Recomendado",\\n "other": "Otro",\\n "popular": "Popular",\\n "more": "M\\xE1s",\\n "others": "Otros"\\n },\\n "get": {\\n "title": "Obtener una billetera",\\n "action": {\\n "label": "OBTENER"\\n },\\n "mobile": {\\n "description": "Billetera M\\xF3vil"\\n },\\n "extension": {\\n "description": "Extensi\\xF3n de navegador"\\n },\\n "mobile_and_extension": {\\n "description": "Billetera m\\xF3vil y extensi\\xF3n"\\n },\\n "mobile_and_desktop": {\\n "description": "Billetera M\\xF3vil y de Escritorio"\\n },\\n "looking_for": {\\n "title": "\\xBFNo es lo que est\\xE1s buscando?",\\n "mobile": {\\n "description": "Seleccione una billetera en la pantalla principal para comenzar con un proveedor de billetera diferente."\\n },\\n "desktop": {\\n "compact_description": "Seleccione una cartera en la pantalla principal para comenzar con un proveedor de cartera diferente.",\\n "wide_description": "Seleccione una cartera a la izquierda para comenzar con un proveedor de cartera diferente."\\n }\\n }\\n },\\n "get_options": {\\n "title": "Comienza con %{wallet}",\\n "short_title": "Obtener %{wallet}",\\n "mobile": {\\n "title": "%{wallet} para m\\xF3vil",\\n "description": "Use la billetera m\\xF3vil para explorar el mundo de Ethereum.",\\n "download": {\\n "label": "Obtener la aplicaci\\xF3n"\\n }\\n },\\n "extension": {\\n "title": "%{wallet} para %{browser}",\\n "description": "Acceda a su billetera directamente desde su navegador web favorito.",\\n "download": {\\n "label": "A\\xF1adir a %{browser}"\\n }\\n },\\n "desktop": {\\n "title": "%{wallet} para %{platform}",\\n "description": "Acceda a su billetera de forma nativa desde su potente escritorio.",\\n "download": {\\n "label": "A\\xF1adir a %{platform}"\\n }\\n }\\n },\\n "get_mobile": {\\n "title": "Instalar %{wallet}",\\n "description": "Escanee con su tel\\xE9fono para descargar en iOS o Android",\\n "continue": {\\n "label": "Continuar"\\n }\\n },\\n "get_instructions": {\\n "mobile": {\\n "connect": {\\n "label": "Conectar"\\n },\\n "learn_more": {\\n "label": "Obtener m\\xE1s informaci\\xF3n"\\n }\\n },\\n "extension": {\\n "refresh": {\\n "label": "Actualizar"\\n },\\n "learn_more": {\\n "label": "Obtener m\\xE1s informaci\\xF3n"\\n }\\n },\\n "desktop": {\\n "connect": {\\n "label": "Conectar"\\n },\\n "learn_more": {\\n "label": "Obtener m\\xE1s informaci\\xF3n"\\n }\\n }\\n },\\n "chains": {\\n "title": "Cambiar redes",\\n "wrong_network": "Se detect\\xF3 la red incorrecta, cambia o descon\\xE9ctate para continuar.",\\n "confirm": "Confirmar en la cartera",\\n "switching_not_supported": "Tu cartera no admite cambiar las redes desde %{appName}. Intenta cambiar las redes desde tu cartera.",\\n "switching_not_supported_fallback": "Su billetera no admite el cambio de redes desde esta aplicaci\\xF3n. Intente cambiar de red desde dentro de su billetera en su lugar.",\\n "disconnect": "Desconectar",\\n "connected": "Conectado"\\n },\\n "profile": {\\n "disconnect": {\\n "label": "Desconectar"\\n },\\n "copy_address": {\\n "label": "Copiar direcci\\xF3n",\\n "copied": "\\xA1Copiado!"\\n },\\n "explorer": {\\n "label": "Ver m\\xE1s en el explorador"\\n },\\n "transactions": {\\n "description": "%{appName} transacciones aparecer\\xE1n aqu\\xED...",\\n "description_fallback": "Tus transacciones aparecer\\xE1n aqu\\xED...",\\n "recent": {\\n "title": "Transacciones recientes"\\n },\\n "clear": {\\n "label": "Borrar Todo"\\n }\\n }\\n },\\n "wallet_connectors": {\\n "argent": {\\n "qr_code": {\\n "step1": {\\n "description": "Coloque Argent en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Abra la aplicaci\\xF3n Argent"\\n },\\n "step2": {\\n "description": "Cree una billetera y un nombre de usuario, o importe una billetera existente.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n Escanear QR"\\n }\\n }\\n },\\n "berasig": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n BeraSig",\\n "description": "Recomendamos anclar BeraSig a tu barra de tareas para acceder m\\xE1s f\\xE1cilmente a tu cartera."\\n },\\n "step2": {\\n "title": "Crea una Cartera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "best": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Best Wallet",\\n "description": "Agrega Best Wallet a tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el icono de QR y escanee",\\n "description": "Toca el icono QR en tu pantalla de inicio, escanea el c\\xF3digo y confirma el prompt para conectar."\\n }\\n }\\n },\\n "bifrost": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner Bifrost Wallet en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abra la aplicaci\\xF3n Bifrost Wallet"\\n },\\n "step2": {\\n "description": "Cree o importe una billetera usando su frase de recuperaci\\xF3n.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n de escaneo"\\n }\\n }\\n },\\n "bitget": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos colocar Bitget Wallet en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abra la aplicaci\\xF3n Bitget Wallet"\\n },\\n "step2": {\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que pueda conectar su billetera.",\\n "title": "Toque el bot\\xF3n de escanear"\\n }\\n },\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar Bitget Wallet a su barra de tareas para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Instale la extensi\\xF3n de la Billetera Bitget"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refrescar tu navegador"\\n }\\n }\\n },\\n "bitski": {\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar Bitski a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala la extensi\\xF3n Bitski"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensi\\xF3n.",\\n "title": "Actualiza tu navegador"\\n }\\n }\\n },\\n "bitverse": {\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Bitverse Wallet",\\n "description": "Agregue Bitverse Wallet a su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el icono de QR y escanee",\\n "description": "Toca el icono QR en tu pantalla de inicio, escanea el c\\xF3digo y confirma el prompt para conectar."\\n }\\n }\\n },\\n "bloom": {\\n "desktop": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Bloom Wallet",\\n "description": "Recomendamos colocar Bloom Wallet en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "description": "Cree o importe una billetera usando su frase de recuperaci\\xF3n.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de tener una billetera, haga clic en Conectar para conectarse a trav\\xE9s de Bloom. Aparecer\\xE1 un aviso de conexi\\xF3n en la aplicaci\\xF3n para que confirme la conexi\\xF3n.",\\n "title": "Haga clic en Conectar"\\n }\\n }\\n },\\n "bybit": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner Bybit en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Abra la aplicaci\\xF3n Bybit"\\n },\\n "step2": {\\n "description": "Puede respaldar f\\xE1cilmente su billetera utilizando nuestra funci\\xF3n de respaldo en su tel\\xE9fono.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n de escaneo"\\n }\\n },\\n "extension": {\\n "step1": {\\n "description": "Haga clic en la parte superior derecha de su navegador y ancle Bybit Wallet para un acceso f\\xE1cil.",\\n "title": "Instale la extensi\\xF3n Bybit Wallet"\\n },\\n "step2": {\\n "description": "Crea una nueva billetera o importa una existente.",\\n "title": "Crear o Importar una billetera"\\n },\\n "step3": {\\n "description": "Una vez que haya configurado Bybit Wallet, haga clic a continuaci\\xF3n para actualizar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refrescar tu navegador"\\n }\\n }\\n },\\n "binance": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner Binance en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Abre la aplicaci\\xF3n Binance"\\n },\\n "step2": {\\n "description": "Puede respaldar f\\xE1cilmente su billetera utilizando nuestra funci\\xF3n de respaldo en su tel\\xE9fono.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n WalletConnect"\\n }\\n }\\n },\\n "coin98": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner Coin98 Wallet en la pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Abra la aplicaci\\xF3n Coin98 Wallet"\\n },\\n "step2": {\\n "description": "Puede respaldar f\\xE1cilmente su billetera utilizando nuestra funci\\xF3n de respaldo en su tel\\xE9fono.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n WalletConnect"\\n }\\n },\\n "extension": {\\n "step1": {\\n "description": "Haga clic en la parte superior derecha de su navegador y fije Coin98 Wallet para un f\\xE1cil acceso.",\\n "title": "Instale la extensi\\xF3n Coin98 Wallet"\\n },\\n "step2": {\\n "description": "Crea una nueva billetera o importa una existente.",\\n "title": "Crear o Importar una billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures Coin98 Wallet, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refresca tu navegador"\\n }\\n }\\n },\\n "coinbase": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner Coinbase Wallet en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abre la aplicaci\\xF3n de la Billetera Coinbase"\\n },\\n "step2": {\\n "description": "Puedes respaldar tu billetera f\\xE1cilmente utilizando la funci\\xF3n de respaldo en la nube.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conectes tu billetera.",\\n "title": "Pulsa el bot\\xF3n de escanear"\\n }\\n },\\n "extension": {\\n "step1": {\\n "description": "Te recomendamos anclar la Billetera Coinbase a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala la extensi\\xF3n de la Billetera Coinbase"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configure su billetera, haga clic abajo para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refresca tu navegador"\\n }\\n }\\n },\\n "compass": {\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar la Billetera Compass a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala la extensi\\xF3n de la Billetera Compass"\\n },\\n "step2": {\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refrescar tu navegador"\\n }\\n }\\n },\\n "core": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner Core en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Abra la aplicaci\\xF3n Core"\\n },\\n "step2": {\\n "description": "Puedes respaldar f\\xE1cilmente tu billetera utilizando nuestra funci\\xF3n de respaldo en tu tel\\xE9fono.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conectes tu billetera.",\\n "title": "Toque el bot\\xF3n WalletConnect"\\n }\\n },\\n "extension": {\\n "step1": {\\n "description": "Recomendamos fijar Core a tu barra de tareas para acceder m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala la extensi\\xF3n Core"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de hacer una copia de seguridad de tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refresca tu navegador"\\n }\\n }\\n },\\n "fox": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner FoxWallet en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abre la aplicaci\\xF3n FoxWallet"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 una solicitud de conexi\\xF3n para que conectes tu billetera.",\\n "title": "Toca el bot\\xF3n de escanear"\\n }\\n }\\n },\\n "frontier": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner la Billetera Frontier en tu pantalla principal para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abre la aplicaci\\xF3n de la Billetera Frontier"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje para que conectes tu billetera.",\\n "title": "Haz clic en el bot\\xF3n de escaneo"\\n }\\n },\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar la billetera Frontier a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala la extensi\\xF3n de la billetera Frontier"\\n },\\n "step2": {\\n "description": "Aseg\\xFArese de hacer una copia de seguridad de su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configure su billetera, haga clic a continuaci\\xF3n para actualizar el navegador y cargar la extensi\\xF3n.",\\n "title": "Actualizar tu navegador"\\n }\\n }\\n },\\n "im_token": {\\n "qr_code": {\\n "step1": {\\n "title": "Abrir la aplicaci\\xF3n imToken",\\n "description": "Pon la aplicaci\\xF3n imToken en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toca el Icono del Esc\\xE1ner en la esquina superior derecha",\\n "description": "Elija Nueva Conexi\\xF3n, luego escanee el c\\xF3digo QR y confirme el aviso para conectar."\\n }\\n }\\n },\\n "iopay": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner ioPay en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Abre la aplicaci\\xF3n ioPay"\\n },\\n "step2": {\\n "description": "Puede respaldar f\\xE1cilmente su billetera utilizando nuestra funci\\xF3n de respaldo en su tel\\xE9fono.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n WalletConnect"\\n }\\n }\\n },\\n "kaikas": {\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar Kaikas a su barra de tareas para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Instale la extensi\\xF3n Kaikas"\\n },\\n "step2": {\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refrescar tu navegador"\\n }\\n },\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Kaikas",\\n "description": "Ponga la aplicaci\\xF3n Kaikas en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toca el Icono del Esc\\xE1ner en la esquina superior derecha",\\n "description": "Elija Nueva Conexi\\xF3n, luego escanee el c\\xF3digo QR y confirme el aviso para conectar."\\n }\\n }\\n },\\n "kaia": {\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar Kaia a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala la extensi\\xF3n Kaia"\\n },\\n "step2": {\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refrescar tu navegador"\\n }\\n },\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Kaia",\\n "description": "Pon la aplicaci\\xF3n Kaia en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toca el Icono del Esc\\xE1ner en la esquina superior derecha",\\n "description": "Elija Nueva Conexi\\xF3n, luego escanee el c\\xF3digo QR y confirme el aviso para conectar."\\n }\\n }\\n },\\n "kraken": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Kraken Wallet",\\n "description": "Agrega la Billetera Kraken a tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el icono de QR y escanee",\\n "description": "Toca el icono QR en tu pantalla de inicio, escanea el c\\xF3digo y confirma el prompt para conectar."\\n }\\n }\\n },\\n "kresus": {\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Kresus Wallet",\\n "description": "Agregue Kresus Wallet a su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el icono de QR y escanee",\\n "description": "Toca el icono QR en tu pantalla de inicio, escanea el c\\xF3digo y confirma el prompt para conectar."\\n }\\n }\\n },\\n "magicEden": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n de Magic Eden",\\n "description": "Recomendamos anclar Magic Eden a tu barra de tareas para acceder m\\xE1s f\\xE1cilmente a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera usando un m\\xE9todo seguro. Nunca comparta su frase secreta de recuperaci\\xF3n con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "metamask": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n MetaMask",\\n "description": "Recomendamos colocar MetaMask en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Toca el bot\\xF3n de escanear",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conectes tu billetera."\\n }\\n },\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n MetaMask",\\n "description": "Recomendamos anclar MetaMask a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de hacer una copia de seguridad de tu billetera usando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refresca tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "nestwallet": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n NestWallet",\\n "description": "Recomendamos fijar NestWallet a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "okx": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n OKX Wallet",\\n "description": "Recomendamos colocar OKX Wallet en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera usando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Toca el bot\\xF3n de escanear",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conectes tu billetera."\\n }\\n },\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n de Billetera OKX",\\n "description": "Recomendamos anclar la Billetera OKX a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera usando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refresca tu navegador",\\n "description": "Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "omni": {\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Omni",\\n "description": "Agregue Omni a su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crear una nueva billetera o importar una existente."\\n },\\n "step3": {\\n "title": "Toque el icono de QR y escanee",\\n "description": "Toca el icono QR en tu pantalla principal, escanea el c\\xF3digo y confirma el aviso para conectar."\\n }\\n }\\n },\\n "1inch": {\\n "qr_code": {\\n "step1": {\\n "description": "Ponga 1inch Wallet en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Abra la aplicaci\\xF3n 1inch Wallet"\\n },\\n "step2": {\\n "description": "Cree una billetera y un nombre de usuario, o importe una billetera existente.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n Escanear QR"\\n }\\n }\\n },\\n "token_pocket": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n TokenPocket",\\n "description": "Recomendamos colocar TokenPocket en tu pantalla principal para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o importar una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Toca el bot\\xF3n de escaneo",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 una solicitud de conexi\\xF3n para que puedas conectar tu billetera."\\n }\\n },\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n TokenPocket",\\n "description": "Recomendamos anclar TokenPocket a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Actualiza tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para actualizar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "trust": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Trust Wallet",\\n "description": "Ubica Trust Wallet en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toca WalletConnect en Configuraciones",\\n "description": "Elige Nueva Conexi\\xF3n, luego escanea el c\\xF3digo QR y confirma el aviso para conectar."\\n }\\n },\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n de Trust Wallet",\\n "description": "Haz clic en la parte superior derecha de tu navegador y fija Trust Wallet para un f\\xE1cil acceso."\\n },\\n "step2": {\\n "title": "Crea o Importa una billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Refresca tu navegador",\\n "description": "Una vez que configures Trust Wallet, haz clic abajo para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "uniswap": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Uniswap",\\n "description": "Agrega la billetera Uniswap a tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toca el icono QR y escanea",\\n "description": "Toca el icono QR en tu pantalla de inicio, escanea el c\\xF3digo y confirma el prompt para conectar."\\n }\\n }\\n },\\n "zerion": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Zerion",\\n "description": "Recomendamos poner Zerion en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de hacer una copia de seguridad de tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Toca el bot\\xF3n de escanear",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conectes tu billetera."\\n }\\n },\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n Zerion",\\n "description": "Recomendamos anclar Zerion a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera usando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Actualiza tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para actualizar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "rainbow": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Rainbow",\\n "description": "Recomendamos poner Rainbow en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Puedes respaldar f\\xE1cilmente tu billetera usando nuestra funci\\xF3n de respaldo en tu tel\\xE9fono."\\n },\\n "step3": {\\n "title": "Toca el bot\\xF3n de escanear",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 una solicitud de conexi\\xF3n para que conectes tu billetera."\\n }\\n }\\n },\\n "enkrypt": {\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar la Billetera Enkrypt a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala la extensi\\xF3n de Billetera Enkrypt"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refresca tu navegador"\\n }\\n }\\n },\\n "frame": {\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar Frame a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera.",\\n "title": "Instala Frame y la extensi\\xF3n complementaria"\\n },\\n "step2": {\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refresca tu navegador"\\n }\\n }\\n },\\n "one_key": {\\n "extension": {\\n "step1": {\\n "title": "Instale la extensi\\xF3n de Billetera OneKey",\\n "description": "Recomendamos anclar la Billetera OneKey a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera usando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Actualiza tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para actualizar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "paraswap": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n ParaSwap",\\n "description": "Agrega ParaSwap Wallet a tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el icono de QR y escanee",\\n "description": "Toca el icono QR en tu pantalla de inicio, escanea el c\\xF3digo y confirma el prompt para conectar."\\n }\\n }\\n },\\n "phantom": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n Phantom",\\n "description": "Recomendamos fijar Phantom a tu barra de tareas para un acceso m\\xE1s f\\xE1cil a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera usando un m\\xE9todo seguro. Nunca comparta su frase secreta de recuperaci\\xF3n con nadie."\\n },\\n "step3": {\\n "title": "Actualiza tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "rabby": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n Rabby",\\n "description": "Recomendamos anclar Rabby a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de hacer una copia de seguridad de tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Actualiza tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic abajo para actualizar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "ronin": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos poner Ronin Wallet en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abra la aplicaci\\xF3n Ronin Wallet"\\n },\\n "step2": {\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n de escaneo"\\n }\\n },\\n "extension": {\\n "step1": {\\n "description": "Recomendamos anclar Ronin Wallet a su barra de tareas para un acceso m\\xE1s r\\xE1pido a su billetera.",\\n "title": "Instale la extensi\\xF3n Ronin Wallet"\\n },\\n "step2": {\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n.",\\n "title": "Refrescar tu navegador"\\n }\\n }\\n },\\n "ramper": {\\n "extension": {\\n "step1": {\\n "title": "Instale la extensi\\xF3n Ramper",\\n "description": "Recomendamos anclar Ramper a su barra de tareas para un acceso m\\xE1s f\\xE1cil a su billetera."\\n },\\n "step2": {\\n "title": "Crea una Cartera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "safeheron": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n Core",\\n "description": "Recomendamos anclar Safeheron a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refresca tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "taho": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n de Taho",\\n "description": "Recomendamos anclar Taho a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crea o Importa una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera utilizando un m\\xE9todo seguro. Nunca compartas tu frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refresca tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "wigwam": {\\n "extension": {\\n "step1": {\\n "title": "Instale la extensi\\xF3n Wigwam",\\n "description": "Recomendamos anclar Wigwam a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "talisman": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n de Talisman",\\n "description": "Recomendamos anclar Talisman a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crea o importa una billetera Ethereum",\\n "description": "Aseg\\xFArate de respaldar tu billetera usando un m\\xE9todo seguro. Nunca compartas tu frase de recuperaci\\xF3n con nadie."\\n },\\n "step3": {\\n "title": "Recarga tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic abajo para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "xdefi": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n de la billetera XDEFI",\\n "description": "Recomendamos anclar XDEFI Wallet a su barra de tareas para un acceso m\\xE1s r\\xE1pido a su billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Actualice su navegador",\\n "description": "Una vez que configure su billetera, haga clic abajo para actualizar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "zeal": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Zeal",\\n "description": "Agrega Zeal Wallet a tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el icono de QR y escanee",\\n "description": "Toca el icono QR en tu pantalla de inicio, escanea el c\\xF3digo y confirma el prompt para conectar."\\n }\\n },\\n "extension": {\\n "step1": {\\n "title": "Instale la extensi\\xF3n Zeal",\\n "description": "Recomendamos anclar Zeal a su barra de tareas para un acceso m\\xE1s r\\xE1pido a su billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "safepal": {\\n "extension": {\\n "step1": {\\n "title": "Instale la extensi\\xF3n de la billetera SafePal",\\n "description": "Haga clic en la esquina superior derecha de su navegador y ancle SafePal Wallet para un f\\xE1cil acceso."\\n },\\n "step2": {\\n "title": "Crear o Importar una billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configure la Billetera SafePal, haga clic abajo para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n },\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Billetera SafePal",\\n "description": "Coloque la Billetera SafePal en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido a su billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toca WalletConnect en Configuraciones",\\n "description": "Elija Nueva Conexi\\xF3n, luego escanee el c\\xF3digo QR y confirme el aviso para conectar."\\n }\\n }\\n },\\n "desig": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n Desig",\\n "description": "Recomendamos anclar Desig a tu barra de tareas para acceder m\\xE1s f\\xE1cilmente a tu cartera."\\n },\\n "step2": {\\n "title": "Crea una Cartera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "subwallet": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n SubWallet",\\n "description": "Recomendamos anclar SubWallet a tu barra de tareas para acceder a tu cartera m\\xE1s r\\xE1pidamente."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArate de respaldar tu billetera usando un m\\xE9todo seguro. Nunca compartas tu frase de recuperaci\\xF3n con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n },\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n SubWallet",\\n "description": "Recomendamos colocar SubWallet en tu pantalla principal para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Toque el bot\\xF3n de escaneo",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera."\\n }\\n }\\n },\\n "clv": {\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n CLV Wallet",\\n "description": "Recomendamos anclar la billetera CLV a tu barra de tareas para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n },\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n CLV Wallet",\\n "description": "Recomendamos colocar la billetera CLV en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera utilizando un m\\xE9todo seguro. Nunca comparta su frase secreta con nadie."\\n },\\n "step3": {\\n "title": "Toque el bot\\xF3n de escaneo",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera."\\n }\\n }\\n },\\n "okto": {\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Okto",\\n "description": "Agrega Okto a tu pantalla de inicio para un acceso r\\xE1pido"\\n },\\n "step2": {\\n "title": "Crea una billetera MPC",\\n "description": "Crea una cuenta y genera una billetera"\\n },\\n "step3": {\\n "title": "Toca WalletConnect en Configuraciones",\\n "description": "Toca el icono de Escanear QR en la parte superior derecha y confirma el mensaje para conectar."\\n }\\n }\\n },\\n "ledger": {\\n "desktop": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Ledger Live",\\n "description": "Recomendamos poner Ledger Live en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Configure su Ledger",\\n "description": "Configure un nuevo Ledger o con\\xE9ctese a uno existente."\\n },\\n "step3": {\\n "title": "Conectar",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conectes tu billetera."\\n }\\n },\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Ledger Live",\\n "description": "Recomendamos poner Ledger Live en su pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Configure su Ledger",\\n "description": "Puedes sincronizar con la aplicaci\\xF3n de escritorio o conectar tu Ledger."\\n },\\n "step3": {\\n "title": "Escanea el c\\xF3digo",\\n "description": "Toca WalletConnect y luego cambia a Scanner. Despu\\xE9s de escanear, aparecer\\xE1 un aviso de conexi\\xF3n para que conectes tu billetera."\\n }\\n }\\n },\\n "valora": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n Valora",\\n "description": "Recomendamos poner Valora en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o Importar una billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el bot\\xF3n de escaneo",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera."\\n }\\n }\\n },\\n "gate": {\\n "qr_code": {\\n "step1": {\\n "title": "Abra la aplicaci\\xF3n Gate",\\n "description": "Recomendamos poner Gate en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el bot\\xF3n de escaneo",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera."\\n }\\n },\\n "extension": {\\n "step1": {\\n "title": "Instala la extensi\\xF3n de Gate",\\n "description": "Recomendamos fijar Gate a tu barra de tareas para un acceso m\\xE1s f\\xE1cil a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Aseg\\xFArese de respaldar su billetera usando un m\\xE9todo seguro. Nunca comparta su frase secreta de recuperaci\\xF3n con nadie."\\n },\\n "step3": {\\n "title": "Refrescar tu navegador",\\n "description": "Una vez que configures tu billetera, haz clic a continuaci\\xF3n para refrescar el navegador y cargar la extensi\\xF3n."\\n }\\n }\\n },\\n "xportal": {\\n "qr_code": {\\n "step1": {\\n "description": "Coloque xPortal en su pantalla de inicio a su billetera para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abra la aplicaci\\xF3n xPortal"\\n },\\n "step2": {\\n "description": "Crea una billetera o importa una existente.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n Escanear QR"\\n }\\n }\\n },\\n "mew": {\\n "qr_code": {\\n "step1": {\\n "description": "Recomendamos colocar la billetera MEW en tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido.",\\n "title": "Abre la aplicaci\\xF3n MEW Wallet"\\n },\\n "step2": {\\n "description": "Puedes respaldar tu billetera f\\xE1cilmente utilizando la funci\\xF3n de respaldo en la nube.",\\n "title": "Crear o Importar una Billetera"\\n },\\n "step3": {\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera.",\\n "title": "Toque el bot\\xF3n de escaneo"\\n }\\n }\\n }\\n },\\n "zilpay": {\\n "qr_code": {\\n "step1": {\\n "title": "Abre la aplicaci\\xF3n ZilPay",\\n "description": "Agrega ZilPay a tu pantalla de inicio para un acceso m\\xE1s r\\xE1pido a tu billetera."\\n },\\n "step2": {\\n "title": "Crear o Importar una Billetera",\\n "description": "Crea una nueva billetera o importa una existente."\\n },\\n "step3": {\\n "title": "Toque el bot\\xF3n de escaneo",\\n "description": "Despu\\xE9s de escanear, aparecer\\xE1 un mensaje de conexi\\xF3n para que conecte su billetera."\\n }\\n }\\n }\\n}\\n\';\n\n\n\n//# sourceURL=webpack://openscan/./node_modules/@rainbow-me/rainbowkit/dist/es_419-JBX5FS3Q.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1224.bundle.js b/packages/plugin/src/explorer/dist/1224.bundle.js deleted file mode 100644 index 6d5db7f..0000000 --- a/packages/plugin/src/explorer/dist/1224.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1224],{61224:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ avalanche_default)\n/* harmony export */ });\n"use client";\n\n// src/components/RainbowKitProvider/chainIcons/avalanche.svg\nvar avalanche_default = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M23%205H5v18h18V5Z%22%2F%3E%3Cpath%20fill%3D%22%23E84142%22%20fill-rule%3D%22evenodd%22%20d%3D%22M14%2028c-7.513.008-14-6.487-14-14C0%206.196%206.043-.008%2014%200c7.95.008%2014%206.196%2014%2014%200%207.505-6.495%2013.992-14%2014Zm-3.971-7.436H7.315c-.57%200-.851%200-1.023-.11a.69.69%200%200%201-.313-.54c-.01-.202.13-.45.412-.944l6.7-11.809c.285-.501.43-.752.612-.845.195-.1.429-.1.625%200%20.182.093.326.344.611.845l1.377%202.404.007.013c.308.538.464.81.533%201.097a2.04%202.04%200%200%201%200%20.954c-.07.289-.224.564-.536%201.11l-3.52%206.22-.009.017c-.31.542-.467.817-.684%201.024a2.048%202.048%200%200%201-.835.485c-.285.079-.604.079-1.243.079Zm6.852%200h3.888c.574%200%20.862%200%201.034-.113a.687.687%200%200%200%20.313-.543c.01-.196-.128-.434-.398-.9a8.198%208.198%200%200%201-.028-.048l-1.948-3.332-.022-.037c-.274-.463-.412-.697-.59-.787a.684.684%200%200%200-.621%200c-.179.093-.323.337-.608.828l-1.94%203.331-.007.012c-.284.49-.426.735-.416.936.014.22.127.423.313.543.168.11.456.11%201.03.11Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E%0A";\n\n\n\n//# sourceURL=webpack://openscan/./node_modules/@rainbow-me/rainbowkit/dist/avalanche-KOMJD3XY.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1247.bundle.js b/packages/plugin/src/explorer/dist/1247.bundle.js deleted file mode 100644 index ad7d287..0000000 --- a/packages/plugin/src/explorer/dist/1247.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1247],{31247:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ccipRequest: () => (/* binding */ ccipRequest),\n/* harmony export */ offchainLookup: () => (/* binding */ offchainLookup),\n/* harmony export */ offchainLookupAbiItem: () => (/* binding */ offchainLookupAbiItem),\n/* harmony export */ offchainLookupSignature: () => (/* binding */ offchainLookupSignature)\n/* harmony export */ });\n/* harmony import */ var _actions_public_call_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../actions/public/call.js */ 73550);\n/* harmony import */ var _errors_ccip_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors/ccip.js */ 56503);\n/* harmony import */ var _errors_request_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../errors/request.js */ 76595);\n/* harmony import */ var _abi_decodeErrorResult_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abi/decodeErrorResult.js */ 15462);\n/* harmony import */ var _abi_encodeAbiParameters_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./abi/encodeAbiParameters.js */ 94531);\n/* harmony import */ var _address_isAddressEqual_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./address/isAddressEqual.js */ 32589);\n/* harmony import */ var _data_concat_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data/concat.js */ 25419);\n/* harmony import */ var _data_isHex_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./data/isHex.js */ 46394);\n/* harmony import */ var _ens_localBatchGatewayRequest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ens/localBatchGatewayRequest.js */ 6979);\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./stringify.js */ 18463);\n\n\n\n\n\n\n\n\n\n\nconst offchainLookupSignature = '0x556f1830';\nconst offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nasync function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = (0,_abi_decodeErrorResult_js__WEBPACK_IMPORTED_MODULE_0__.decodeErrorResult)({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!(0,_address_isAddressEqual_js__WEBPACK_IMPORTED_MODULE_1__.isAddressEqual)(to, sender))\n throw new _errors_ccip_js__WEBPACK_IMPORTED_MODULE_2__.OffchainLookupSenderMismatchError({ sender, to });\n const result = urls.includes(_ens_localBatchGatewayRequest_js__WEBPACK_IMPORTED_MODULE_3__.localBatchGatewayUrl)\n ? await (0,_ens_localBatchGatewayRequest_js__WEBPACK_IMPORTED_MODULE_3__.localBatchGatewayRequest)({\n data: callData,\n ccipRequest: ccipRequest_,\n })\n : await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await (0,_actions_public_call_js__WEBPACK_IMPORTED_MODULE_4__.call)(client, {\n blockNumber,\n blockTag,\n data: (0,_data_concat_js__WEBPACK_IMPORTED_MODULE_5__.concat)([\n callbackSelector,\n (0,_abi_encodeAbiParameters_js__WEBPACK_IMPORTED_MODULE_6__.encodeAbiParameters)([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new _errors_ccip_js__WEBPACK_IMPORTED_MODULE_2__.OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nasync function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n try {\n const response = await fetch(url.replace('{sender}', sender.toLowerCase()).replace('{data}', data), {\n body: JSON.stringify(body),\n headers,\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new _errors_request_js__WEBPACK_IMPORTED_MODULE_7__.HttpRequestError({\n body,\n details: result?.error\n ? (0,_stringify_js__WEBPACK_IMPORTED_MODULE_8__.stringify)(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!(0,_data_isHex_js__WEBPACK_IMPORTED_MODULE_9__.isHex)(result)) {\n error = new _errors_ccip_js__WEBPACK_IMPORTED_MODULE_2__.OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new _errors_request_js__WEBPACK_IMPORTED_MODULE_7__.HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/viem/_esm/utils/ccip.js?")},56503:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OffchainLookupError: () => (/* binding */ OffchainLookupError),\n/* harmony export */ OffchainLookupResponseMalformedError: () => (/* binding */ OffchainLookupResponseMalformedError),\n/* harmony export */ OffchainLookupSenderMismatchError: () => (/* binding */ OffchainLookupSenderMismatchError)\n/* harmony export */ });\n/* harmony import */ var _utils_stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/stringify.js */ 18463);\n/* harmony import */ var _base_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base.js */ 26329);\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ 21163);\n\n\n\nclass OffchainLookupError extends _base_js__WEBPACK_IMPORTED_MODULE_0__.BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${(0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.getUrl)(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n });\n }\n}\nclass OffchainLookupResponseMalformedError extends _base_js__WEBPACK_IMPORTED_MODULE_0__.BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${(0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.getUrl)(url)}`,\n `Response: ${(0,_utils_stringify_js__WEBPACK_IMPORTED_MODULE_2__.stringify)(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n });\n }\n}\nclass OffchainLookupSenderMismatchError extends _base_js__WEBPACK_IMPORTED_MODULE_0__.BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n });\n }\n}\n//# sourceMappingURL=ccip.js.map\n\n//# sourceURL=webpack://openscan/./node_modules/viem/_esm/errors/ccip.js?")}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1302.bundle.js b/packages/plugin/src/explorer/dist/1302.bundle.js deleted file mode 100644 index 8efbfc0..0000000 --- a/packages/plugin/src/explorer/dist/1302.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1302],{31302:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* reexport safe */ _chunk_2E3QWC3O_js__WEBPACK_IMPORTED_MODULE_0__.en_US_default)\n/* harmony export */ });\n/* harmony import */ var _chunk_2E3QWC3O_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chunk-2E3QWC3O.js */ 47446);\n"use client";\n\n\n\n\n//# sourceURL=webpack://openscan/./node_modules/@rainbow-me/rainbowkit/dist/en_US-RFN65H63.js?')}}]); \ No newline at end of file diff --git a/packages/plugin/src/explorer/dist/1319.bundle.js b/packages/plugin/src/explorer/dist/1319.bundle.js deleted file mode 100644 index f421e67..0000000 --- a/packages/plugin/src/explorer/dist/1319.bundle.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunkopenscan=globalThis.webpackChunkopenscan||[]).push([[1319],{1259:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ create: () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../normalize.js */ 77457);\n/* harmony import */ var _defined_info_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defined-info.js */ 75147);\n/* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./schema.js */ 27176);\n/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\n\n\n\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nfunction create(definition) {\n /** @type {Record} */\n const properties = {}\n /** @type {Record} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new _defined_info_js__WEBPACK_IMPORTED_MODULE_0__.DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(property)] = property\n normals[(0,_normalize_js__WEBPACK_IMPORTED_MODULE_1__.normalize)(info.attribute)] = property\n }\n\n return new _schema_js__WEBPACK_IMPORTED_MODULE_2__.Schema(properties, normals, definition.space)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/property-information/lib/util/create.js?")},1568:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultFootnoteBackContent: () => (/* binding */ defaultFootnoteBackContent),\n/* harmony export */ defaultFootnoteBackLabel: () => (/* binding */ defaultFootnoteBackLabel),\n/* harmony export */ footer: () => (/* binding */ footer)\n/* harmony export */ });\n/* harmony import */ var _ungap_structured_clone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ungap/structured-clone */ 67781);\n/* harmony import */ var micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-sanitize-uri */ 4935);\n/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\n\n\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nfunction defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nfunction defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nfunction footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = (0,micromark_util_sanitize_uri__WEBPACK_IMPORTED_MODULE_0__.normalizeUri)(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...(0,_ungap_structured_clone__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/mdast-util-to-hast/lib/footer.js?")},1606:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ types: () => (/* binding */ types)\n/* harmony export */ });\n/**\n * This module is compiled away!\n *\n * Here is the list of all types of tokens exposed by micromark, with a short\n * explanation of what they include and where they are found.\n * In picking names, generally, the rule is to be as explicit as possible\n * instead of reusing names.\n * For example, there is a `definitionDestination` and a `resourceDestination`,\n * instead of one shared name.\n */\n\n// Note: when changing the next record, you must also change `TokenTypeMap`\n// in `micromark-util-types/index.d.ts`.\nconst types = /** @type {const} */ ({\n // Generic type for data, such as in a title, a destination, etc.\n data: 'data',\n\n // Generic type for syntactic whitespace (tabs, virtual spaces, spaces).\n // Such as, between a fenced code fence and an info string.\n whitespace: 'whitespace',\n\n // Generic type for line endings (line feed, carriage return, carriage return +\n // line feed).\n lineEnding: 'lineEnding',\n\n // A line ending, but ending a blank line.\n lineEndingBlank: 'lineEndingBlank',\n\n // Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a\n // line.\n linePrefix: 'linePrefix',\n\n // Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a\n // line.\n lineSuffix: 'lineSuffix',\n\n // Whole ATX heading:\n //\n // ```markdown\n // #\n // ## Alpha\n // ### Bravo ###\n // ```\n //\n // Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.\n atxHeading: 'atxHeading',\n\n // Sequence of number signs in an ATX heading (`###`).\n atxHeadingSequence: 'atxHeadingSequence',\n\n // Content in an ATX heading (`alpha`).\n // Includes text.\n atxHeadingText: 'atxHeadingText',\n\n // Whole autolink (`` or ``)\n // Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.\n autolink: 'autolink',\n\n // Email autolink w/o markers (`admin@example.com`)\n autolinkEmail: 'autolinkEmail',\n\n // Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).\n autolinkMarker: 'autolinkMarker',\n\n // Protocol autolink w/o markers (`https://example.com`)\n autolinkProtocol: 'autolinkProtocol',\n\n // A whole character escape (`\\-`).\n // Includes `escapeMarker` and `characterEscapeValue`.\n characterEscape: 'characterEscape',\n\n // The escaped character (`-`).\n characterEscapeValue: 'characterEscapeValue',\n\n // A whole character reference (`&`, `≠`, or `𝌆`).\n // Includes `characterReferenceMarker`, an optional\n // `characterReferenceMarkerNumeric`, in which case an optional\n // `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.\n characterReference: 'characterReference',\n\n // The start or end marker (`&` or `;`).\n characterReferenceMarker: 'characterReferenceMarker',\n\n // Mark reference as numeric (`#`).\n characterReferenceMarkerNumeric: 'characterReferenceMarkerNumeric',\n\n // Mark reference as numeric (`x` or `X`).\n characterReferenceMarkerHexadecimal: 'characterReferenceMarkerHexadecimal',\n\n // Value of character reference w/o markers (`amp`, `8800`, or `1D306`).\n characterReferenceValue: 'characterReferenceValue',\n\n // Whole fenced code:\n //\n // ````markdown\n // ```js\n // alert(1)\n // ```\n // ````\n codeFenced: 'codeFenced',\n\n // A fenced code fence, including whitespace, sequence, info, and meta\n // (` ```js `).\n codeFencedFence: 'codeFencedFence',\n\n // Sequence of grave accent or tilde characters (` ``` `) in a fence.\n codeFencedFenceSequence: 'codeFencedFenceSequence',\n\n // Info word (`js`) in a fence.\n // Includes string.\n codeFencedFenceInfo: 'codeFencedFenceInfo',\n\n // Meta words (`highlight=\"1\"`) in a fence.\n // Includes string.\n codeFencedFenceMeta: 'codeFencedFenceMeta',\n\n // A line of code.\n codeFlowValue: 'codeFlowValue',\n\n // Whole indented code:\n //\n // ```markdown\n // alert(1)\n // ```\n //\n // Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.\n codeIndented: 'codeIndented',\n\n // A text code (``` `alpha` ```).\n // Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include\n // `codeTextPadding`.\n codeText: 'codeText',\n\n codeTextData: 'codeTextData',\n\n // A space or line ending right after or before a tick.\n codeTextPadding: 'codeTextPadding',\n\n // A text code fence (` `` `).\n codeTextSequence: 'codeTextSequence',\n\n // Whole content:\n //\n // ```markdown\n // [a]: b\n // c\n // =\n // d\n // ```\n //\n // Includes `paragraph` and `definition`.\n content: 'content',\n // Whole definition:\n //\n // ```markdown\n // [micromark]: https://github.com/micromark/micromark\n // ```\n //\n // Includes `definitionLabel`, `definitionMarker`, `whitespace`,\n // `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.\n definition: 'definition',\n\n // Destination of a definition (`https://github.com/micromark/micromark` or\n // ``).\n // Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.\n definitionDestination: 'definitionDestination',\n\n // Enclosed destination of a definition\n // (``).\n // Includes `definitionDestinationLiteralMarker` and optionally\n // `definitionDestinationString`.\n definitionDestinationLiteral: 'definitionDestinationLiteral',\n\n // Markers of an enclosed definition destination (`<` or `>`).\n definitionDestinationLiteralMarker: 'definitionDestinationLiteralMarker',\n\n // Unenclosed destination of a definition\n // (`https://github.com/micromark/micromark`).\n // Includes `definitionDestinationString`.\n definitionDestinationRaw: 'definitionDestinationRaw',\n\n // Text in an destination (`https://github.com/micromark/micromark`).\n // Includes string.\n definitionDestinationString: 'definitionDestinationString',\n\n // Label of a definition (`[micromark]`).\n // Includes `definitionLabelMarker` and `definitionLabelString`.\n definitionLabel: 'definitionLabel',\n\n // Markers of a definition label (`[` or `]`).\n definitionLabelMarker: 'definitionLabelMarker',\n\n // Value of a definition label (`micromark`).\n // Includes string.\n definitionLabelString: 'definitionLabelString',\n\n // Marker between a label and a destination (`:`).\n definitionMarker: 'definitionMarker',\n\n // Title of a definition (`\"x\"`, `'y'`, or `(z)`).\n // Includes `definitionTitleMarker` and optionally `definitionTitleString`.\n definitionTitle: 'definitionTitle',\n\n // Marker around a title of a definition (`\"`, `'`, `(`, or `)`).\n definitionTitleMarker: 'definitionTitleMarker',\n\n // Data without markers in a title (`z`).\n // Includes string.\n definitionTitleString: 'definitionTitleString',\n\n // Emphasis (`*alpha*`).\n // Includes `emphasisSequence` and `emphasisText`.\n emphasis: 'emphasis',\n\n // Sequence of emphasis markers (`*` or `_`).\n emphasisSequence: 'emphasisSequence',\n\n // Emphasis text (`alpha`).\n // Includes text.\n emphasisText: 'emphasisText',\n\n // The character escape marker (`\\`).\n escapeMarker: 'escapeMarker',\n\n // A hard break created with a backslash (`\\\\n`).\n // Note: does not include the line ending.\n hardBreakEscape: 'hardBreakEscape',\n\n // A hard break created with trailing spaces (` \\n`).\n // Does not include the line ending.\n hardBreakTrailing: 'hardBreakTrailing',\n\n // Flow HTML:\n //\n // ```markdown\n // b`).\n // Includes `lineEnding`, `htmlTextData`.\n htmlText: 'htmlText',\n\n htmlTextData: 'htmlTextData',\n\n // Whole image (`![alpha](bravo)`, `![alpha][bravo]`, `![alpha][]`, or\n // `![alpha]`).\n // Includes `label` and an optional `resource` or `reference`.\n image: 'image',\n\n // Whole link label (`[*alpha*]`).\n // Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.\n label: 'label',\n\n // Text in an label (`*alpha*`).\n // Includes text.\n labelText: 'labelText',\n\n // Start a link label (`[`).\n // Includes a `labelMarker`.\n labelLink: 'labelLink',\n\n // Start an image label (`![`).\n // Includes `labelImageMarker` and `labelMarker`.\n labelImage: 'labelImage',\n\n // Marker of a label (`[` or `]`).\n labelMarker: 'labelMarker',\n\n // Marker to start an image (`!`).\n labelImageMarker: 'labelImageMarker',\n\n // End a label (`]`).\n // Includes `labelMarker`.\n labelEnd: 'labelEnd',\n\n // Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).\n // Includes `label` and an optional `resource` or `reference`.\n link: 'link',\n\n // Whole paragraph:\n //\n // ```markdown\n // alpha\n // bravo.\n // ```\n //\n // Includes text.\n paragraph: 'paragraph',\n\n // A reference (`[alpha]` or `[]`).\n // Includes `referenceMarker` and an optional `referenceString`.\n reference: 'reference',\n\n // A reference marker (`[` or `]`).\n referenceMarker: 'referenceMarker',\n\n // Reference text (`alpha`).\n // Includes string.\n referenceString: 'referenceString',\n\n // A resource (`(https://example.com \"alpha\")`).\n // Includes `resourceMarker`, an optional `resourceDestination` with an optional\n // `whitespace` and `resourceTitle`.\n resource: 'resource',\n\n // A resource destination (`https://example.com`).\n // Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.\n resourceDestination: 'resourceDestination',\n\n // A literal resource destination (``).\n // Includes `resourceDestinationLiteralMarker` and optionally\n // `resourceDestinationString`.\n resourceDestinationLiteral: 'resourceDestinationLiteral',\n\n // A resource destination marker (`<` or `>`).\n resourceDestinationLiteralMarker: 'resourceDestinationLiteralMarker',\n\n // A raw resource destination (`https://example.com`).\n // Includes `resourceDestinationString`.\n resourceDestinationRaw: 'resourceDestinationRaw',\n\n // Resource destination text (`https://example.com`).\n // Includes string.\n resourceDestinationString: 'resourceDestinationString',\n\n // A resource marker (`(` or `)`).\n resourceMarker: 'resourceMarker',\n\n // A resource title (`\"alpha\"`, `'alpha'`, or `(alpha)`).\n // Includes `resourceTitleMarker` and optionally `resourceTitleString`.\n resourceTitle: 'resourceTitle',\n\n // A resource title marker (`\"`, `'`, `(`, or `)`).\n resourceTitleMarker: 'resourceTitleMarker',\n\n // Resource destination title (`alpha`).\n // Includes string.\n resourceTitleString: 'resourceTitleString',\n\n // Whole setext heading:\n //\n // ```markdown\n // alpha\n // bravo\n // =====\n // ```\n //\n // Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and\n // `setextHeadingLine`.\n setextHeading: 'setextHeading',\n\n // Content in a setext heading (`alpha\\nbravo`).\n // Includes text.\n setextHeadingText: 'setextHeadingText',\n\n // Underline in a setext heading, including whitespace suffix (`==`).\n // Includes `setextHeadingLineSequence`.\n setextHeadingLine: 'setextHeadingLine',\n\n // Sequence of equals or dash characters in underline in a setext heading (`-`).\n setextHeadingLineSequence: 'setextHeadingLineSequence',\n\n // Strong (`**alpha**`).\n // Includes `strongSequence` and `strongText`.\n strong: 'strong',\n\n // Sequence of strong markers (`**` or `__`).\n strongSequence: 'strongSequence',\n\n // Strong text (`alpha`).\n // Includes text.\n strongText: 'strongText',\n\n // Whole thematic break:\n //\n // ```markdown\n // * * *\n // ```\n //\n // Includes `thematicBreakSequence` and `whitespace`.\n thematicBreak: 'thematicBreak',\n\n // A sequence of one or more thematic break markers (`***`).\n thematicBreakSequence: 'thematicBreakSequence',\n\n // Whole block quote:\n //\n // ```markdown\n // > a\n // >\n // > b\n // ```\n //\n // Includes `blockQuotePrefix` and flow.\n blockQuote: 'blockQuote',\n // The `>` or `> ` of a block quote.\n blockQuotePrefix: 'blockQuotePrefix',\n // The `>` of a block quote prefix.\n blockQuoteMarker: 'blockQuoteMarker',\n // The optional ` ` of a block quote prefix.\n blockQuotePrefixWhitespace: 'blockQuotePrefixWhitespace',\n\n // Whole ordered list:\n //\n // ```markdown\n // 1. a\n // b\n // ```\n //\n // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further\n // lines.\n listOrdered: 'listOrdered',\n\n // Whole unordered list:\n //\n // ```markdown\n // - a\n // b\n // ```\n //\n // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further\n // lines.\n listUnordered: 'listUnordered',\n\n // The indent of further list item lines.\n listItemIndent: 'listItemIndent',\n\n // A marker, as in, `*`, `+`, `-`, `.`, or `)`.\n listItemMarker: 'listItemMarker',\n\n // The thing that starts a list item, such as `1. `.\n // Includes `listItemValue` if ordered, `listItemMarker`, and\n // `listItemPrefixWhitespace` (unless followed by a line ending).\n listItemPrefix: 'listItemPrefix',\n\n // The whitespace after a marker.\n listItemPrefixWhitespace: 'listItemPrefixWhitespace',\n\n // The numerical value of an ordered item.\n listItemValue: 'listItemValue',\n\n // Internal types used for subtokenizers, compiled away\n chunkDocument: 'chunkDocument',\n chunkContent: 'chunkContent',\n chunkFlow: 'chunkFlow',\n chunkText: 'chunkText',\n chunkString: 'chunkString'\n})\n\n\n//# sourceURL=webpack://openscan/./node_modules/micromark-util-symbol/lib/types.js?")},1987:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ merge: () => (/* binding */ merge)\n/* harmony export */ });\n/* harmony import */ var _schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schema.js */ 27176);\n/**\n * @import {Info, Space} from 'property-information'\n */\n\n\n\n/**\n * @param {ReadonlyArray} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nfunction merge(definitions, space) {\n /** @type {Record} */\n const property = {}\n /** @type {Record} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new _schema_js__WEBPACK_IMPORTED_MODULE_0__.Schema(property, normal, space)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/property-information/lib/util/merge.js?")},2435:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ autolink: () => (/* binding */ autolink)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! devlop */ 52891);\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-character */ 60714);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ 41313);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ 1606);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ 63890);\n/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\n\n\n\n\n/** @type {Construct} */\nconst autolink = {name: 'autolink', tokenize: tokenizeAutolink}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n ;(0,devlop__WEBPACK_IMPORTED_MODULE_0__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan, 'expected `<`')\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolink)\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)\n effects.consume(code)\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlpha)(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.atSign) {\n return nok(code)\n }\n\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)\n ) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.colon) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.plusSign ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dot ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&\n size++ < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkSchemeSizeMax\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol)\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)\n effects.consume(code)\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolink)\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.eof ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.space ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.lessThan ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiControl)(code)\n ) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.atSign) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAtext)(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dot) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.greaterThan) {\n // Exit, then change the token type.\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkProtocol).type = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkEmail\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)\n effects.consume(code)\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolinkMarker)\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.types.autolink)\n return ok\n }\n\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if (\n (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_3__.asciiAlphanumeric)(code)) &&\n size++ < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.constants.autolinkDomainSizeMax\n ) {\n const next = code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.dash ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n\n return nok(code)\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/micromark-core-commonmark/dev/lib/autolink.js?")},3070:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hardBreak: () => (/* binding */ hardBreak)\n/* harmony export */ });\n/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nfunction hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/mdast-util-to-hast/lib/handlers/break.js?")},3413:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ decodeNumericCharacterReference: () => (/* binding */ decodeNumericCharacterReference)\n/* harmony export */ });\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ 41313);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ 96445);\n\n\n/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nfunction decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.ht ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.vt ||\n (code > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.cr && code < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.space) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.codes.tilde && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55_295 && code < 57_344) ||\n // Noncharacters.\n (code > 64_975 && code < 65_008) ||\n /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 ||\n (code & 65_535) === 65_534 ||\n /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111\n ) {\n return micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.values.replacementCharacter\n }\n\n return String.fromCodePoint(code)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/micromark-util-decode-numeric-character-reference/dev/index.js?")},3870:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ headingAtx: () => (/* binding */ headingAtx)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! devlop */ 52891);\n/* harmony import */ var micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! micromark-factory-space */ 30353);\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-character */ 60714);\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-chunked */ 73353);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ 1606);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ 63890);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-symbol */ 41313);\n/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\n\n\n\n\n\n\n/** @type {Construct} */\nconst headingAtx = {\n name: 'headingAtx',\n resolve: resolveHeadingAtx,\n tokenize: tokenizeHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace) {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingText,\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.chunkText,\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.constants.contentTypeText\n }\n\n ;(0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_2__.splice)(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeading)\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_3__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign, 'expected `#`')\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence)\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign &&\n size++ < micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.constants.atxHeadingOpeningFenceSizeMax\n ) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence)\n return atBreak(code)\n }\n\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence)\n return sequenceFurther(code)\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeading)\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownSpace)(code)) {\n return (0,micromark_factory_space__WEBPACK_IMPORTED_MODULE_6__.factorySpace)(effects, atBreak, micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.whitespace)(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingText)\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign) {\n effects.consume(code)\n return sequenceFurther\n }\n\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingSequence)\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.eof ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_4__.codes.numberSign ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_5__.markdownLineEndingOrSpace)(code)\n ) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.atxHeadingText)\n return atBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/micromark-core-commonmark/dev/lib/heading-atx.js?")},4769:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ trough: () => (/* binding */ trough),\n/* harmony export */ wrap: () => (/* binding */ wrap)\n/* harmony export */ });\n// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nfunction trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nfunction wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/trough/lib/index.js?")},4935:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ normalizeUri: () => (/* binding */ normalizeUri),\n/* harmony export */ sanitizeUri: () => (/* binding */ sanitizeUri)\n/* harmony export */ });\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-character */ 60714);\n/* harmony import */ var micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-encode */ 75737);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! micromark-util-symbol */ 41313);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ 96445);\n\n\n\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nfunction sanitizeUri(url, protocol) {\n const value = (0,micromark_util_encode__WEBPACK_IMPORTED_MODULE_0__.encode)(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nfunction normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_1__.codes.percentSign &&\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 1)) &&\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_2__.asciiAlphanumeric)(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.values.replacementCharacter\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/micromark-util-sanitize-uri/dev/index.js?")},5077:module=>{eval("\n\n// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nfunction index (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) ; else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n\n\n//# sourceURL=webpack://openscan/./node_modules/inline-style-parser/cjs/index.js?")},5389:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ combineExtensions: () => (/* binding */ combineExtensions),\n/* harmony export */ combineHtmlExtensions: () => (/* binding */ combineHtmlExtensions)\n/* harmony export */ });\n/* harmony import */ var micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-chunked */ 73353);\n/**\n * @import {\n * Extension,\n * Handles,\n * HtmlExtension,\n * NormalizedExtension\n * } from 'micromark-util-types'\n */\n\n\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {ReadonlyArray} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nfunction combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record} */\n const left = maybe || (all[hook] = {})\n /** @type {Record | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array} existing\n * List of constructs to merge into.\n * @param {Array} list\n * List of constructs to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n (0,micromark_util_chunked__WEBPACK_IMPORTED_MODULE_0__.splice)(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {ReadonlyArray} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * Single combined HTML extension.\n */\nfunction combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/micromark-util-combine-extensions/index.js?")},5824:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ pointEnd: () => (/* binding */ pointEnd),\n/* harmony export */ pointStart: () => (/* binding */ pointStart),\n/* harmony export */ position: () => (/* binding */ position)\n/* harmony export */ });\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nconst pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nconst pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nfunction position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n\n\n//# sourceURL=webpack://openscan/./node_modules/unist-util-position/lib/index.js?")},10494:(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ htmlFlow: () => (/* binding */ htmlFlow)\n/* harmony export */ });\n/* harmony import */ var devlop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! devlop */ 52891);\n/* harmony import */ var micromark_util_character__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! micromark-util-character */ 60714);\n/* harmony import */ var micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! micromark-util-html-tag-name */ 35349);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! micromark-util-symbol */ 1606);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! micromark-util-symbol */ 41313);\n/* harmony import */ var micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! micromark-util-symbol */ 63890);\n/* harmony import */ var _blank_line_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blank-line.js */ 80447);\n/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\n\n\n\n\n\n\n/** @type {Construct} */\nconst htmlFlow = {\n concrete: true,\n name: 'htmlFlow',\n resolveTo: resolveToHtmlFlow,\n tokenize: tokenizeHtmlFlow\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {partial: true, tokenize: tokenizeBlankLineBefore}\nconst nonLazyContinuationStart = {\n partial: true,\n tokenize: tokenizeNonLazyContinuationStart\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlow\n ) {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.linePrefix) {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan, 'expected `<`')\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlow)\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData)\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \x3c!--xxx--\x3e\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.exclamationMark) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark) {\n effects.consume(code)\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code !== null) // Always the case.\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * > | \x3c!--xxx--\x3e\n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {\n effects.consume(code)\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment\n return commentOpenInside\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.leftSquareBracket) {\n effects.consume(code)\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n effects.consume(code)\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n /**\n * After ` | \x3c!--xxx--\x3e\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n /**\n * After ` | &<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.cdataOpeningString\n\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n\n return cdataOpenInside\n }\n\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)(code !== null) // Always the case.\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | \n * ^^\n * > | \n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)\n ) {\n const slash = code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash\n const name = buffer.toLowerCase()\n\n if (!slash && !closingTag && micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlRawNames.includes(name)) {\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (micromark_util_html_tag_name__WEBPACK_IMPORTED_MODULE_5__.htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic\n\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n marker = micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > |
\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.colon || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.underscore || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlpha)(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dot ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.colon ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.underscore ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.asciiAlphanumeric)(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent\n ) {\n return nok(code)\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark || code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.quotationMark ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.apostrophe ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.equalsTo ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.graveAccent ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEndingOrSpace)(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.slash ||\n code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan ||\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)\n ) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n\n if ((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownSpace)(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | \x3c!--xxx--\x3e\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComment) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.lessThan && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlRaw) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.greaterThan && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlDeclaration) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.questionMark && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlInstruction) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.rightSquareBracket && marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlCdata) {\n effects.consume(code)\n return continuationCdataInside\n }\n\n if (\n (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code) &&\n (marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlBasic || marker === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_3__.constants.htmlComplete)\n ) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData)\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData)\n return continuationStart(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n (0,devlop__WEBPACK_IMPORTED_MODULE_1__.ok)((0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code))\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding)\n effects.consume(code)\n effects.exit(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.lineEnding)\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | \n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.eof || (0,micromark_util_character__WEBPACK_IMPORTED_MODULE_4__.markdownLineEnding)(code)) {\n return continuationStart(code)\n }\n\n effects.enter(micromark_util_symbol__WEBPACK_IMPORTED_MODULE_0__.types.htmlFlowData)\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | \x3c!--xxx--\x3e\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === micromark_util_symbol__WEBPACK_IMPORTED_MODULE_2__.codes.dash) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | - diff --git a/packages/plugin/src/explorer/dist/manifest.json b/packages/plugin/src/explorer/dist/manifest.json deleted file mode 100644 index a490ae7..0000000 --- a/packages/plugin/src/explorer/dist/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "Openscan", - "name": "Openscan", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/packages/plugin/src/explorer/dist/openscan-logo.png b/packages/plugin/src/explorer/dist/openscan-logo.png deleted file mode 100644 index a745a683012e04dd4d7ea758cc5efb2c7d780da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7808 zcmeI1>0eS?+sD^t8(`5vvrH@9oF+S`GSrR(8IVKTgq=ohlF~*kHL)xMA#FNoT2`7$ zX%5Y$O;%>oQB%`!stdO(;ArnM>F1kO@o9AD+pBLg@*IL)G_JX~>>$i_A=6MYt zI%X(BX!tyDk0l6^#D+gA87#DCl@s8faj3UnI6@-?hCl4xCL$7ymI6;-!P1aTg5B$P zZbZ9x@3!5#BPcvzedtEpke!>;zPgS<$a?rZk2%XC)4#l3ef8t!JuRxu*Jk(h#>OW~ z5mtCTKM0pE{@agXJLY-#sO3X{AAW8BW$W`7k33JDnR9vR3G&k+-hbq5U-nmgs^jug zBPVG{^SxI)J-QeZAmfI*9xJCjab&NjSzFX}op}}YW5Ywm2chqw!8T!wLVdscs!K;m zP`0*Tq224V>6RZtiRFSW3POBeG6Qk#|0_TGo`{e*b8U3hn`pk{8R3-i8|>5ewbsR) zD-8eOMY4Dv=$IDYPeU>HdS32+%WQ7y-Qw}EbN@Hphfl9x_Yr-c*U}SIYmmDGl6-28 zY=3jzHKOi=VspN>!8EDg)HEn4*~6ps$rDww=y|YkL_@;2SuTCwGu?L+mYsgsK|Ufq zOIbjm-5MWT5pesx*VVODF2_wB1j$j7ra zO^<^Hn}d6f#2>e|%2-Ke)Mh8MiW59bSKnn9b}x4-TSO7LUVotbq!x7@51Bpk&?9}2 z>WgBa_iX~5m)meosCmTc?PB`SnB#DhEl-Ds41_oC2>#laY^r*9t;Y7g=5udD!6T=2 z;mxxqY`EE8)BhytXKCh)!ENJa>8f4M@z_Q89fjxECR>hR)R}EBD8H={DKAwGR0cct zT`&!s=TZ9l^+05QJjbH3x%+HW!M79lMbc;SW~!!4pRz{lUXS4PePNyLNlAYCKIM_6 z#oxb|_(x`*i^j!m7Gmy;p3i#Q`(06|brFpTvv1IiQa2*fi&fd`)u$ojag4fb^C@|V zpN^X`iOg6Wf1OplQHe`dfTv3LS${f*ZnSMPB6*HI|I6XxDU3RDYutYv9Kqpa{;XdP zso-Ebzwvm!!Gp|T-dpt_hk6UKjK50x%VGX{M2gvx|I5K5 z4WnxQbXOEi6Ec|QxJifS-Cxdp8m!BuE@{h6jYO76<7POpieEsbzeAj-0#S1Vg(S2` zk{qR82Q}+9Akwe~?eGNzRqzZMnV(mWO<`Li!&scVS@hVqH13uZc|uVK{<{rsGA3Ic@VAazQHEj< zcIbT%uuZy|C=+9G9%R#Fdo0C^U8IDtj^b8G<6b-|Psr@RGiQ?-%jPP|Ei{r^NbqN- zI?G7M-4cUQN7ZWo9wTHte}-cBEA>;PY?IGWi$oxL?mspq@sxE9ASs#TqKjuX_#!A(|Vt7E=G z3V$+V+B^lNzk%Y$p>cip%jpMm=&?I2#d#1o4pyg`iPrzd;!HWjHd(P5{c9@_Ew&Xh zra@q<4t>UNI<9XzMjc(Nog>vqm=Ji~d3B6ViLYmq8A_!-W44alB*nb9u{c}O*d}*3 zqZ23O^qqB-e_@(SpqzC&u5%TdI7CY1c@k7I!?;5){?dV0R-Y|yQ;o04p-&u!Cr*Z;wn}^}gnuCranETax1XZy`QSB0$6XbOmW+}TOmiV) zx*fW7P)?sBVJDhfh)4P;C?~xM?`JgbKRIfA{snsW3NoXtPK({CqbwPVC!U9}sY?9P z0nFPJ!YvRM(L#%6s=i>dKO3A zro@#eu!^@3xV@fIKMGHrt<*nV57TpGW2gK=(9vBIPL7WFjTdm3qo2K62zLDBMPkWV-{J znybb$d~~v1mf}$cuZco_6ixONZimHDcAgcPKM4YybR&E@cwQ)rgXU+`ucl$XQy|t~ zwUn2YXj-D2E`HsCcWyxDP&N09MiRk9!!jW3B%Q3=Qak~|*4hjC_i3`@5VithS>vI6 zh;_4`a=HYKgSjA$B!`KjpcZj*1Las1>N*ZaSdejtuqGUGO`A(NPs8)v!3!27)S1ku zKwY&~LjE94HVW=BEQoBtLc9Qy$(R~RvjZBP4bfmh3O6D-{HRcS17%kUN{@lSupn#V zv3tWH@X1BQy>WObrLjo0y?C@~^!gF`=BD{~cguh?6&=X<3 zts&*GpB_G(;u-8wYIW#aao>%&KEXzNR1nsm77|qz9Inf`7UKVK@M&b{EY6tZqW67I z_Dw_l(KAGfPE}b;bac8eXXmF|l>&7QdvD8Ze`{6#KQpcRu=#>*;d?c2L(chfM*MuY zC(8B5omukXJWNcg-jt?#-uU%!)VGKI4^^X8-JAxO?JZ68#o0=MdD?|T?;Z(nIY(?8 z(OG^jp^r0oqg{1~J<7?dm!f(a^v<>0orJv3Ml-GT-O+KQA8BQ;=r*SL5v}PwDXU;T z`r0<301|QpetN~=z~`o>l+xXgeuVB*$)n9z7Wdq}r<5g>=d66Vx68{&EI3x&yT)~A zOGxR`L*L>Yf^}0tj<^xYlSQTQCa}LJSRbt!{92?^v<$c{T&G*q z^A5MUAk>=KZCTV#4&+;d!N%Rk^D8)z=S)_(#nv zeZErJbhH>tZ@6;Zb=2U;0D9?4`Z{ZldVy1^yMLiZvvN{&$5K_7+3vC*A-dJ7*PVkq z7fyEk3kgEZYh1%tx@u1OC$!ICM}2B|b~IOYEojCOv*bSYZc}pW{vAahx9HEc=(2jh z)U2@@e4jkHY~Rn0Rac2Nke_A1*1vF@%_IHmF4R|L&CHrhX;?y%2_8R2{8 zeH-YkDI@y7%_wadeB)F0`nB@b_Z39%sY3S1@<)A|3Lh$pm^JV|JZy0G;GgX1@*1gC zbkgB~8*fMZ6swlBhYTUN4%J9dZIPD6G21kXC$p-hkhr4-B6mA9E1Pa4{@9^ExN-hZ zEN*0|?8;S-O*RXy0oPDlslPEzCh5Sj3Lfmz4pDp^7u~GWo+?MEdC)0vW-q z;#5oV0oceFkCFQKSF7hk28%TL4R{!MLf*JJibiXj)}czU9+cl$PUe?^RpSZ!d_xfi zB|JEDU2vn>Mc?+Zw2IrRk1U-;qT3& z8#Nt~CxlswHBepXX?enk$TB`t$7MK3iAi?I@+8}&Vy?pLNV?b(@MX(6dBRRhaol`@ zdfQv!rF$b+vFn5|Ftu=bexc}m@XwE?9m@Erzt=oseAs)j0E(Y z$l|Qxqa{NC`5dLh^e|HHpTK32EY9lyv}6)kjR0P{U%S1~NVtSRbX$(H_k!D07UyOt zDc2Il?qP9u+QClFHt~&>C&WFhuLXY08!IKwSc+#ZBB*QNsmGH|gvkp;p{Fr#h+hHE zP=)$|`+T^ZqoBNTK=S}dzSL_Ue@z$91L&Dvr+w^7<3_^Q^mDE{M!RR!{$W64wk(bT zO5PY?N+8N}wc$6xU6>EVv)oe5qzD-&AzJhIRHI?Flz*KCqT1=Wi8-)c8vqT#ljThm zGBl7HXm!1(j@xlsPS+_$4P~9D$G+&$^PR~Ifj2=t+Ms>>Jzbnh(Q#7_$>~ovAh!gK zByToQQ&s0E8hr0B0R8|I(>w_8O#o0w&6u=>gf|p71)zRH9i^TnB~Dgd865}KAiyd% zZZb53o;`%cxp>HoITGBYU>yrqpa^rYCN z_bBxY1ODdF1D#l$if6_aV=mA?z!zJFVrOb3fJM{S{a{!M`D_-a)s4)Um`$&S8`)KA zY%!vNa(6yl%8`*qG8||}{e28IJ(GSl8Ne+Tqo#WizM}#0Xf}NQYMrcJsTY5=6w9t_ zBp+e$mF|Cl`Uz*Yl&Bqro1~<%L&vc=89_Xm>|c$<9Y*v6>gOo&zAQDa`|!im_Y6C4 z7H}T$Vy&^Tb(=sWOH3C_cuIUUP|iU(4i(i>zAjQw;>xZ}s+}rqt%8L4mSXNVjRaOj zyu=y9V=CWJKI_Fd;dIh!|3d=#Jl4&U)ZKn-u%3Y8F0SgtBShTc5P1Ca7K0Tao%{E; zE`xRZ!xJRW%bE1&fQ@jd*>LK$VZdt_3@@8{!C>7E6>p1sWw4%(Ts!2lLm+WcjRTdE zmVYiZ4458HB42(fG+19l!HYW18?1hjr-r27TxhV~w1X3N^{*nYLJga?|B(3KAMEbE z6fIins`^l-_#rVhg$EHJ>aXTr!D z^!7=xP~H2I6a77)v5Yg&I$TxlWNWQHj>NMU`pDm(O1M$J+~=&b`qlmD-0;)by?C47 zn)^$G&5JGUR=2#3>y-i%ebXPuRUy&+eeZk21}jm<#H443r=Fc{+M>3Z@g%2(Woeh@ zSsE;KJnFyieQmQ(T>rjFH#hAH?QLx)-WE6(+KnFw@+du8enC|=*cPFZ6D}sj>N8h- z2H%m;+&hC6bJwU_kE;H;;8PkH-bq(fUT|vcDN=raT*z_$Trw)y{#Ia*pnrPEpyX9x zPyXS^s+XH7J6y&Te|I?4eywFtYI=_5`=t5jI?Hd`%GKk?1EBSk*9F;*(H;?dt`!73 zT;I2Iwk`WX*w=E3O@q<^+r++IR~45J08W-F5Z86ckFa4?qcpk1+rm9mh$>oL7 z@8eZV3tBAvqxTLP7|z9Tvo7DbQT~E%HEXwC7;dh5R6@B?^rAN{0dv0aD){c6-T{t2 zzJ0V+R7s${Hs`Q2JIzyHGuU^z_b5l#uR89(M>uZwUB{jP5;tjbnrSj8%Ko}GDJ$%i zQvs{k+2u@GvEOP=L`hrUw}D=Rs8%Gh;)Rpe)sNj#^yS9|$6Vsr;h#H%J*h#w(whE~ z^7ggSU+$+YoV(ANzmg|goZRo_`2Mm@W5AcvPyefpwFLMVb+*-6U)?}%{YN8NOyDM; zGt`|4X5XQOYC*e!Gt+N?O#BE|aho${V9br-q=VfC;zT{Lox*V@a~!KU4Emsj-ZW_A z;YbE*29nonPdzq{1k$uPXU2?k2kyi}CqgR$qn1Elxp5@4(5egSsmYl0cmTWUV68E} z$AB>h&6pZ5#YzgE$Az6d8KX8gXkU~W--8y~mZ`py1m{Zdm;}~m#`i|Rm}6$lt8*1A z;p}M-+J+RPR@G_mlo;QG7CM-#4obj$e+LiuTJ4=G<9h&~zHw&Eu0?>Nc;4^80#Mbg z2JOdIqqin7tO^7uI492~sIu__k&6rF1i&^!VMK#%sM{VT0f6|C8LyQ3P!i9Lpo--Q z)5-ktKz-=~(V7ZlXW&pj7c2>2?~8@F1D{upCc@dYFpLBdYvFVa!q*WhFy|M6XxhKV zDceB~Ib+7WR;SIMf+wzp)^W@m@OxU7aSF7sr$DSA3q;jZNWef|E7Qe(KnAdFEuA1G z*4iV#RCeMjOYw6Moe1bl1+e9?I0n^W1SBaCh-iIZOsRWg^RTb|P%X0QFw;pf4R*74jXS zapwa3!7^qA@?<0D5EZbcE7Rl&^_Jq1o3`_ zeF*PH@YoN~YAIgkPI#}RaaTa!5S|QL)VO&HuLU&jWjKYvGG=*#brDfvpDsR=3}PEF zC}bQ@M1wPZ20mV^@Is{;wPm+7x4y~eVZ=c zdX{bC475Yzo`CTzjx*fxlN!l=7fg|*j)B8Pb}qfT5>>kc$A*(8|0QJH2E;4`qy>)s zQmcKuFJ0V5(#d*Uumb2%JD~NHUlPf7VBGiVVrX%vq{->04H_K$!mOplRk^W+c?LZ= z#w@f5h;KM^Kjz$6t zN%;{*I=CO`uFdGJm6Uj1iDHL#7&MgYATLFL2eke;Ag90PBezK!2`nUKJ9x}j;>il5 zhZa)eb~%cD3hcKT$wArr0{Nk(Oa%{^2dQTs@OVRNM#QFV>8iokg#XBE8gNt3g%%Gn`1-j)3QexnS-~V5I;g zr557E6n5SsV9^;stCoH`*=Zk{LAN9`zT02>DVhEo7qFLV!*AWFk^BIeuL`&jex+5Q zJFRFlqE+YQu=9G%@&J=TxSy7NfSvae1NeLJ-iS8MgK%~QB>oFG@l9ceS^%ONl04nk zi3d4joq91Fh<5WfCBDE~Y=B{&jJsJQsRHrN9gx%j!+^_AT8(I$%cbnRlZGS~M=>hx zd^S6@%aG*BCnFlo&A^&Z4f=lNFNUoLHqNrVLLb*{bQR=L0M@Lr59s4I7-oI~_%%H`4+uPXYkk-052mtv*=yh3?8e%!*goB!Q&3RF?xTh-r%tU zJYM+Sp|AO5@K^w`kFw4hdFq>fN0<`9Xu{aG#flXWf z4Nbc@+>Q7ge>ifJBfR&@r>q-1m%dj5PXMlZ$3xZjm1iGp=~mxr(kl;F{x-O|;{UwF z>M_P($0BWA6V*9uN6L=ieKW_ui+H?SxHEkFmwpz9F$_2HR_M|~`mWrn)D&zOVRvT7 xBSl@`S2)C6vVd2rmAx#(=da8E$`5^XLF~6RiwX+=hPTIPo+r=ax*LE0{{SWH;z$4h diff --git a/packages/plugin/src/explorer/dist/robots.txt b/packages/plugin/src/explorer/dist/robots.txt deleted file mode 100644 index e9e57dc..0000000 --- a/packages/plugin/src/explorer/dist/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/packages/plugin/src/server.ts b/packages/plugin/src/server.ts index 38d32ca..7a5eec9 100644 --- a/packages/plugin/src/server.ts +++ b/packages/plugin/src/server.ts @@ -2,9 +2,6 @@ import path from "node:path"; import { fileURLToPath } from "node:url"; import { WebappService } from "./services/index.js"; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - /** * OpenscanServer interface - manages webapp lifecycle * Fixed configuration: port 3030, always auto-opens browser @@ -40,16 +37,17 @@ export interface OpenscanServer { /** * Create an OpenscanServer instance - * Fixed dist path: packages/explorer/dist * Fixed port: 3030 * Always auto-opens browser */ export function createOpenscanServer(): OpenscanServer { let webappService: WebappService | null = null; - // Fixed dist path relative to plugin location - // When compiled: packages/plugin/dist/src/server.js -> packages/plugin/dist/explorer - const distPath = path.resolve(__dirname, "../explorer"); + // Resolve dist path from @openscan/explorer package + const explorerPkg = fileURLToPath( + import.meta.resolve("@openscan/explorer/package.json"), + ); + const distPath = path.dirname(explorerPkg); return { services() { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91810bc..82f8d0d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: packages/example-project: devDependencies: + '@openscan/hardhat-plugin': + specifier: workspace:* + version: link:../plugin '@tsconfig/node22': specifier: ^22.0.2 version: 22.0.2 @@ -26,14 +29,15 @@ importers: hardhat: specifier: ^3.0.11 version: 3.0.11 - openscan-hardhat-links: - specifier: workspace:* - version: link:../plugin typescript: specifier: ~5.8.0 version: 5.8.3 packages/plugin: + dependencies: + '@openscan/explorer': + specifier: ^1.1.0-alpha + version: 1.1.0-alpha devDependencies: '@eslint/js': specifier: ^9.35.0 @@ -448,6 +452,9 @@ packages: resolution: {integrity: sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==} engines: {node: '>= 12'} + '@openscan/explorer@1.1.0-alpha': + resolution: {integrity: sha512-fTzZbap/mdCivNGAE7vKXfKovt+WbnoUPgrCi5V1vleArSvF5Tc/aKoP5LRPOtiY3qvejcY5cYopp3f/GBGOFw==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2157,6 +2164,8 @@ snapshots: '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.2 '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.2 + '@openscan/explorer@1.1.0-alpha': {} + '@pkgjs/parseargs@0.11.0': optional: true From e9c35a9fc1f029ca11e9f522b67fc0acd373de8e Mon Sep 17 00:00:00 2001 From: Mati OS Date: Thu, 22 Jan 2026 17:47:59 -0300 Subject: [PATCH 05/13] feat: use # in url as webapp is using hash router --- packages/plugin/src/hooks/network.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/plugin/src/hooks/network.ts b/packages/plugin/src/hooks/network.ts index b20e4c3..7fa91e4 100644 --- a/packages/plugin/src/hooks/network.ts +++ b/packages/plugin/src/hooks/network.ts @@ -87,20 +87,20 @@ export default async (): Promise> => { )?.[0]; if (txHash) { - const txUrl = `${url}/${chainId}/tx/${txHash}`; + const txUrl = `${url}/#/${chainId}/tx/${txHash}`; console.log( `${" Transaction:".padEnd(18)}${createClickableLink(txUrl)}`, ); if (txParams?.from) { - const fromUrl = `${url}/${chainId}/address/${txParams.from}`; + const fromUrl = `${url}/#/${chainId}/address/${txParams.from}`; console.log( `${" From:".padEnd(18)}${createClickableLink(fromUrl)}`, ); } if (txParams?.to) { - const toUrl = `${url}/${chainId}/address/${txParams.to}`; + const toUrl = `${url}/#/${chainId}/address/${txParams.to}`; console.log(`${" To:".padEnd(18)}${createClickableLink(toUrl)}`); } } @@ -127,9 +127,9 @@ export default async (): Promise> => { const txHash = receipt.transactionHash; const blockNumber = parseInt(receipt.blockNumber, 16); - const txUrl = `${url}/${chainId}/tx/${txHash}`; - const blockUrl = `${url}/${chainId}/block/${blockNumber}`; - const fromUrl = `${url}/${chainId}/address/${receipt.from}`; + const txUrl = `${url}/#/${chainId}/tx/${txHash}`; + const blockUrl = `${url}/#/${chainId}/block/${blockNumber}`; + const fromUrl = `${url}/#/${chainId}/address/${receipt.from}`; console.log( `${" Transaction:".padEnd(18)}${createClickableLink(txUrl)}`, @@ -140,13 +140,13 @@ export default async (): Promise> => { console.log(`${" From:".padEnd(18)}${createClickableLink(fromUrl)}`); if (receipt.to) { - const toUrl = `${url}/${chainId}/address/${receipt.to}`; + const toUrl = `${url}/#/${chainId}/address/${receipt.to}`; console.log(`${" To:".padEnd(18)}${createClickableLink(toUrl)}`); } // If this is a contract deployment, also log the contract address if (receipt.contractAddress) { - const contractUrl = `${url}/${chainId}/address/${receipt.contractAddress}`; + const contractUrl = `${url}/#/${chainId}/address/${receipt.contractAddress}`; console.log( `${" Contract:".padEnd(18)}${createClickableLink(contractUrl)}`, ); @@ -163,7 +163,7 @@ export default async (): Promise> => { if (accounts && Array.isArray(accounts) && accounts.length > 0) { accounts.forEach((address: string, index: number) => { const label = ` [${index}]:`.padEnd(18); - const addressUrl = `${url}/${chainId}/address/${address}`; + const addressUrl = `${url}/#/${chainId}/address/${address}`; console.log(`${label}${createClickableLink(addressUrl)}`); }); console.log(); From 7f216a7f83587d1838d8942cc44573a36b46385d Mon Sep 17 00:00:00 2001 From: Mati OS Date: Fri, 30 Jan 2026 18:22:57 -0300 Subject: [PATCH 06/13] chore: Update @openscan/explorer^1.1.1-alpha --- packages/plugin/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 81949c2..56f6642 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -35,7 +35,7 @@ "README.md" ], "dependencies": { - "@openscan/explorer": "^1.1.0-alpha" + "@openscan/explorer": "1.1.1-alpha" }, "devDependencies": { "@eslint/js": "^9.35.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82f8d0d..a329846 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,8 +36,8 @@ importers: packages/plugin: dependencies: '@openscan/explorer': - specifier: ^1.1.0-alpha - version: 1.1.0-alpha + specifier: 1.1.1-alpha + version: 1.1.1-alpha devDependencies: '@eslint/js': specifier: ^9.35.0 @@ -452,8 +452,8 @@ packages: resolution: {integrity: sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==} engines: {node: '>= 12'} - '@openscan/explorer@1.1.0-alpha': - resolution: {integrity: sha512-fTzZbap/mdCivNGAE7vKXfKovt+WbnoUPgrCi5V1vleArSvF5Tc/aKoP5LRPOtiY3qvejcY5cYopp3f/GBGOFw==} + '@openscan/explorer@1.1.1-alpha': + resolution: {integrity: sha512-IkcGK89T+nXKJgtbxPjoVS3VIG0ps6ont0qvRq9VFgpHhE7460S9PqvA8E+PyC9mnzNa7pR8Nw50VWGNhsbihg==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -2164,7 +2164,7 @@ snapshots: '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.2 '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.2 - '@openscan/explorer@1.1.0-alpha': {} + '@openscan/explorer@1.1.1-alpha': {} '@pkgjs/parseargs@0.11.0': optional: true From 9f648bde56501a9b01f8cb0443cfd5f5affd62ec Mon Sep 17 00:00:00 2001 From: Mati OS Date: Fri, 30 Jan 2026 18:34:39 -0300 Subject: [PATCH 07/13] feat(contract verification): verify contracts on deployment without ignition --- packages/plugin/src/artifacts.ts | 162 ++++++++++++++++++++++ packages/plugin/src/deployment-tracker.ts | 158 +++++++++++++++++++++ packages/plugin/src/hooks/network.ts | 32 +++-- packages/plugin/src/server.ts | 21 ++- packages/plugin/src/services/webapp.ts | 59 +++++++- 5 files changed, 415 insertions(+), 17 deletions(-) create mode 100644 packages/plugin/src/artifacts.ts create mode 100644 packages/plugin/src/deployment-tracker.ts diff --git a/packages/plugin/src/artifacts.ts b/packages/plugin/src/artifacts.ts new file mode 100644 index 0000000..b9fd5a9 --- /dev/null +++ b/packages/plugin/src/artifacts.ts @@ -0,0 +1,162 @@ +import { existsSync, readdirSync, readFileSync } from "node:fs"; +import path from "node:path"; + +export interface ArtifactData { + abi: unknown[]; + contractName: string; + sourceName?: string; + buildInfoId?: string; + sourceCode?: string; + buildInfo?: unknown; + deployments: string[]; +} + +interface DeployedAddresses { + [key: string]: string; +} + +export type AddressMap = Record; + +const CHAIN_ID = 31337; + +export function findIgnitionDeployment( + projectRoot: string, +): string | null { + const deploymentPath = path.join( + projectRoot, + "ignition", + "deployments", + `chain-${CHAIN_ID}`, + ); + const deployedAddressesPath = path.join( + deploymentPath, + "deployed_addresses.json", + ); + + if (existsSync(deployedAddressesPath)) { + return deploymentPath; + } + + return null; +} + +export function loadArtifacts( + deploymentPath: string, + projectRoot: string, +): AddressMap { + const addressMap: AddressMap = {}; + + // Read deployed_addresses.json + const deployedAddressesPath = path.join( + deploymentPath, + "deployed_addresses.json", + ); + if (!existsSync(deployedAddressesPath)) { + console.warn("[openscan] deployed_addresses.json not found"); + return addressMap; + } + + const deployedAddresses: DeployedAddresses = JSON.parse( + readFileSync(deployedAddressesPath, "utf-8"), + ); + + // Build contract name to address mapping + const contractDeployments: Record = {}; + for (const [moduleContract, address] of Object.entries(deployedAddresses)) { + const contractName = moduleContract.split("#")[1]; + if (contractName) { + contractDeployments[contractName] = address; + } + } + + // Read artifacts directory + const artifactsDir = path.join(deploymentPath, "artifacts"); + if (!existsSync(artifactsDir)) { + console.warn("[openscan] artifacts directory not found"); + return addressMap; + } + + const artifactFiles = readdirSync(artifactsDir).filter((f) => + f.endsWith(".json"), + ); + + // Build-info directory + const buildInfoDir = path.join(deploymentPath, "build-info"); + + // Contracts source directory + const contractsDir = path.join(projectRoot, "contracts"); + + for (const artifactFile of artifactFiles) { + const artifactPath = path.join(artifactsDir, artifactFile); + + let artifact: Record; + try { + artifact = JSON.parse( + readFileSync(artifactPath, "utf-8"), + ) as Record; + } catch { + continue; + } + + const contractName = artifact.contractName as string | undefined; + if (!contractName) continue; + + const deployedAddress = contractDeployments[contractName]; + if (!deployedAddress) continue; + + const artifactData: ArtifactData = { + abi: (artifact.abi as unknown[]) || [], + contractName, + sourceName: artifact.sourceName as string | undefined, + buildInfoId: artifact.buildInfoId as string | undefined, + deployments: [deployedAddress], + }; + + // Try to load build info + if (artifactData.buildInfoId && existsSync(buildInfoDir)) { + const buildInfoPath = path.join( + buildInfoDir, + `${artifactData.buildInfoId}.json`, + ); + if (existsSync(buildInfoPath)) { + try { + artifactData.buildInfo = JSON.parse( + readFileSync(buildInfoPath, "utf-8"), + ); + } catch { + // Ignore build info errors + } + } + } + + // Try to load source code + if (artifactData.sourceName && existsSync(contractsDir)) { + const sourceFileName = artifactData.sourceName.split("/").pop(); + if (sourceFileName) { + const sourcePath = path.join(contractsDir, sourceFileName); + if (existsSync(sourcePath)) { + try { + artifactData.sourceCode = readFileSync(sourcePath, "utf-8"); + } catch { + // Ignore source code errors + } + } + } + } + + // Store by lowercase address + addressMap[deployedAddress.toLowerCase()] = artifactData; + } + + return addressMap; +} + +export function loadIgnitionArtifacts( + projectRoot: string, +): AddressMap | null { + const deploymentPath = findIgnitionDeployment(projectRoot); + if (!deploymentPath) { + return null; + } + return loadArtifacts(deploymentPath, projectRoot); +} diff --git a/packages/plugin/src/deployment-tracker.ts b/packages/plugin/src/deployment-tracker.ts new file mode 100644 index 0000000..9b5a66b --- /dev/null +++ b/packages/plugin/src/deployment-tracker.ts @@ -0,0 +1,158 @@ +import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; +import path from "node:path"; +import type { ArtifactData, AddressMap } from "./artifacts.js"; + +interface CompiledArtifact { + contractName: string; + sourceName: string; + abi: unknown[]; + bytecode: string; + buildInfoId?: string; +} + +/** + * Tracks contract deployments from raw deploy scripts by matching + * creation bytecodes against compiled Hardhat artifacts. + */ +export class DeploymentTracker { + private projectRoot: string; + private compiledArtifacts: CompiledArtifact[] = []; + private trackedDeployments: AddressMap = {}; + private pendingTxs = new Map(); + + constructor(projectRoot: string) { + this.projectRoot = projectRoot; + this.loadCompiledArtifacts(); + } + + /** + * Scan Hardhat's artifacts/contracts/ directory for compiled contract artifacts. + */ + private loadCompiledArtifacts(): void { + const artifactsDir = path.join( + this.projectRoot, + "artifacts", + "contracts", + ); + if (!existsSync(artifactsDir)) return; + this.scanDir(artifactsDir); + } + + private scanDir(dir: string): void { + for (const entry of readdirSync(dir)) { + const fullPath = path.join(dir, entry); + const stat = statSync(fullPath); + + if (stat.isDirectory()) { + this.scanDir(fullPath); + } else if (entry.endsWith(".json")) { + try { + const content = JSON.parse(readFileSync(fullPath, "utf-8")) as Record< + string, + unknown + >; + if (content.contractName && content.abi && content.bytecode) { + this.compiledArtifacts.push({ + contractName: content.contractName as string, + sourceName: (content.sourceName as string) ?? "", + abi: content.abi as unknown[], + bytecode: content.bytecode as string, + buildInfoId: content.buildInfoId as string | undefined, + }); + } + } catch { + // skip invalid files + } + } + } + } + + /** + * Called when eth_sendTransaction is intercepted for a contract deployment + * (to field is null/undefined). Stores the creation bytecode for later matching. + */ + trackSendTransaction(txHash: string, data: string): void { + this.pendingTxs.set(txHash, data); + } + + /** + * Called when eth_getTransactionReceipt returns a contract deployment + * (contractAddress is present). Matches creation bytecode against compiled + * artifacts and stores the result. + */ + trackDeploymentReceipt(txHash: string, contractAddress: string): void { + const data = this.pendingTxs.get(txHash); + if (!data) return; + this.pendingTxs.delete(txHash); + + const artifact = this.findMatchingArtifact(data); + if (!artifact) return; + + const entry: ArtifactData = { + abi: artifact.abi, + contractName: artifact.contractName, + sourceName: artifact.sourceName, + buildInfoId: artifact.buildInfoId, + deployments: [contractAddress], + }; + + // Try to load source code + if (artifact.sourceName) { + const sourceFileName = artifact.sourceName.split("/").pop(); + if (sourceFileName) { + const sourcePath = path.join( + this.projectRoot, + "contracts", + sourceFileName, + ); + if (existsSync(sourcePath)) { + try { + entry.sourceCode = readFileSync(sourcePath, "utf-8"); + } catch { + // ignore + } + } + } + } + + // Try to load build info + if (artifact.buildInfoId) { + const buildInfoPath = path.join( + this.projectRoot, + "artifacts", + "build-info", + `${artifact.buildInfoId}.json`, + ); + if (existsSync(buildInfoPath)) { + try { + entry.buildInfo = JSON.parse(readFileSync(buildInfoPath, "utf-8")); + } catch { + // ignore + } + } + } + + this.trackedDeployments[contractAddress.toLowerCase()] = entry; + } + + private findMatchingArtifact( + creationData: string, + ): CompiledArtifact | null { + const normalizedData = creationData.toLowerCase(); + for (const artifact of this.compiledArtifacts) { + const normalizedBytecode = artifact.bytecode.toLowerCase(); + // bytecode must be meaningful (more than just "0x") + if ( + normalizedBytecode.length > 2 && + normalizedData.startsWith(normalizedBytecode) + ) { + return artifact; + } + } + return null; + } + + getArtifacts(): AddressMap { + return { ...this.trackedDeployments }; + } +} diff --git a/packages/plugin/src/hooks/network.ts b/packages/plugin/src/hooks/network.ts index 7fa91e4..af17a04 100644 --- a/packages/plugin/src/hooks/network.ts +++ b/packages/plugin/src/hooks/network.ts @@ -2,6 +2,7 @@ import type { HookContext, NetworkHooks } from "hardhat/types/hooks"; import { ChainType, NetworkConnection } from "hardhat/types/network"; import { createOpenscanServer, type OpenscanServer } from "../server.js"; +import { DeploymentTracker } from "../deployment-tracker.js"; import { isPortAvailable, openBrowser } from "../utils.js"; // Helper function to create clickable terminal links @@ -11,9 +12,10 @@ function createClickableLink(url: string, text?: string): string { return `\x1b]8;;${url}\x1b\\${displayText}\x1b]8;;\x1b\\`; } -// Module-level state for webapp server +// Module-level state for webapp server and deployment tracking let webappServer: OpenscanServer | null = null; let webappStarted = false; +let tracker: DeploymentTracker | null = null; /** * Start the webapp server @@ -21,7 +23,7 @@ let webappStarted = false; * - Starts server * - Auto-opens browser */ -async function startWebapp(chainId: number) { +async function startWebapp() { try { // Check if port 3030 is available (fail fast) const portAvailable = await isPortAvailable(); @@ -31,15 +33,13 @@ async function startWebapp(chainId: number) { ); } - // Create and start server - webappServer = createOpenscanServer(); + // Create deployment tracker and start server + tracker = new DeploymentTracker(process.cwd()); + webappServer = createOpenscanServer(tracker); await webappServer.listen(); const webappUrl = webappServer.getWebappUrl()!; - console.log(`\n🔍 OpenScan Explorer: ${createClickableLink(webappUrl)}`); - console.log(` Network: Chain ID ${chainId}\n`); - // Auto-open browser (always enabled) await openBrowser(webappUrl); } catch (error) { @@ -59,13 +59,11 @@ export default async (): Promise> => { ): Promise> { const connection = await next(context); - const { chainId } = context.config.openScan; - // Start webapp on first connection (when Hardhat node starts) // The network name is "default" for the built-in Hardhat network if (!webappStarted && connection.networkName === "default") { webappStarted = true; - await startWebapp(chainId); + await startWebapp(); } return connection; @@ -87,6 +85,11 @@ export default async (): Promise> => { )?.[0]; if (txHash) { + // Track contract deployments (no "to" address means deployment) + if (tracker && txParams?.data && !txParams.to) { + tracker.trackSendTransaction(txHash, txParams.data); + } + const txUrl = `${url}/#/${chainId}/tx/${txHash}`; console.log( `${" Transaction:".padEnd(18)}${createClickableLink(txUrl)}`, @@ -144,8 +147,15 @@ export default async (): Promise> => { console.log(`${" To:".padEnd(18)}${createClickableLink(toUrl)}`); } - // If this is a contract deployment, also log the contract address + // If this is a contract deployment, track it and log the contract address if (receipt.contractAddress) { + if (tracker) { + tracker.trackDeploymentReceipt( + txHash, + receipt.contractAddress, + ); + } + const contractUrl = `${url}/#/${chainId}/address/${receipt.contractAddress}`; console.log( `${" Contract:".padEnd(18)}${createClickableLink(contractUrl)}`, diff --git a/packages/plugin/src/server.ts b/packages/plugin/src/server.ts index 7a5eec9..5459a32 100644 --- a/packages/plugin/src/server.ts +++ b/packages/plugin/src/server.ts @@ -1,6 +1,8 @@ import path from "node:path"; import { fileURLToPath } from "node:url"; import { WebappService } from "./services/index.js"; +import { loadIgnitionArtifacts } from "./artifacts.js"; +import type { DeploymentTracker } from "./deployment-tracker.js"; /** * OpenscanServer interface - manages webapp lifecycle @@ -40,7 +42,9 @@ export interface OpenscanServer { * Fixed port: 3030 * Always auto-opens browser */ -export function createOpenscanServer(): OpenscanServer { +export function createOpenscanServer( + tracker: DeploymentTracker, +): OpenscanServer { let webappService: WebappService | null = null; // Resolve dist path from @openscan/explorer package @@ -49,14 +53,25 @@ export function createOpenscanServer(): OpenscanServer { ); const distPath = path.dirname(explorerPkg); + // Project root for finding Ignition deployments + const projectRoot = process.cwd(); + + // Compose artifact loader from both Ignition deployments and tracked raw deploys + const artifactLoader = () => { + const ignitionArtifacts = loadIgnitionArtifacts(projectRoot) ?? {}; + const trackedArtifacts = tracker.getArtifacts(); + const combined = { ...ignitionArtifacts, ...trackedArtifacts }; + return Object.keys(combined).length > 0 ? combined : null; + }; + return { services() { return { webappService }; }, async listen() { - // Create webapp service - webappService = new WebappService(distPath); + // Create webapp service with artifact injection + webappService = new WebappService(distPath, artifactLoader); // Start service (will throw if fails - fail fast strategy) await webappService.start(); diff --git a/packages/plugin/src/services/webapp.ts b/packages/plugin/src/services/webapp.ts index e0ffea6..12bc8ac 100644 --- a/packages/plugin/src/services/webapp.ts +++ b/packages/plugin/src/services/webapp.ts @@ -1,6 +1,7 @@ import http from "node:http"; import fs from "node:fs"; import path from "node:path"; +import type { AddressMap } from "../artifacts.js"; import { Service } from "./base.js"; /** @@ -29,14 +30,18 @@ const MIME_TYPES: Record = { * No external dependencies - uses only Node.js built-in modules * Fixed port: 3030 */ +type ArtifactLoader = () => AddressMap | null; + export class WebappService extends Service { private distPath: string; private server: http.Server | null = null; private connections: Set = new Set(); + private artifactLoader: ArtifactLoader | null; - constructor(distPath: string) { + constructor(distPath: string, artifactLoader?: ArtifactLoader) { super(); this.distPath = distPath; + this.artifactLoader = artifactLoader ?? null; } /** @@ -191,6 +196,43 @@ export class WebappService extends Service { }); } + /** + * Inject artifact data into HTML by adding a script that writes to localStorage. + * Called on each HTML request so artifacts are always fresh from disk. + */ + private injectArtifactsScript(html: string): string { + if (!this.artifactLoader) { + return html; + } + + let artifacts: AddressMap | null; + try { + artifacts = this.artifactLoader(); + } catch (error) { + console.warn("[openscan] Failed to load artifacts:", error); + return html; + } + + if (!artifacts || Object.keys(artifacts).length === 0) { + return html; + } + + // Double-encode: first JSON.stringify produces the data string, + // second wraps it as a safe JS string literal with proper escaping. + const jsonString = JSON.stringify(JSON.stringify(artifacts)); + + // Escape to prevent premature tag closure + const safeJsonString = jsonString.replace(/<\/script>/gi, "<\\/script>"); + + const scriptTag = + ``; + + return html.replace("", `${scriptTag}`); + } + /** * Serve a file with proper MIME type and caching headers */ @@ -206,12 +248,23 @@ export class WebappService extends Service { return; } + // Inject artifacts into HTML responses + let responseBody: string | Buffer = data; + if (ext === ".html") { + responseBody = this.injectArtifactsScript(data.toString("utf-8")); + } + + const contentLength = + typeof responseBody === "string" + ? Buffer.byteLength(responseBody, "utf-8") + : responseBody.length; + const mimeType = MIME_TYPES[ext] || "application/octet-stream"; // Set cache headers for better performance const headers: Record = { "Content-Type": mimeType, - "Content-Length": String(data.length), + "Content-Length": String(contentLength), }; // Cache static assets for 1 hour, but not HTML (for SPA updates) @@ -222,7 +275,7 @@ export class WebappService extends Service { } res.writeHead(200, headers); - res.end(data); + res.end(responseBody); }); } From 3801350791dc91620925640f02ccce763cc4a50e Mon Sep 17 00:00:00 2001 From: Mati OS Date: Fri, 30 Jan 2026 18:59:18 -0300 Subject: [PATCH 08/13] test: add ignition to example-project --- packages/example-project/hardhat.config.ts | 3 +- .../ignition/modules/Counter.ts | 9 + packages/example-project/package.json | 10 +- pnpm-lock.yaml | 779 +++++++++++++++++- 4 files changed, 794 insertions(+), 7 deletions(-) create mode 100644 packages/example-project/ignition/modules/Counter.ts diff --git a/packages/example-project/hardhat.config.ts b/packages/example-project/hardhat.config.ts index 18a2d6f..2acb51a 100644 --- a/packages/example-project/hardhat.config.ts +++ b/packages/example-project/hardhat.config.ts @@ -1,8 +1,9 @@ import { defineConfig } from "hardhat/config"; import openScanPlugin from "@openscan/hardhat-plugin"; +import hardhatIgnitionViemPlugin from "@nomicfoundation/hardhat-ignition-viem"; export default defineConfig({ - plugins: [openScanPlugin], + plugins: [hardhatIgnitionViemPlugin, openScanPlugin], solidity: "0.8.29", networks: { localhost: { diff --git a/packages/example-project/ignition/modules/Counter.ts b/packages/example-project/ignition/modules/Counter.ts new file mode 100644 index 0000000..957d5a0 --- /dev/null +++ b/packages/example-project/ignition/modules/Counter.ts @@ -0,0 +1,9 @@ +import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; + +export default buildModule("CounterModule", (m) => { + const counter = m.contract("Counter"); + + m.call(counter, "incBy", [5n]); + + return { counter }; +}); diff --git a/packages/example-project/package.json b/packages/example-project/package.json index 358e2f9..4a305fb 100644 --- a/packages/example-project/package.json +++ b/packages/example-project/package.json @@ -10,11 +10,13 @@ "send-tx": "hardhat run scripts/send-transactions.ts" }, "devDependencies": { + "@nomicfoundation/hardhat-ignition-viem": "^3.0.7", + "@nomicfoundation/hardhat-ignition": "^3.0.5", + "@openscan/hardhat-plugin": "workspace:*", "@tsconfig/node22": "^22.0.2", "@types/node": "^22.11.0", - "hardhat": "^3.0.11", - "@openscan/hardhat-plugin": "workspace:*", - "typescript": "~5.8.0", - "forge-std": "github:foundry-rs/forge-std#v1.9.4" + "forge-std": "github:foundry-rs/forge-std#v1.9.4", + "hardhat": "^3.1.5", + "typescript": "~5.8.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a329846..cdf6db4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,12 @@ importers: packages/example-project: devDependencies: + '@nomicfoundation/hardhat-ignition': + specifier: ^3.0.5 + version: 3.0.7(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(hardhat@3.1.5) + '@nomicfoundation/hardhat-ignition-viem': + specifier: ^3.0.7 + version: 3.0.7(@nomicfoundation/hardhat-ignition@3.0.7(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(hardhat@3.1.5))(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(@nomicfoundation/hardhat-viem@3.0.2(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76)))(@nomicfoundation/ignition-core@3.0.7)(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76)) '@openscan/hardhat-plugin': specifier: workspace:* version: link:../plugin @@ -27,8 +33,8 @@ importers: specifier: github:foundry-rs/forge-std#v1.9.4 version: https://codeload.github.com/foundry-rs/forge-std/tar.gz/1eea5bae12ae557d589f9f0f0edae2faa47cb262 hardhat: - specifier: ^3.0.11 - version: 3.0.11 + specifier: ^3.1.5 + version: 3.1.5 typescript: specifier: ~5.8.0 version: 5.8.3 @@ -96,6 +102,12 @@ packages: '@actions/io@1.1.3': resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} + '@adraffy/ens-normalize@1.10.1': + resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} + + '@adraffy/ens-normalize@1.11.1': + resolution: {integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -302,6 +314,63 @@ packages: resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ethersproject/abi@5.8.0': + resolution: {integrity: sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==} + + '@ethersproject/abstract-provider@5.8.0': + resolution: {integrity: sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==} + + '@ethersproject/abstract-signer@5.8.0': + resolution: {integrity: sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==} + + '@ethersproject/address@5.6.1': + resolution: {integrity: sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==} + + '@ethersproject/address@5.8.0': + resolution: {integrity: sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==} + + '@ethersproject/base64@5.8.0': + resolution: {integrity: sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==} + + '@ethersproject/bignumber@5.8.0': + resolution: {integrity: sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==} + + '@ethersproject/bytes@5.8.0': + resolution: {integrity: sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==} + + '@ethersproject/constants@5.8.0': + resolution: {integrity: sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==} + + '@ethersproject/hash@5.8.0': + resolution: {integrity: sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==} + + '@ethersproject/keccak256@5.8.0': + resolution: {integrity: sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==} + + '@ethersproject/logger@5.8.0': + resolution: {integrity: sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==} + + '@ethersproject/networks@5.8.0': + resolution: {integrity: sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==} + + '@ethersproject/properties@5.8.0': + resolution: {integrity: sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==} + + '@ethersproject/rlp@5.8.0': + resolution: {integrity: sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==} + + '@ethersproject/signing-key@5.8.0': + resolution: {integrity: sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==} + + '@ethersproject/strings@5.8.0': + resolution: {integrity: sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==} + + '@ethersproject/transactions@5.8.0': + resolution: {integrity: sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==} + + '@ethersproject/web@5.8.0': + resolution: {integrity: sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==} + '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} @@ -347,6 +416,13 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@noble/ciphers@1.3.0': + resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.2.0': + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + '@noble/curves@1.4.2': resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} @@ -354,6 +430,14 @@ packages: resolution: {integrity: sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==} engines: {node: ^14.21.3 || >=16} + '@noble/curves@1.9.1': + resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.3.2': + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + '@noble/hashes@1.4.0': resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} engines: {node: '>= 16'} @@ -362,6 +446,10 @@ packages: resolution: {integrity: sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -378,48 +466,122 @@ packages: resolution: {integrity: sha512-LYXaU0Pk7zA4iAHMdvZ9Gs5QaScs9n5IpclWBNVevSHnL1/uJiFLDF4FYE/NonvaCST6Rd0E4MS3pJltsrBQmA==} engines: {node: '>= 20'} + '@nomicfoundation/edr-darwin-arm64@0.12.0-next.22': + resolution: {integrity: sha512-TpEBSKyMZJEPvYwBPYclC2b+qobKjn1YhVa7aJ1R7RMPy5dJ/PqsrUK5UuUFFybBqoIorru5NTcsyCMWP5T/Fg==} + engines: {node: '>= 20'} + '@nomicfoundation/edr-darwin-x64@0.12.0-next.10': resolution: {integrity: sha512-GtcBqSRhtjOZn6MaT9AReQS/75CY0KG/7IPURGMyjY8lxGtx6WdkzLSP7d7Jvc/WMinXZVs0jCuucfjZg/etQw==} engines: {node: '>= 20'} + '@nomicfoundation/edr-darwin-x64@0.12.0-next.22': + resolution: {integrity: sha512-aK/+m8xUkR4u+czTVGU06nSFVH43AY6XCBoR2YjO8SglAAjCSTWK3WAfVb6FcsriMmKv4PrvoyHLMbMP+fXcGA==} + engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.10': resolution: {integrity: sha512-EtnYfNdKfn7Dd06/zCFwjBaiI0iPiJIy8GvwJx9oiIzcmIzKnY4ZJrsRfriAK2TBzAk8nmm8Z7r4lIzOqpBUkQ==} engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.22': + resolution: {integrity: sha512-W5vXMleG14hVzRYGPEwlHLJ6iiQE8Qh63Uj538nAz4YUI6wWSgUOZE7K2Gt1EdujZGnrt7kfDslgJ96n4nKQZw==} + engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.10': resolution: {integrity: sha512-ZkKdzMy6WpSEt3+pnJteg8dX/ovnUCL95dm4+cyvySRkUCCGbp0kgQ7RlGkC7X/z/BZpaKsCjVgbEJgMFlF8sg==} engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.22': + resolution: {integrity: sha512-VDp7EB3iY8MH/fFVcgEzLDGYmtS6j2honNc0RNUCFECKPrdsngGrTG8p+YFxyVjq2m5GEsdyKo4e+BKhaUNPdg==} + engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.10': resolution: {integrity: sha512-I4eaN/ChGPxuJfycjYbUV7SmltxAGNSBJNVxmLj4+eKN30fXo+6fL2X0HdKo3dqkYq3iM/G1j9FXbxZ3ZaK/SQ==} engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.22': + resolution: {integrity: sha512-XL6oA3ymRSQYyvg6hF1KIax6V/9vlWr5gJ8GPHVVODk1a/YfuEEY1osN5Zmo6aztUkSGKwSuac/3Ax7rfDDiSg==} + engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.10': resolution: {integrity: sha512-ruovF/WCs61If5uVBYMYns40ayW6EhdORAbQ5cUEgxN2iaQhUZ6AQNlRFCgIESOiBqDRrQZQIdJC/6pgbFzuCg==} engines: {node: '>= 20'} + '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.22': + resolution: {integrity: sha512-hmkRIXxWa9P0PwfXOAO6WUw11GyV5gpxcMunqWBTkwZ4QW/hi/CkXmlLo6VHd6ceCwpUNLhCGndBtrOPrNRi4A==} + engines: {node: '>= 20'} + '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.10': resolution: {integrity: sha512-5hlqjWIx5bdY7xNdrV9W+0BMbNgkwF/Am/J4Rof6J40Ht/NkKwhzs4XuGujBKCqKVKfvbqKlaexyX1qIPhS8Ag==} engines: {node: '>= 20'} + '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.22': + resolution: {integrity: sha512-X7f+7KUMm00trsXAHCHJa+x1fc3QAbk2sBctyOgpET+GLrfCXbxqrccKi7op8f0zTweAVGg1Hsc8SjjC7kwFLw==} + engines: {node: '>= 20'} + '@nomicfoundation/edr@0.12.0-next.10': resolution: {integrity: sha512-D10VX2FO9faYhy3T+z5mx3M/cnQ1BQ9vayuunm9aQOwmqsB9G2Ozvlb41+ooXEqmNpnpxxXuD8zst6v7HydjLg==} engines: {node: '>= 20'} + '@nomicfoundation/edr@0.12.0-next.22': + resolution: {integrity: sha512-JigYWf2stjpDxSndBsxRoobQHK8kz4SAVaHtTIKQLIHbsBwymE8i120Ejne6Jk+Ndc5CsNINXB8/bK6vLPe9jA==} + engines: {node: '>= 20'} + '@nomicfoundation/hardhat-errors@3.0.3': resolution: {integrity: sha512-qvVIyNE5yXFdwCD7G74fb3j+p5PjYSej/K2mhOuJBhxdGwzARpyoJbcDZrjkNyabytlt95iniZLHHWM9jvVXEA==} + '@nomicfoundation/hardhat-errors@3.0.6': + resolution: {integrity: sha512-3x+OVdZv7Rgy3z6os9pB6kiHLxs6q0PCXHRu+WLZflr44PG9zW+7V9o+ehrUqmmivlHcIFr3Qh4M2wZVuoCYww==} + + '@nomicfoundation/hardhat-ignition-viem@3.0.7': + resolution: {integrity: sha512-fdufOU9ArxQAt9PkQl0rdlgi2vjXEOGmyvclHXBKO+SpAUlbwtIag00ohNbjc7p4u6ptApbIlKedYMT056B+9A==} + peerDependencies: + '@nomicfoundation/hardhat-ignition': ^3.0.7 + '@nomicfoundation/hardhat-verify': ^3.0.0 + '@nomicfoundation/hardhat-viem': ^3.0.2 + '@nomicfoundation/ignition-core': ^3.0.7 + hardhat: ^3.1.5 + viem: ^2.43.0 + + '@nomicfoundation/hardhat-ignition@3.0.7': + resolution: {integrity: sha512-yzVXNHoEanOGRFMkpgvGaWw4Kev5ragxFFyrKITKtiJMdChdGNAPlbsk8QJzn4028aSAnjRfqKTOAeeBlsqFig==} + peerDependencies: + '@nomicfoundation/hardhat-verify': ^3.0.0 + hardhat: ^3.1.5 + '@nomicfoundation/hardhat-node-test-reporter@3.0.1': resolution: {integrity: sha512-p6yNKZFnJ2OMplXx7zi45KGWr4hr/qMkg+gTuSSLLlph7NL1DGjGG+N6GrZs46AGSrsnYEocKXGnavl92dxEig==} '@nomicfoundation/hardhat-utils@3.0.5': resolution: {integrity: sha512-5zkQSuSxkwK7fQxKswJ1GGc/3AuWBSmxA7GhczTPLx28dAXQnubRU8nA48SkCkKesJq5x4TROP+XheSE2VkLUA==} + '@nomicfoundation/hardhat-utils@3.0.6': + resolution: {integrity: sha512-AD/LPNdjXNFRrZcaAAewgJpdnHpPppZxo5p+x6wGMm5Hz4B3+oLf/LUzVn8qb4DDy9RE2c24l2F8vmL/w6ZuXg==} + + '@nomicfoundation/hardhat-vendored@3.0.0': + resolution: {integrity: sha512-bzIOdG4iAuYSs9JSnaVOtH7qUKJ6W5+OtOiL8MlyFuLKYN2hjIisGO4pY5zR4N7xi/3RjfcnjVNz8tU0DPg2Cw==} + + '@nomicfoundation/hardhat-verify@3.0.8': + resolution: {integrity: sha512-AkwFvx/r0AFDk0H53mReYpkw2pvi5Jq34zAyk2+cTM7o/OnOvq0xcAaidw4BQvBf9+FMeFAKjJe+zNYgrsLatg==} + peerDependencies: + hardhat: ^3.0.0 + + '@nomicfoundation/hardhat-viem@3.0.2': + resolution: {integrity: sha512-u/2IcKhfpD0toaC/P2Zqu+tMT7lDcs3mgp/RIQk8C+IAG0L3YMaCAjLKGWtMNhJQ/oqCM4rNBfdSe2ltvNCyXQ==} + peerDependencies: + hardhat: ^3.0.0 + viem: ^2.43.0 + '@nomicfoundation/hardhat-zod-utils@3.0.1': resolution: {integrity: sha512-I6/pyYiS9p2lLkzQuedr1ScMocH+ew8l233xTi+LP92gjEiviJDxselpkzgU01MUM0t6BPpfP8yMO958LDEJVg==} peerDependencies: zod: ^3.23.8 + '@nomicfoundation/ignition-core@3.0.7': + resolution: {integrity: sha512-zlwXshSZIQQ4LfZBnirETQ/eNfEcxk9sRkPCYoeaGBEC8QPtt7KBj+rP7YYWM+IPVQNU4OjIVfQs004unpXB4w==} + + '@nomicfoundation/ignition-ui@3.0.7': + resolution: {integrity: sha512-K7bL7V1cEh7nccAiWD1L15QdtNiPoM37IJdvBhgxV4sa25//r9yIxHf/DHI52qxQXqQuXKWdiBZBcbldtStM1Q==} + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': resolution: {integrity: sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==} engines: {node: '>= 12'} @@ -471,9 +633,15 @@ packages: '@scure/bip32@1.4.0': resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + '@scure/bip32@1.7.0': + resolution: {integrity: sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==} + '@scure/bip39@1.3.0': resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + '@scure/bip39@1.6.0': + resolution: {integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==} + '@sentry/core@9.46.0': resolution: {integrity: sha512-it7JMFqxVproAgEtbLgCVBYtQ9fIb+Bu0JD+cEplTN/Ukpe6GaolyYib5geZqslVxhp2sQgT+58aGvfd/k0N8Q==} engines: {node: '>=18'} @@ -508,6 +676,9 @@ packages: '@types/node@22.18.4': resolution: {integrity: sha512-UJdblFqXymSBhmZf96BnbisoFIr8ooiiBRMolQgg77Ea+VM37jXw76C2LQr9n8wm9+i/OvlUlW6xSvqwzwqznw==} + '@types/node@22.7.5': + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} + '@typescript-eslint/eslint-plugin@8.43.0': resolution: {integrity: sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -662,6 +833,17 @@ packages: cpu: [x64] os: [win32] + abitype@1.2.3: + resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -676,6 +858,9 @@ packages: resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} engines: {node: '>=0.3.0'} + aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -741,6 +926,12 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bn.js@4.12.2: + resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} + + bn.js@5.2.2: + resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -751,6 +942,9 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + c8@9.1.0: resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} engines: {node: '>=14.14.0'} @@ -772,6 +966,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + cbor2@1.12.0: + resolution: {integrity: sha512-3Cco8XQhi27DogSp9Ri6LYNZLi/TBY/JVnDe+mj06NkBjW/ZYOtekaEU4wZ4xcRMNrFkDv8KNtOAqHyDfz3lYg==} + engines: {node: '>=18.7'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -860,6 +1058,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1016,6 +1217,13 @@ packages: ethereum-cryptography@2.2.1: resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + ethers@6.16.0: + resolution: {integrity: sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==} + engines: {node: '>=14.0.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1023,6 +1231,10 @@ packages: resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} engines: {node: '>=6.0.0'} + fast-equals@5.4.0: + resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==} + engines: {node: '>=6.0.0'} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -1148,6 +1360,10 @@ packages: resolution: {integrity: sha512-XvUKHNWxyDUFLZFvO7eoza7MkCDCox6ONJNxgCLyxd4fJ7UWKPj+wVmDvpMWuwQFBA64/Mi49mgz2hPwoss9PA==} hasBin: true + hardhat@3.1.5: + resolution: {integrity: sha512-0Z0KI/m6wJYCMZgDK3QuVqR59lSa3aMu6QHKqnbIYXKu/phQ+YFKJZAY4zkUKX21ZjcrrRg25qLUzZw1bO6g/A==} + hasBin: true + has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -1171,10 +1387,16 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -1186,6 +1408,9 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} + immer@10.0.2: + resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -1318,6 +1543,11 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isows@1.0.7: + resolution: {integrity: sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==} + peerDependencies: + ws: '*' + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -1341,6 +1571,9 @@ packages: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1358,13 +1591,25 @@ packages: resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} engines: {node: '>=7.10.1'} + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -1373,6 +1618,9 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -1401,6 +1649,12 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1426,6 +1680,11 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true + object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -1461,6 +1720,14 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + ox@0.11.3: + resolution: {integrity: sha512-1bWYGk/xZel3xro3l8WGg6eq4YEKlaqvyMtVhfMFpbJzK2F6rj4EDRtqDCWVEJMkzcmEi9uW2QxsqELokOlarw==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -1524,6 +1791,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -1534,6 +1805,10 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -1584,6 +1859,9 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -1641,6 +1919,12 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + stable-hash-x@0.2.0: resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} engines: {node: '>=12.0.0'} @@ -1669,6 +1953,9 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1697,6 +1984,9 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -1714,6 +2004,9 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -1762,6 +2055,9 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -1779,10 +2075,21 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + v8-to-istanbul@9.3.0: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} + viem@2.45.1: + resolution: {integrity: sha512-LN6Pp7vSfv50LgwhkfSbIXftAM5J89lP9x8TeDa8QM7o41IxlHrDh0F9X+FfnCWtsz11pEVV5sn+yBUoOHNqYA==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -1819,6 +2126,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.18.3: resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} @@ -1868,6 +2187,10 @@ snapshots: '@actions/io@1.1.3': {} + '@adraffy/ens-normalize@1.10.1': {} + + '@adraffy/ens-normalize@1.11.1': {} + '@bcoe/v8-coverage@0.2.3': {} '@emnapi/core@1.5.0': @@ -2008,6 +2331,137 @@ snapshots: '@eslint/core': 0.15.2 levn: 0.4.1 + '@ethersproject/abi@5.8.0': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/hash': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/abstract-provider@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/transactions': 5.8.0 + '@ethersproject/web': 5.8.0 + + '@ethersproject/abstract-signer@5.8.0': + dependencies: + '@ethersproject/abstract-provider': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + + '@ethersproject/address@5.6.1': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/rlp': 5.8.0 + + '@ethersproject/address@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/rlp': 5.8.0 + + '@ethersproject/base64@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + + '@ethersproject/bignumber@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + bn.js: 5.2.2 + + '@ethersproject/bytes@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/constants@5.8.0': + dependencies: + '@ethersproject/bignumber': 5.8.0 + + '@ethersproject/hash@5.8.0': + dependencies: + '@ethersproject/abstract-signer': 5.8.0 + '@ethersproject/address': 5.8.0 + '@ethersproject/base64': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + + '@ethersproject/keccak256@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + js-sha3: 0.8.0 + + '@ethersproject/logger@5.8.0': {} + + '@ethersproject/networks@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/properties@5.8.0': + dependencies: + '@ethersproject/logger': 5.8.0 + + '@ethersproject/rlp@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/signing-key@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + bn.js: 5.2.2 + elliptic: 6.6.1 + hash.js: 1.1.7 + + '@ethersproject/strings@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/logger': 5.8.0 + + '@ethersproject/transactions@5.8.0': + dependencies: + '@ethersproject/address': 5.8.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/constants': 5.8.0 + '@ethersproject/keccak256': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/rlp': 5.8.0 + '@ethersproject/signing-key': 5.8.0 + + '@ethersproject/web@5.8.0': + dependencies: + '@ethersproject/base64': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/strings': 5.8.0 + '@fastify/busboy@2.1.1': {} '@humanfs/core@0.19.1': {} @@ -2052,6 +2506,12 @@ snapshots: '@tybys/wasm-util': 0.10.0 optional: true + '@noble/ciphers@1.3.0': {} + + '@noble/curves@1.2.0': + dependencies: + '@noble/hashes': 1.3.2 + '@noble/curves@1.4.2': dependencies: '@noble/hashes': 1.4.0 @@ -2060,10 +2520,18 @@ snapshots: dependencies: '@noble/hashes': 1.7.2 + '@noble/curves@1.9.1': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.3.2': {} + '@noble/hashes@1.4.0': {} '@noble/hashes@1.7.2': {} + '@noble/hashes@1.8.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2078,18 +2546,32 @@ snapshots: '@nomicfoundation/edr-darwin-arm64@0.12.0-next.10': {} + '@nomicfoundation/edr-darwin-arm64@0.12.0-next.22': {} + '@nomicfoundation/edr-darwin-x64@0.12.0-next.10': {} + '@nomicfoundation/edr-darwin-x64@0.12.0-next.22': {} + '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.10': {} + '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.22': {} + '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.10': {} + '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.22': {} + '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.10': {} + '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.22': {} + '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.10': {} + '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.22': {} + '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.10': {} + '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.22': {} + '@nomicfoundation/edr@0.12.0-next.10': dependencies: '@nomicfoundation/edr-darwin-arm64': 0.12.0-next.10 @@ -2100,12 +2582,57 @@ snapshots: '@nomicfoundation/edr-linux-x64-musl': 0.12.0-next.10 '@nomicfoundation/edr-win32-x64-msvc': 0.12.0-next.10 + '@nomicfoundation/edr@0.12.0-next.22': + dependencies: + '@nomicfoundation/edr-darwin-arm64': 0.12.0-next.22 + '@nomicfoundation/edr-darwin-x64': 0.12.0-next.22 + '@nomicfoundation/edr-linux-arm64-gnu': 0.12.0-next.22 + '@nomicfoundation/edr-linux-arm64-musl': 0.12.0-next.22 + '@nomicfoundation/edr-linux-x64-gnu': 0.12.0-next.22 + '@nomicfoundation/edr-linux-x64-musl': 0.12.0-next.22 + '@nomicfoundation/edr-win32-x64-msvc': 0.12.0-next.22 + '@nomicfoundation/hardhat-errors@3.0.3': dependencies: '@nomicfoundation/hardhat-utils': 3.0.5 transitivePeerDependencies: - supports-color + '@nomicfoundation/hardhat-errors@3.0.6': + dependencies: + '@nomicfoundation/hardhat-utils': 3.0.6 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-ignition-viem@3.0.7(@nomicfoundation/hardhat-ignition@3.0.7(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(hardhat@3.1.5))(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(@nomicfoundation/hardhat-viem@3.0.2(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76)))(@nomicfoundation/ignition-core@3.0.7)(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76))': + dependencies: + '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-ignition': 3.0.7(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(hardhat@3.1.5) + '@nomicfoundation/hardhat-verify': 3.0.8(hardhat@3.1.5) + '@nomicfoundation/hardhat-viem': 3.0.2(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76)) + '@nomicfoundation/ignition-core': 3.0.7 + hardhat: 3.1.5 + viem: 2.45.1(typescript@5.8.3)(zod@3.25.76) + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-ignition@3.0.7(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(hardhat@3.1.5)': + dependencies: + '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-utils': 3.0.6 + '@nomicfoundation/hardhat-verify': 3.0.8(hardhat@3.1.5) + '@nomicfoundation/ignition-core': 3.0.7 + '@nomicfoundation/ignition-ui': 3.0.7 + chalk: 5.6.2 + debug: 4.4.1 + hardhat: 3.1.5 + json5: 2.2.3 + prompts: 2.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@nomicfoundation/hardhat-node-test-reporter@3.0.1': dependencies: '@actions/core': 1.11.1 @@ -2125,6 +2652,45 @@ snapshots: transitivePeerDependencies: - supports-color + '@nomicfoundation/hardhat-utils@3.0.6': + dependencies: + '@streamparser/json-node': 0.0.22 + debug: 4.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 2.2.1 + fast-equals: 5.4.0 + json-stream-stringify: 3.1.6 + rfdc: 1.4.1 + undici: 6.21.3 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-vendored@3.0.0': {} + + '@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5)': + dependencies: + '@ethersproject/abi': 5.8.0 + '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-utils': 3.0.6 + '@nomicfoundation/hardhat-zod-utils': 3.0.1(zod@3.25.76) + cbor2: 1.12.0 + chalk: 5.6.2 + debug: 4.4.1 + hardhat: 3.1.5 + semver: 7.7.2 + zod: 3.25.76 + transitivePeerDependencies: + - supports-color + + '@nomicfoundation/hardhat-viem@3.0.2(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76))': + dependencies: + '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-utils': 3.0.6 + hardhat: 3.1.5 + viem: 2.45.1(typescript@5.8.3)(zod@3.25.76) + transitivePeerDependencies: + - supports-color + '@nomicfoundation/hardhat-zod-utils@3.0.1(zod@3.25.76)': dependencies: '@nomicfoundation/hardhat-errors': 3.0.3 @@ -2133,6 +2699,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@nomicfoundation/ignition-core@3.0.7': + dependencies: + '@ethersproject/address': 5.6.1 + '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-utils': 3.0.6 + '@nomicfoundation/solidity-analyzer': 0.1.2 + cbor2: 1.12.0 + debug: 4.4.1 + ethers: 6.16.0 + immer: 10.0.2 + lodash-es: 4.17.21 + ndjson: 2.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@nomicfoundation/ignition-ui@3.0.7': {} + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': optional: true @@ -2181,11 +2766,22 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.9 + '@scure/bip32@1.7.0': + dependencies: + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + '@scure/bip39@1.3.0': dependencies: '@noble/hashes': 1.4.0 '@scure/base': 1.1.9 + '@scure/bip39@1.6.0': + dependencies: + '@noble/hashes': 1.8.0 + '@scure/base': 1.2.6 + '@sentry/core@9.46.0': {} '@sinclair/typebox@0.27.8': {} @@ -2215,6 +2811,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@22.7.5': + dependencies: + undici-types: 6.19.8 + '@typescript-eslint/eslint-plugin@8.43.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.8.3))(eslint@9.35.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -2367,6 +2967,11 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true + abitype@1.2.3(typescript@5.8.3)(zod@3.25.76): + optionalDependencies: + typescript: 5.8.3 + zod: 3.25.76 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -2375,6 +2980,8 @@ snapshots: adm-zip@0.4.16: {} + aes-js@4.0.0-beta.5: {} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -2456,6 +3063,10 @@ snapshots: balanced-match@1.0.2: {} + bn.js@4.12.2: {} + + bn.js@5.2.2: {} + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -2469,6 +3080,8 @@ snapshots: dependencies: fill-range: 7.1.1 + brorand@1.1.0: {} + c8@9.1.0: dependencies: '@bcoe/v8-coverage': 0.2.3 @@ -2502,6 +3115,8 @@ snapshots: callsites@3.1.0: {} + cbor2@1.12.0: {} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -2589,6 +3204,16 @@ snapshots: eastasianwidth@0.2.0: {} + elliptic@6.6.1: + dependencies: + bn.js: 4.12.2 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -2859,10 +3484,27 @@ snapshots: '@scure/bip32': 1.4.0 '@scure/bip39': 1.3.0 + ethers@6.16.0: + dependencies: + '@adraffy/ens-normalize': 1.10.1 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@types/node': 22.7.5 + aes-js: 4.0.0-beta.5 + tslib: 2.7.0 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + eventemitter3@5.0.1: {} + fast-deep-equal@3.1.3: {} fast-equals@5.2.2: {} + fast-equals@5.4.0: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3025,6 +3667,33 @@ snapshots: - supports-color - utf-8-validate + hardhat@3.1.5: + dependencies: + '@nomicfoundation/edr': 0.12.0-next.22 + '@nomicfoundation/hardhat-errors': 3.0.6 + '@nomicfoundation/hardhat-utils': 3.0.6 + '@nomicfoundation/hardhat-vendored': 3.0.0 + '@nomicfoundation/hardhat-zod-utils': 3.0.1(zod@3.25.76) + '@nomicfoundation/solidity-analyzer': 0.1.2 + '@sentry/core': 9.46.0 + adm-zip: 0.4.16 + chalk: 5.6.2 + chokidar: 4.0.3 + debug: 4.4.1 + enquirer: 2.4.1 + ethereum-cryptography: 2.2.1 + micro-eth-signer: 0.14.0 + p-map: 7.0.3 + resolve.exports: 2.0.3 + semver: 7.7.2 + tsx: 4.20.5 + ws: 8.18.3 + zod: 3.25.76 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + has-bigints@1.1.0: {} has-flag@4.0.0: {} @@ -3043,16 +3712,29 @@ snapshots: dependencies: has-symbols: 1.1.0 + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + hasown@2.0.2: dependencies: function-bind: 1.1.2 + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + html-escaper@2.0.2: {} ignore@5.3.2: {} ignore@7.0.5: {} + immer@10.0.2: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -3190,6 +3872,10 @@ snapshots: isexe@2.0.0: {} + isows@1.0.7(ws@8.18.3): + dependencies: + ws: 8.18.3 + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -3218,6 +3904,8 @@ snapshots: jest-get-type@29.6.3: {} + js-sha3@0.8.0: {} + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -3230,14 +3918,20 @@ snapshots: json-stream-stringify@3.1.6: {} + json-stringify-safe@5.0.1: {} + json5@1.0.2: dependencies: minimist: 1.2.8 + json5@2.2.3: {} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + kleur@3.0.3: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -3247,6 +3941,8 @@ snapshots: dependencies: p-locate: 5.0.0 + lodash-es@4.17.21: {} + lodash.merge@4.6.2: {} lru-cache@10.4.3: {} @@ -3274,6 +3970,10 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -3292,6 +3992,14 @@ snapshots: natural-compare@1.4.0: {} + ndjson@2.0.0: + dependencies: + json-stringify-safe: 5.0.1 + minimist: 1.2.8 + readable-stream: 3.6.2 + split2: 3.2.2 + through2: 4.0.2 + object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -3344,6 +4052,21 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + ox@0.11.3(typescript@5.8.3)(zod@3.25.76): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.8.3)(zod@3.25.76) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - zod + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -3389,12 +4112,23 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + punycode@2.3.1: {} queue-microtask@1.2.3: {} react-is@18.3.1: {} + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + readdirp@4.1.2: {} reflect.getprototypeof@1.0.10: @@ -3451,6 +4185,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -3524,6 +4260,12 @@ snapshots: signal-exit@4.1.0: {} + sisteransi@1.0.5: {} + + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 + stable-hash-x@0.2.0: {} stop-iteration-iterator@1.1.0: @@ -3566,6 +4308,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -3590,6 +4336,10 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) @@ -3610,6 +4360,8 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tslib@2.7.0: {} + tslib@2.8.1: optional: true @@ -3679,6 +4431,8 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 + undici-types@6.19.8: {} + undici-types@6.21.0: {} undici@5.29.0: @@ -3715,12 +4469,31 @@ snapshots: dependencies: punycode: 2.3.1 + util-deprecate@1.0.2: {} + v8-to-istanbul@9.3.0: dependencies: '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + viem@2.45.1(typescript@5.8.3)(zod@3.25.76): + dependencies: + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.2.3(typescript@5.8.3)(zod@3.25.76) + isows: 1.0.7(ws@8.18.3) + ox: 0.11.3(typescript@5.8.3)(zod@3.25.76) + ws: 8.18.3 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -3782,6 +4555,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.17.1: {} + ws@8.18.3: {} y18n@5.0.8: {} From 56963e730b1ba5d53c3a6cb88bd5b882b641b2b2 Mon Sep 17 00:00:00 2001 From: Mati OS Date: Fri, 30 Jan 2026 19:00:05 -0300 Subject: [PATCH 09/13] fix(plugin): prevent multiple logs on startup --- packages/plugin/src/artifacts.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/plugin/src/artifacts.ts b/packages/plugin/src/artifacts.ts index b9fd5a9..3a1e57b 100644 --- a/packages/plugin/src/artifacts.ts +++ b/packages/plugin/src/artifacts.ts @@ -19,6 +19,8 @@ export type AddressMap = Record; const CHAIN_ID = 31337; +let hasLoggedArtifacts = false; + export function findIgnitionDeployment( projectRoot: string, ): string | null { @@ -158,5 +160,22 @@ export function loadIgnitionArtifacts( if (!deploymentPath) { return null; } - return loadArtifacts(deploymentPath, projectRoot); + + const shouldLog = !hasLoggedArtifacts; + if (shouldLog) { + hasLoggedArtifacts = true; + console.log( + `[openscan] Found Ignition deployment at: ${deploymentPath}`, + ); + } + + const result = loadArtifacts(deploymentPath, projectRoot); + + if (shouldLog) { + console.log( + `[openscan] Loaded ${Object.keys(result).length} contract artifacts`, + ); + } + + return result; } From 907d684ffc1071086e10908be9def6581f50ae8a Mon Sep 17 00:00:00 2001 From: Mati OS Date: Sat, 31 Jan 2026 11:06:58 -0300 Subject: [PATCH 10/13] docs: add steps to test the plugin --- packages/example-project/README.md | 21 ++++++++++++++++++--- packages/plugin/README.md | 26 ++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/packages/example-project/README.md b/packages/example-project/README.md index 963eca7..39bd098 100644 --- a/packages/example-project/README.md +++ b/packages/example-project/README.md @@ -11,7 +11,9 @@ pnpm install pnpm build ``` -Start the node: +## Testing + +### 1. Start the node ```sh pnpm hardhat node @@ -23,14 +25,27 @@ This will: - Automatically launch the OpenScan Explorer on - Open your browser to the explorer interface -Then, you can run scripts in a separate terminal: +### 2. Deploy contracts with Ignition + +In a separate terminal: + +```sh +pnpm hardhat ignition deploy ignition/modules/Counter.ts --network localhost +``` + +### 3. Deploy contracts with script ```sh pnpm run deploy +``` + +### 4. Send transactions with script + +```sh pnpm run send-tx ``` -All transactions will be logged with clickable OpenScan links in the console +All transactions will be logged with clickable OpenScan links in the console. Check the code is verified ## What's inside the project? diff --git a/packages/plugin/README.md b/packages/plugin/README.md index e82b4b5..9656071 100644 --- a/packages/plugin/README.md +++ b/packages/plugin/README.md @@ -46,13 +46,35 @@ This plugin provides two main features: ## Usage -Simply start your Hardhat node: +### 1. Start the node ```bash npx hardhat node ``` -The OpenScan Explorer will automatically launch and your browser will open to the explorer interface. All subsequent transactions will include OpenScan links in the console output +The OpenScan Explorer will automatically launch and your browser will open to the explorer interface. + +### 2. Deploy contracts with Ignition + +In a separate terminal: + +```bash +npx hardhat ignition deploy ignition/modules/Counter.ts --network localhost +``` + +### 3. Deploy contracts with script + +```bash +npx hardhat run scripts/deploy.ts --network localhost +``` + +### 4. Send transactions with script + +```bash +npx hardhat run scripts/send-tx.ts --network localhost +``` + +All transactions will be logged with clickable OpenScan links in the console. Check that the code is verified ## How It Works From 5b35e5b66b7a1d781b985781dfd763e0f39ea25b Mon Sep 17 00:00:00 2001 From: Mati OS Date: Sat, 31 Jan 2026 11:18:11 -0300 Subject: [PATCH 11/13] test(example-project): update hardhat deps --- packages/example-project/package.json | 1 + packages/example-project/tsconfig.json | 2 +- packages/plugin/package.json | 4 +- pnpm-lock.yaml | 99 +++----------------------- 4 files changed, 12 insertions(+), 94 deletions(-) diff --git a/packages/example-project/package.json b/packages/example-project/package.json index 4a305fb..18e9c64 100644 --- a/packages/example-project/package.json +++ b/packages/example-project/package.json @@ -12,6 +12,7 @@ "devDependencies": { "@nomicfoundation/hardhat-ignition-viem": "^3.0.7", "@nomicfoundation/hardhat-ignition": "^3.0.5", + "@nomicfoundation/ignition-core": "^3.0.7", "@openscan/hardhat-plugin": "workspace:*", "@tsconfig/node22": "^22.0.2", "@types/node": "^22.11.0", diff --git a/packages/example-project/tsconfig.json b/packages/example-project/tsconfig.json index f0ea66b..1dfd2ab 100644 --- a/packages/example-project/tsconfig.json +++ b/packages/example-project/tsconfig.json @@ -15,6 +15,6 @@ "isolatedModules": true, "typeRoots": ["${configDir}/node_modules/@types"] }, - "exclude": ["${configDir}/dist", "${configDir}/node_modules"], + "exclude": ["${configDir}/dist", "${configDir}/node_modules", "${configDir}/ignition"], "references": [{ "path": "../plugin" }] } diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 56f6642..00d1d06 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -46,7 +46,7 @@ "eslint": "^9.35.0", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.32.0", - "hardhat": "^3.0.11", + "hardhat": "^3.1.5", "prettier": "3.6.2", "rimraf": "^5.0.5", "tsx": "^4.19.3", @@ -54,7 +54,7 @@ "typescript-eslint": "^8.43.0" }, "peerDependencies": { - "hardhat": "^3.0.11" + "hardhat": "^3.1.5" }, "publishConfig": { "access": "public" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdf6db4..e9cd9f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: '@nomicfoundation/hardhat-ignition-viem': specifier: ^3.0.7 version: 3.0.7(@nomicfoundation/hardhat-ignition@3.0.7(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(hardhat@3.1.5))(@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5))(@nomicfoundation/hardhat-viem@3.0.2(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76)))(@nomicfoundation/ignition-core@3.0.7)(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76)) + '@nomicfoundation/ignition-core': + specifier: ^3.0.7 + version: 3.0.7 '@openscan/hardhat-plugin': specifier: workspace:* version: link:../plugin @@ -70,8 +73,8 @@ importers: specifier: ^2.32.0 version: 2.32.0(@typescript-eslint/parser@8.43.0(eslint@9.35.0)(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.35.0) hardhat: - specifier: ^3.0.11 - version: 3.0.11 + specifier: ^3.1.5 + version: 3.1.5 prettier: specifier: 3.6.2 version: 3.6.2 @@ -462,66 +465,34 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nomicfoundation/edr-darwin-arm64@0.12.0-next.10': - resolution: {integrity: sha512-LYXaU0Pk7zA4iAHMdvZ9Gs5QaScs9n5IpclWBNVevSHnL1/uJiFLDF4FYE/NonvaCST6Rd0E4MS3pJltsrBQmA==} - engines: {node: '>= 20'} - '@nomicfoundation/edr-darwin-arm64@0.12.0-next.22': resolution: {integrity: sha512-TpEBSKyMZJEPvYwBPYclC2b+qobKjn1YhVa7aJ1R7RMPy5dJ/PqsrUK5UuUFFybBqoIorru5NTcsyCMWP5T/Fg==} engines: {node: '>= 20'} - '@nomicfoundation/edr-darwin-x64@0.12.0-next.10': - resolution: {integrity: sha512-GtcBqSRhtjOZn6MaT9AReQS/75CY0KG/7IPURGMyjY8lxGtx6WdkzLSP7d7Jvc/WMinXZVs0jCuucfjZg/etQw==} - engines: {node: '>= 20'} - '@nomicfoundation/edr-darwin-x64@0.12.0-next.22': resolution: {integrity: sha512-aK/+m8xUkR4u+czTVGU06nSFVH43AY6XCBoR2YjO8SglAAjCSTWK3WAfVb6FcsriMmKv4PrvoyHLMbMP+fXcGA==} engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.10': - resolution: {integrity: sha512-EtnYfNdKfn7Dd06/zCFwjBaiI0iPiJIy8GvwJx9oiIzcmIzKnY4ZJrsRfriAK2TBzAk8nmm8Z7r4lIzOqpBUkQ==} - engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.22': resolution: {integrity: sha512-W5vXMleG14hVzRYGPEwlHLJ6iiQE8Qh63Uj538nAz4YUI6wWSgUOZE7K2Gt1EdujZGnrt7kfDslgJ96n4nKQZw==} engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.10': - resolution: {integrity: sha512-ZkKdzMy6WpSEt3+pnJteg8dX/ovnUCL95dm4+cyvySRkUCCGbp0kgQ7RlGkC7X/z/BZpaKsCjVgbEJgMFlF8sg==} - engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.22': resolution: {integrity: sha512-VDp7EB3iY8MH/fFVcgEzLDGYmtS6j2honNc0RNUCFECKPrdsngGrTG8p+YFxyVjq2m5GEsdyKo4e+BKhaUNPdg==} engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.10': - resolution: {integrity: sha512-I4eaN/ChGPxuJfycjYbUV7SmltxAGNSBJNVxmLj4+eKN30fXo+6fL2X0HdKo3dqkYq3iM/G1j9FXbxZ3ZaK/SQ==} - engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.22': resolution: {integrity: sha512-XL6oA3ymRSQYyvg6hF1KIax6V/9vlWr5gJ8GPHVVODk1a/YfuEEY1osN5Zmo6aztUkSGKwSuac/3Ax7rfDDiSg==} engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.10': - resolution: {integrity: sha512-ruovF/WCs61If5uVBYMYns40ayW6EhdORAbQ5cUEgxN2iaQhUZ6AQNlRFCgIESOiBqDRrQZQIdJC/6pgbFzuCg==} - engines: {node: '>= 20'} - '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.22': resolution: {integrity: sha512-hmkRIXxWa9P0PwfXOAO6WUw11GyV5gpxcMunqWBTkwZ4QW/hi/CkXmlLo6VHd6ceCwpUNLhCGndBtrOPrNRi4A==} engines: {node: '>= 20'} - '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.10': - resolution: {integrity: sha512-5hlqjWIx5bdY7xNdrV9W+0BMbNgkwF/Am/J4Rof6J40Ht/NkKwhzs4XuGujBKCqKVKfvbqKlaexyX1qIPhS8Ag==} - engines: {node: '>= 20'} - '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.22': resolution: {integrity: sha512-X7f+7KUMm00trsXAHCHJa+x1fc3QAbk2sBctyOgpET+GLrfCXbxqrccKi7op8f0zTweAVGg1Hsc8SjjC7kwFLw==} engines: {node: '>= 20'} - '@nomicfoundation/edr@0.12.0-next.10': - resolution: {integrity: sha512-D10VX2FO9faYhy3T+z5mx3M/cnQ1BQ9vayuunm9aQOwmqsB9G2Ozvlb41+ooXEqmNpnpxxXuD8zst6v7HydjLg==} - engines: {node: '>= 20'} - '@nomicfoundation/edr@0.12.0-next.22': resolution: {integrity: sha512-JigYWf2stjpDxSndBsxRoobQHK8kz4SAVaHtTIKQLIHbsBwymE8i120Ejne6Jk+Ndc5CsNINXB8/bK6vLPe9jA==} engines: {node: '>= 20'} @@ -1356,10 +1327,6 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - hardhat@3.0.11: - resolution: {integrity: sha512-XvUKHNWxyDUFLZFvO7eoza7MkCDCox6ONJNxgCLyxd4fJ7UWKPj+wVmDvpMWuwQFBA64/Mi49mgz2hPwoss9PA==} - hasBin: true - hardhat@3.1.5: resolution: {integrity: sha512-0Z0KI/m6wJYCMZgDK3QuVqR59lSa3aMu6QHKqnbIYXKu/phQ+YFKJZAY4zkUKX21ZjcrrRg25qLUzZw1bO6g/A==} hasBin: true @@ -2544,44 +2511,20 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@nomicfoundation/edr-darwin-arm64@0.12.0-next.10': {} - '@nomicfoundation/edr-darwin-arm64@0.12.0-next.22': {} - '@nomicfoundation/edr-darwin-x64@0.12.0-next.10': {} - '@nomicfoundation/edr-darwin-x64@0.12.0-next.22': {} - '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.10': {} - '@nomicfoundation/edr-linux-arm64-gnu@0.12.0-next.22': {} - '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.10': {} - '@nomicfoundation/edr-linux-arm64-musl@0.12.0-next.22': {} - '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.10': {} - '@nomicfoundation/edr-linux-x64-gnu@0.12.0-next.22': {} - '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.10': {} - '@nomicfoundation/edr-linux-x64-musl@0.12.0-next.22': {} - '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.10': {} - '@nomicfoundation/edr-win32-x64-msvc@0.12.0-next.22': {} - '@nomicfoundation/edr@0.12.0-next.10': - dependencies: - '@nomicfoundation/edr-darwin-arm64': 0.12.0-next.10 - '@nomicfoundation/edr-darwin-x64': 0.12.0-next.10 - '@nomicfoundation/edr-linux-arm64-gnu': 0.12.0-next.10 - '@nomicfoundation/edr-linux-arm64-musl': 0.12.0-next.10 - '@nomicfoundation/edr-linux-x64-gnu': 0.12.0-next.10 - '@nomicfoundation/edr-linux-x64-musl': 0.12.0-next.10 - '@nomicfoundation/edr-win32-x64-msvc': 0.12.0-next.10 - '@nomicfoundation/edr@0.12.0-next.22': dependencies: '@nomicfoundation/edr-darwin-arm64': 0.12.0-next.22 @@ -2670,7 +2613,7 @@ snapshots: '@nomicfoundation/hardhat-verify@3.0.8(hardhat@3.1.5)': dependencies: '@ethersproject/abi': 5.8.0 - '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-errors': 3.0.6 '@nomicfoundation/hardhat-utils': 3.0.6 '@nomicfoundation/hardhat-zod-utils': 3.0.1(zod@3.25.76) cbor2: 1.12.0 @@ -2684,7 +2627,7 @@ snapshots: '@nomicfoundation/hardhat-viem@3.0.2(hardhat@3.1.5)(viem@2.45.1(typescript@5.8.3)(zod@3.25.76))': dependencies: - '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-errors': 3.0.6 '@nomicfoundation/hardhat-utils': 3.0.6 hardhat: 3.1.5 viem: 2.45.1(typescript@5.8.3)(zod@3.25.76) @@ -2702,7 +2645,7 @@ snapshots: '@nomicfoundation/ignition-core@3.0.7': dependencies: '@ethersproject/address': 5.6.1 - '@nomicfoundation/hardhat-errors': 3.0.3 + '@nomicfoundation/hardhat-errors': 3.0.6 '@nomicfoundation/hardhat-utils': 3.0.6 '@nomicfoundation/solidity-analyzer': 0.1.2 cbor2: 1.12.0 @@ -3641,32 +3584,6 @@ snapshots: graphemer@1.4.0: {} - hardhat@3.0.11: - dependencies: - '@nomicfoundation/edr': 0.12.0-next.10 - '@nomicfoundation/hardhat-errors': 3.0.3 - '@nomicfoundation/hardhat-utils': 3.0.5 - '@nomicfoundation/hardhat-zod-utils': 3.0.1(zod@3.25.76) - '@nomicfoundation/solidity-analyzer': 0.1.2 - '@sentry/core': 9.46.0 - adm-zip: 0.4.16 - chalk: 5.6.2 - chokidar: 4.0.3 - debug: 4.4.1 - enquirer: 2.4.1 - ethereum-cryptography: 2.2.1 - micro-eth-signer: 0.14.0 - p-map: 7.0.3 - resolve.exports: 2.0.3 - semver: 7.7.2 - tsx: 4.20.5 - ws: 8.18.3 - zod: 3.25.76 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - hardhat@3.1.5: dependencies: '@nomicfoundation/edr': 0.12.0-next.22 From 4a7864ee8bbf53e2c76c521468f906c689d0d81e Mon Sep 17 00:00:00 2001 From: Mati OS Date: Sat, 31 Jan 2026 11:19:29 -0300 Subject: [PATCH 12/13] chore(example-project): dont track ignition dir for easy testing --- packages/example-project/.gitignore | 1 + packages/example-project/ignition/modules/Counter.ts | 9 --------- 2 files changed, 1 insertion(+), 9 deletions(-) delete mode 100644 packages/example-project/ignition/modules/Counter.ts diff --git a/packages/example-project/.gitignore b/packages/example-project/.gitignore index b10ecff..1c04d50 100644 --- a/packages/example-project/.gitignore +++ b/packages/example-project/.gitignore @@ -10,3 +10,4 @@ # Hardhat files /artifacts /cache +/ignition \ No newline at end of file diff --git a/packages/example-project/ignition/modules/Counter.ts b/packages/example-project/ignition/modules/Counter.ts deleted file mode 100644 index 957d5a0..0000000 --- a/packages/example-project/ignition/modules/Counter.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; - -export default buildModule("CounterModule", (m) => { - const counter = m.contract("Counter"); - - m.call(counter, "incBy", [5n]); - - return { counter }; -}); From c203fdcf93c6e89599821bea572ffd5ed16c3537 Mon Sep 17 00:00:00 2001 From: Mati OS Date: Sat, 31 Jan 2026 11:51:07 -0300 Subject: [PATCH 13/13] style: linter fix --- packages/plugin/src/artifacts.ts | 19 +++++++------------ packages/plugin/src/deployment-tracker.ts | 10 ++-------- packages/plugin/src/hooks/network.ts | 5 +---- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/packages/plugin/src/artifacts.ts b/packages/plugin/src/artifacts.ts index 3a1e57b..f12ab73 100644 --- a/packages/plugin/src/artifacts.ts +++ b/packages/plugin/src/artifacts.ts @@ -21,9 +21,7 @@ const CHAIN_ID = 31337; let hasLoggedArtifacts = false; -export function findIgnitionDeployment( - projectRoot: string, -): string | null { +export function findIgnitionDeployment(projectRoot: string): string | null { const deploymentPath = path.join( projectRoot, "ignition", @@ -93,9 +91,10 @@ export function loadArtifacts( let artifact: Record; try { - artifact = JSON.parse( - readFileSync(artifactPath, "utf-8"), - ) as Record; + artifact = JSON.parse(readFileSync(artifactPath, "utf-8")) as Record< + string, + unknown + >; } catch { continue; } @@ -153,9 +152,7 @@ export function loadArtifacts( return addressMap; } -export function loadIgnitionArtifacts( - projectRoot: string, -): AddressMap | null { +export function loadIgnitionArtifacts(projectRoot: string): AddressMap | null { const deploymentPath = findIgnitionDeployment(projectRoot); if (!deploymentPath) { return null; @@ -164,9 +161,7 @@ export function loadIgnitionArtifacts( const shouldLog = !hasLoggedArtifacts; if (shouldLog) { hasLoggedArtifacts = true; - console.log( - `[openscan] Found Ignition deployment at: ${deploymentPath}`, - ); + console.log(`[openscan] Found Ignition deployment at: ${deploymentPath}`); } const result = loadArtifacts(deploymentPath, projectRoot); diff --git a/packages/plugin/src/deployment-tracker.ts b/packages/plugin/src/deployment-tracker.ts index 9b5a66b..2cfa87f 100644 --- a/packages/plugin/src/deployment-tracker.ts +++ b/packages/plugin/src/deployment-tracker.ts @@ -29,11 +29,7 @@ export class DeploymentTracker { * Scan Hardhat's artifacts/contracts/ directory for compiled contract artifacts. */ private loadCompiledArtifacts(): void { - const artifactsDir = path.join( - this.projectRoot, - "artifacts", - "contracts", - ); + const artifactsDir = path.join(this.projectRoot, "artifacts", "contracts"); if (!existsSync(artifactsDir)) return; this.scanDir(artifactsDir); } @@ -135,9 +131,7 @@ export class DeploymentTracker { this.trackedDeployments[contractAddress.toLowerCase()] = entry; } - private findMatchingArtifact( - creationData: string, - ): CompiledArtifact | null { + private findMatchingArtifact(creationData: string): CompiledArtifact | null { const normalizedData = creationData.toLowerCase(); for (const artifact of this.compiledArtifacts) { const normalizedBytecode = artifact.bytecode.toLowerCase(); diff --git a/packages/plugin/src/hooks/network.ts b/packages/plugin/src/hooks/network.ts index af17a04..9327902 100644 --- a/packages/plugin/src/hooks/network.ts +++ b/packages/plugin/src/hooks/network.ts @@ -150,10 +150,7 @@ export default async (): Promise> => { // If this is a contract deployment, track it and log the contract address if (receipt.contractAddress) { if (tracker) { - tracker.trackDeploymentReceipt( - txHash, - receipt.contractAddress, - ); + tracker.trackDeploymentReceipt(txHash, receipt.contractAddress); } const contractUrl = `${url}/#/${chainId}/address/${receipt.contractAddress}`;